Bug - Won't Fix Builds after 14339 require Java 7 to compile (but not to run)

I can't compile mafia, I'm getting javac errors. I am compiling on MacOSX 10.6.8 with javac 1.6.0_65

As of 14340 I am getting errors that look like this:

Code:
compile:
    [javac] Compiling 2 source files to /Users/dmeleedy/kolmafia_build/code/build
    [javac] /Users/dmeleedy/kolmafia_build/code/lib/net/java/dev/spellcast/utilities/LockableListModel.java:58: type javax.swing.AbstractListModel does not take parameters
    [javac] 	extends AbstractListModel<E>
    [javac] 	                         ^
    [javac] /Users/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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/dmeleedy/kolmafia_build/code/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] Note: Some input files use unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 54 errors
    [javac] Compile failed; see the compiler error output for details.

BUILD FAILED
/Users/dmeleedy/kolmafia_build/code/build.xml:342: The following error occurred while executing this line:
/Users/dmeleedy/kolmafia_build/code/build.xml:166: Failed to compile third-party libraries
 
So I am quite confused. Just the other week I was running mafia with java 7 and found that modtrace didn't work anymore and I should be using java 1.6.x. Now I am being required to update to java 7 somehow on MacOSX 10.6.8? Might be possible, but seems a bit complicated.
 

lostcalpolydude

Developer
Staff member
It was suggested that you downgrade because of a Java bug (in their bug tracker now, and you could have gone to an older version of Java 7 even). I'm not going to respond to the other part of your post because either you didn't bother following the link I posted or you don't actually care about the reasoning.

Also, you can still run mafia with Java 5 or 6, you just have to download it already compiled to do so currently.
 

Veracity

Developer
Staff member
So I am quite confused. Just the other week I was running mafia with java 7 and found that modtrace didn't work anymore and I should be using java 1.6.x.
You were told to use 1.7u55 or earlier. You were not told to go back to 1.6.

Now I am being required to update to java 7 somehow on MacOSX 10.6.8?
You are being "required" to do that only if you compile from the source yourself. There is no such "requirement" in order to execute the .jar file that is compiled from the source.

I am not sure whether this is "Not a Bug" or "Won't Fix". Since it doesn't affect your ability to execute KoLmafia in slightest, I am leaning towards the former.

Feel free to continue the discussion in the existing thread where we are discussing this, which lost pointed you to.
 

Veracity

Developer
Staff member
I've thought this over. Forcing you to use 1.7 to compile was unintentional - I didn't notice that ListModel<E> was introduced in 1.7 - but the wide-ranging improvement to code clarity and compiler type-checking is so valuable, in my opinion, that I'm not going roll it back. I still don't consider this to be a Bug, per se, but it was an unintentional change, so I will shrug and mark it Won't Fix.
 
Top