Error log trying to build r14343

Ethelred

Member
I get the following error log when trying to build r14343:

Code:
compile:
    [javac] Compiling 1390 source files to /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/build
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:58: type javax.swing.AbstractListModel does not take parameters
    [javac]     extends AbstractListModel<E>
    [javac]                              ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:59: type javax.swing.ListModel does not take parameters
    [javac]     implements Cloneable, List<E>, ListModel<E>, ComboBoxModel<E>, MutableComboBoxModel<E>
    [javac]                                             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:59: type javax.swing.ComboBoxModel does not take parameters
    [javac]     implements Cloneable, List<E>, ListModel<E>, ComboBoxModel<E>, MutableComboBoxModel<E>
    [javac]                                                               ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:59: type javax.swing.MutableComboBoxModel does not take parameters
    [javac]     implements Cloneable, List<E>, ListModel<E>, ComboBoxModel<E>, MutableComboBoxModel<E>
    [javac]                                                                                        ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/com/informit/guides/JDnDList.java:47: cannot find symbol
    [javac] symbol  : constructor JList(net.java.dev.spellcast.utilities.LockableListModel)
    [javac] location: class javax.swing.JList
    [javac]         super( model );
    [javac]         ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:57: net.java.dev.spellcast.utilities.LockableListModel is not abstract and does not override abstract method add(int,java.lang.Object) in java.util.List
    [javac] public class LockableListModel<E>
    [javac]        ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:67: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]     private ArrayList<WeakReference<LockableListModel<E>>> mirrorList;
    [javac]                                                      ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:80: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]         this.mirrorList = new ArrayList<WeakReference<LockableListModel<E>>>();
    [javac]                                                                        ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:106: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]             this.mirrorList = new ArrayList<WeakReference<LockableListModel<E>>>();
    [javac]                                                                            ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:108: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]             l.mirrorList.add( new WeakReference<LockableListModel<E>>( this ) );
    [javac]                                                                  ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:125: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]     private LockableListModel<E> getNextMirror( final Iterator<WeakReference<LockableListModel<E>>> it )
    [javac]                                                                                               ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:129: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]             WeakReference<LockableListModel<E>> ref = it.next();
    [javac]                                            ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:130: operator != cannot be applied to net.java.dev.spellcast.utilities.LockableListModel<E>,<nulltype>
    [javac]             if ( ref.get() != null )
    [javac]                            ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:153: fireContentsChanged(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]             this.fireContentsChanged( this, 0, this.visibleElements.size() - 1 );
    [javac]                 ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:155: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]             Iterator<WeakReference<LockableListModel<E>>> it = this.mirrorList.iterator();
    [javac]                                                     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:159: operator == cannot be applied to net.java.dev.spellcast.utilities.LockableListModel<E>,<nulltype>
    [javac]                 if ( mirror == null )
    [javac]                             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:165: fireContentsChanged(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]                 mirror.fireContentsChanged( this, 0, mirror.visibleElements.size() - 1 );
    [javac]                       ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:178: cannot find symbol
    [javac] symbol  : variable listenerList
    [javac] location: class net.java.dev.spellcast.utilities.LockableListModel<E>
    [javac]         if ( this.actionListenerFired || this.listenerList.getListenerCount() == 0 )
    [javac]                                              ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:184: cannot find symbol
    [javac] symbol  : variable super
    [javac] location: class net.java.dev.spellcast.utilities.LockableListModel<E>
    [javac]         super.fireContentsChanged( source, index0, index1 );
    [javac]         ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:170: method does not override or implement a method from a supertype
    [javac]     @Override
    [javac]     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:191: cannot find symbol
    [javac] symbol  : variable listenerList
    [javac] location: class net.java.dev.spellcast.utilities.LockableListModel<E>
    [javac]         if ( this.actionListenerFired || this.listenerList.getListenerCount() == 0 )
    [javac]                                              ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:197: cannot find symbol
    [javac] symbol  : variable super
    [javac] location: class net.java.dev.spellcast.utilities.LockableListModel<E>
    [javac]         super.fireIntervalAdded( source, index0, index1 );
    [javac]         ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:188: method does not override or implement a method from a supertype
    [javac]     @Override
    [javac]     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:204: cannot find symbol
    [javac] symbol  : variable listenerList
    [javac] location: class net.java.dev.spellcast.utilities.LockableListModel<E>
    [javac]         if ( this.actionListenerFired || this.listenerList.getListenerCount() == 0 )
    [javac]                                              ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:210: cannot find symbol
    [javac] symbol  : variable super
    [javac] location: class net.java.dev.spellcast.utilities.LockableListModel<E>
    [javac]         super.fireIntervalRemoved( source, index0, index1 );
    [javac]         ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:201: method does not override or implement a method from a supertype
    [javac]     @Override
    [javac]     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:236: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]             Iterator<WeakReference<LockableListModel<E>>> it = this.mirrorList.iterator();
    [javac]                                                     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:240: operator == cannot be applied to net.java.dev.spellcast.utilities.LockableListModel<E>,<nulltype>
    [javac]                 if ( mirror == null )
    [javac]                             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:259: fireIntervalAdded(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]         this.fireIntervalAdded( this, visibleIndex, visibleIndex );
    [javac]             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:319: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]             Iterator<WeakReference<LockableListModel<E>>> it = this.mirrorList.iterator();
    [javac]                                                     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:323: operator == cannot be applied to net.java.dev.spellcast.utilities.LockableListModel<E>,<nulltype>
    [javac]                 if ( mirror == null )
    [javac]                             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:343: fireIntervalRemoved(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]         this.fireIntervalRemoved( this, 0, originalSize - 1 );
    [javac]             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:371: inconvertible types
    [javac] found   : java.lang.Object
    [javac] required: net.java.dev.spellcast.utilities.LockableListModel
    [javac]         return o instanceof LockableListModel ? this == o : this.actualElements.equals( o );
    [javac]                ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:371: operator == cannot be applied to net.java.dev.spellcast.utilities.LockableListModel<E>,java.lang.Object
    [javac]         return o instanceof LockableListModel ? this == o : this.actualElements.equals( o );
    [javac]                                                      ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:574: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]             Iterator<WeakReference<LockableListModel<E>>> it = this.mirrorList.iterator();
    [javac]                                                     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:578: operator == cannot be applied to net.java.dev.spellcast.utilities.LockableListModel<E>,<nulltype>
    [javac]                 if ( mirror == null )
    [javac]                             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:599: fireIntervalRemoved(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]         this.fireIntervalRemoved( this, visibleIndex, visibleIndex );
    [javac]             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:682: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]             Iterator<WeakReference<LockableListModel<E>>> it = this.mirrorList.iterator();
    [javac]                                                     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:686: operator == cannot be applied to net.java.dev.spellcast.utilities.LockableListModel<E>,<nulltype>
    [javac]                 if ( mirror == null )
    [javac]                             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:707: fireIntervalRemoved(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]                 this.fireIntervalRemoved( this, visibleIndex, visibleIndex );
    [javac]                     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:712: fireIntervalAdded(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]                 this.fireIntervalAdded( this, visibleIndex, visibleIndex );
    [javac]                     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:717: fireContentsChanged(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]                 this.fireContentsChanged( this, visibleIndex, visibleIndex );
    [javac]                     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:723: fireIntervalAdded(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]             this.fireIntervalAdded( this, visibleIndex, visibleIndex );
    [javac]                 ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:769: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]             Iterator<WeakReference<LockableListModel<E>>> it = this.mirrorList.iterator();
    [javac]                                                     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:773: operator == cannot be applied to net.java.dev.spellcast.utilities.LockableListModel<E>,<nulltype>
    [javac]                 if ( mirror == null )
    [javac]                             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:805: fireIntervalRemoved(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]                         this.fireIntervalRemoved( this, low, high );
    [javac]                             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:829: fireIntervalAdded(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]                         this.fireIntervalAdded( this, low, high );
    [javac]                             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:846: fireIntervalAdded(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]                 this.fireIntervalAdded( this, low, high );
    [javac]                     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:850: fireIntervalRemoved(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]                 this.fireIntervalRemoved( this, low, high );
    [javac]                     ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:856: fireContentsChanged(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]             this.fireContentsChanged( this, 0, this.visibleElements.size() - 1 );
    [javac]                 ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:945: fireContentsChanged(java.lang.Object,int,int) in net.java.dev.spellcast.utilities.LockableListModel<E> cannot be applied to (net.java.dev.spellcast.utilities.LockableListModel<E>,int,int)
    [javac]         this.fireContentsChanged( this, -1, -1 );
    [javac]             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:1019: cannot find symbol
    [javac] symbol  : variable super
    [javac] location: class net.java.dev.spellcast.utilities.LockableListModel<E>
    [javac]             cloneCopy = (LockableListModel) super.clone();
    [javac]                                             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:1032: cannot find symbol
    [javac] symbol  : variable listenerList
    [javac] location: class net.java.dev.spellcast.utilities.LockableListModel
    [javac]         cloneCopy.listenerList = new javax.swing.event.EventListenerList();
    [javac]                  ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:1040: type parameter net.java.dev.spellcast.utilities.LockableListModel<E> is not within its bound
    [javac]         cloneCopy.mirrorList = new ArrayList<WeakReference<LockableListModel<E>>>();
    [javac]                                                                             ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LockableListModel.java:1045: incompatible types
    [javac] found   : net.java.dev.spellcast.utilities.LockableListModel
    [javac] required: java.lang.Object
    [javac]         return cloneCopy;
    [javac]                ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/LicenseDisplay.java:91: cannot find symbol
    [javac] symbol  : constructor JList(net.java.dev.spellcast.utilities.LockableListModel)
    [javac] location: class javax.swing.JList
    [javac]         this.listing = new JList( model );
    [javac]                        ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/PanelList.java:105: operator != cannot be applied to net.java.dev.spellcast.utilities.LockableListModel,<nulltype>
    [javac]         if ( associatedListModel != null )
    [javac]                                  ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/PanelList.java:115: cannot find symbol
    [javac] symbol  : method addListDataListener(net.java.dev.spellcast.utilities.PanelList.PanelListListener)
    [javac] location: class net.java.dev.spellcast.utilities.LockableListModel
    [javac]             associatedListModel.addListDataListener( new PanelListListener() );
    [javac]                                ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/PanelList.java:188: inconvertible types
    [javac] found   : java.lang.Object
    [javac] required: net.java.dev.spellcast.utilities.LockableListModel
    [javac]             LockableListModel source = (LockableListModel) e.getSource();
    [javac]                                                                       ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/PanelList.java:215: inconvertible types
    [javac] found   : java.lang.Object
    [javac] required: net.java.dev.spellcast.utilities.LockableListModel
    [javac]             LockableListModel source = (LockableListModel) e.getSource();
    [javac]                                                                       ^
    [javac] /Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/lib/net/java/dev/spellcast/utilities/PanelList.java:241: inconvertible types
    [javac] found   : java.lang.Object
    [javac] required: net.java.dev.spellcast.utilities.LockableListModel
    [javac]             LockableListModel source = (LockableListModel) e.getSource();
    [javac]                                                                       ^
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 61 errors
    [javac] Compile failed; see the compiler error output for details.

BUILD FAILED
/Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/build.xml:367: The following error occurred while executing this line:
/Users/Ethelred/src/KoLmafia/kolmafia/kolmafia/build.xml:166: Failed to compile third-party libraries

Total time: 11 seconds

This is well beyond my java skills. Any help or advice would be appreciated.

OS: Mac OSX 10.6.8
java: java version "1.6.0_37"

Thanks, in advance.
 

xKiv

Active member
You probably need newer JDK.

ETA: as far as I can tell, these classes were not generic in java 6, but are generic in java 7. That means you need JDK 7 to build (but not to run, iirc).
 
Last edited:

Veracity

Developer
Staff member
Hmm. I wasn't intending to force 1.7, but google gives me the 1.7 docs by default, these days, and the 1.6 docs aren't even on the first page of search results. I did not check enough to see that I was depending on 1.7 classes.

Turns out, the problem I am (eventually) working to solve by making LockableListModel and SortedListModel generic really does depend on ListModel (and AbstractListModel) being generic. I mean, it's very nice to be able to declare that the "usables" list contains Concoction objects and to be able to use foreach loops and eliminate lots of casting, and such, but there is one real issue that could only be solved with generics.

In particular, if I can change ShowDescriptionList to be ShowDescriptionList<E> and have it extend JList<E> and initialize it with a ListModel<E> in the form of a LockableListModel<E>, then, guess what: instead of having to use Object[] getSelectedValues(), I get to use List<E> getSelectedValuesList(). It really irritated me that if I wrapped a model that I KNEW contained only AdventureResult objects, if I wanted to get an AdventureResult[] with them, I get to get the Object[] and then copy and cast. With this new generic stuff, I will get a List<AdventureResult>, not an array - but I can work with that.

I haven't worked out the issues with ShowDescriptionList, yet - and there are quite a few LockableListModels in KoLmafia that actually do store multiple kinds of objects, and we have to do instanceof checks and casts at run time to deal with them.

This has been very educational.

But, yes - JList<E> documentation really does say:

Object[] getSelectedValues()
Deprecated.
As of JDK 1.7, replaced by getSelectedValuesList()

which should have made it clear to me that ListModel<E> was a 1.7 thing. Sorry.

Edit: and not only that, but if I use getSelectedValuesList, it will require 1.7 to run. I guess I can't do that. Damn.
 

lostcalpolydude

Developer
Staff member
How many people are still using Java 5 or 6? I know that group included both holatuwol and jasonharper last time this conversation came up (which makes it an issue to require 7 even for compiling), but it has been a few years and people might have newer hardware that can run Java 7 by now. I'm not saying there isn't a meaningful portion of people that can't run Java 7, but it would be nice to get feedback indicating that this group still exists.
 

fronobulax

Developer
Staff member
I have to run Java 6 on a work computer because I am maintaining a several year old code base that uses 1.6 features that were removed or changed in 1.7 and it won't compile under 1.7 even with compatibility settings. However I am also required to maintain work code that uses new 1.7 features so the net effect is the work machine has 1.6 and 1.7 in both x32 and x64 versions. This is just an aside since anything I do with Mafia can easily be done with 1.7.
 

PeKaJe

Member
I'm maintaining a small number of patches, both for my own use, and some I might submit for official inclusion once I'm done testing. Unfortunately the machine I develop on is primarily on Java 6, and is at a point where it can't be upgraded through official methods. After some fiddling, I did manage to get Java 7 installed, but while I can now compile just fine, for some reason I can't actually run mafia with 7 (except CLI only). I've got my workaround for now (switch JDK, compile, switch back), but if the change means that down the line I won't even be able to run mafia on Java 6 ... that would get a little annoying. At least until I can get a chance to reinstall this machine.
 

fronobulax

Developer
Staff member
AFAIK the jar files generated by the project standard compilation process will run just fine on Java 6. So if you are building something that will not run on Java 6 then you have probably deviated from the standard build process and there is a reasonable chance your system/process could be tweaked to correct that.

I suspect the number of devs and would be devs who have not and could not upgrade to 1.7 is fairly low although not zero.
 

lostcalpolydude

Developer
Staff member
Hmm. I wasn't intending to force 1.7, but google gives me the 1.7 docs by default, these days, and the 1.6 docs aren't even on the first page of search results.
I found that I can replace the 7 in the URL with a 6 (or 5) and get to the relevant page on Oracle's site, as a substitute for using any sane method to navigate there.
 

Veracity

Developer
Staff member
Veracity was considering making that not the case any more.
My original motivation for doing this would, as I now know, require executing with 1.7, not simply compiling with it.

I've been working on this program for almost 10 years now. Our Sourceforge pages says "KoLmafia is written in Java (J2SE 1.5 compliant), with binary releases in JAR format." That hasn't been true for a number of years now; I recall the big discussion we had about upgrading to 1.6. We concluded that the only computers which could not execute 1.6 binaries were already obsolete. I'm not prepared to declare the same of computers that cannot run 1.7; although 1.6 is no longer supported by Oracle (unless you have a maintenance contract of some sort), I'm not even sure if my (old) Macbook Pro laptop can run Lion, which is required for 1.7. I don't develop KoLmafia on that computer any more, or I would have discovered that AbstractListModel<E> was a 1.7 feature and that I couldn't use that feature and keep 1.6 source compliance.

I am surprised to see this in build.xml:

Code:
		<javac
			compiler="modern"
			source="1.5"
			target="1.5"
			srcdir="${src}"
			destdir="${build}"
...
Really? It sure doesn't seem to be enforcing 1.5 source code.

I am not arguing that we should require 1.7 in order to execute our .jar files. I am prepared to abandon my idea of using what turns out to be a 1.7-only method to simplify and improve some code.

However, I am NOT prepared to roll back the 100s of files I changed to use LockableListModel<E> and SortedListModel<E>. I briefly experimented to see if I could do that without having AbstractListModel<E> and ListModel<E>, and the answer was "no".

Although we are discussing this here, somebody has already filed a "Bug" about this. I'm not sure whether to change it to "Not a Bug" or "Won't Fix". Or, perhaps, to simply merge it in to this thread.

I found that I can replace the 7 in the URL with a 6 (or 5) and get to the relevant page on Oracle's site, as a substitute for using any sane method to navigate there.
Yeah, I did that for a while, but it got tedious, since I was never looking at things that had changed; I wanted documentation on which methods were available, and I was always looking for relatively simple stuff which had been there forever. Now, generics were invented in 6, if I recall, so we see the page for ArrayList in 5 and ArrayList<E> in version 6. I've got used to that, so when version 7 pages started being the norm, I just used them, rather than looking back for version 6.

Unfortunately, that meant that I did not notice that JList<E> was in version 7 but not in version 6. Fortunately, as xKiv noted, the large bulk of what being generic implies is just in the compiler - type-checking, and such - and you only require 1.7 at runtime if you use new 1.7 methods.
 

xKiv

Active member
However, I am NOT prepared to roll back the 100s of files I changed to use LockableListModel<E> and SortedListModel<E>. I briefly experimented to see if I could do that without having AbstractListModel<E> and ListModel<E>, and the answer was "no".

Would writing an intermediate "wrapper" class (extending AbstractListModel) that would "add generic" and getSelectedValuesList() be feasible?
 

DoctorRotelle

Developer
Now I understand why I'm getting 61 errors trying to build. My most current OS is Windows XP Pro x64 and my Java is 1.6. I have been thinking about buying a windows 8 machine. Is there a better IDE than Netbeans I should look into while transitioning??
 

Darzil

Developer
I really should install NetBeans or something. I'm sure I'm doing things the hard way just using a text editor (though I've moved on from Notepad to Notepad++ in the last few years).
 
So the reason I compile my own version of mafia is I make some small custom changes to the code.

I looked on the Oracle site for jdk 7u55 but couldn't find it. Is it possible to download older versions of java from them?

It seems like there is a very small window of java to run and compile mafia in now, and I'm worried about the security concerns of these older version 7 versions of java.
That version had some big problems that wasn't in version 6.
 
Last edited:

Veracity

Developer
Staff member
So the reason I compile my own version of mafia is I make some small custom changes to the code.
Good for you.

I looked on the Oracle site for jdk 7u55 but couldn't find it. Is it possible to download older versions of java from them?
Bale gave you the link when he recommended it.

It seems like there is a very small window of java to run and compile mafia in now
Compile, yes. Run? No, as has been mentioned repeatedly, you can still run it with version 6.

and I'm worried about the security concerns of these older version 7 versions of java.
That version had some big problems that wasn't in version 6.
You believe that KoLmafia compiled with Java 7 vs. Java 6 is a security threat? Seriously?
 

lostcalpolydude

Developer
Staff member
I looked on the Oracle site for jdk 7u55 but couldn't find it. Is it possible to download older versions of java from them?
You can download older versions from here

It seems like there is a very small window of java to run and compile mafia in now, and I'm worried about the security concerns of these older version 7 versions of java.
That version had some big problems that wasn't in version 6.

I expect that Oracle will eventually fix the bug in versions later than 7u55. No matter how many times you bring it up, nothing we do will change that. Also, it's a minor enough issue that you can just deal with the badly-displayed tables if you are concerned about running older versions.

As far as security goes, if you don't let Java plugins run in your web browser then you should be fine. Hopefully you trust any Java (and non-Java, for that matter) software you download to run.
 
You believe that KoLmafia compiled with Java 7 vs. Java 6 is a security threat? Seriously?

No of course not. I am worried about java apps in web browsers. It's true you can turn it off, but then some web apps that I use won't work. Once I upgrade java on my computer it's upgraded for everything, not just compiling mafia.

Is there a way to switch between java 6 and java 7 on the mac? I would be willing to switch it over to 7 just long enough to compile mafia and then switch back to 6 for
running it and for my web browsers, etc..
 
Last edited:
Top