Bug 56360 - HashTree and ListedHashTree fail to compile with Java 8
Summary: HashTree and ListedHashTree fail to compile with Java 8
Status: RESOLVED FIXED
Alias: None
Product: JMeter
Classification: Unclassified
Component: Main (show other bugs)
Version: 2.11
Hardware: All All
: P2 normal (vote)
Target Milestone: ---
Assignee: JMeter issues mailing list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-04-07 21:20 UTC by Emmanuel Bourg
Modified: 2014-04-11 15:47 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Emmanuel Bourg 2014-04-07 21:20:57 UTC
HashTree and ListedHashTree in the org.apache.jorphan.collections package fail to compile with Java 8 due to a conflict with the newly added Map.replace(K,V) method:

compile-jorphan:
    [javac] Compiling 55 source files to C:\dev\apache\jmeter\build\jorphan
    [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6
    [javac] C:\dev\apache\jmeter\src\jorphan\org\apache\jorphan\collections\HashTree.java:766: error: name clash: replace(Object,Object) in HashTree and replace(K,V) in Map have the same erasure, yet neither overrides the other
    [javac]     public void replace(Object currentKey, Object newKey) {
    [javac]                 ^
    [javac]   where K,V are type-variables:
    [javac]     K extends Object declared in interface Map
    [javac]     V extends Object declared in interface Map
    [javac] C:\dev\apache\jmeter\src\jorphan\org\apache\jorphan\collections\ListedHashTree.java:119: error: name clash: replace(Object,Object) in ListedHashTree and replace(K,V) in Map have the same erasure, yet neither overrides the other
    [javac]     public void replace(Object currentKey, Object newKey) {
    [javac]                 ^
    [javac]   where K,V are type-variables:
    [javac]     K extends Object declared in interface Map
    [javac]     V extends Object declared in interface Map
    [javac] Note: C:\dev\apache\jmeter\src\jorphan\org\apache\jorphan\gui\JLabeledChoice.java uses unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 2 errors
    [javac] 1 warning
Comment 1 Sebb 2014-04-07 22:19:17 UTC
JMeter currently targets Java 1.6
Comment 2 Emmanuel Bourg 2014-04-07 22:32:15 UTC
This is problematic for Debian where JMeter is compiled from the sources. This blocks the transition to Java 8 as the default JDK.
Comment 3 Emmanuel Bourg 2014-04-11 15:03:46 UTC
Here is the patch applied in Debian fixing this issue (for JMeter 2.8)

http://anonscm.debian.org/viewvc/pkg-java/trunk/jakarta-jmeter/debian/patches/04_java8_compatibility.patch?view=co
Comment 4 Sebb 2014-04-11 15:47:08 UTC
Thanks for the patch etc.

Fixed:

URL: http://svn.apache.org/r1586693
Log:
HashTree and ListedHashTree fail to compile with Java 8
Rename replace as replaceKey to avoid clash with Java 8 Map.replace(K,V) mew method
Bugzilla Id: 56360

Modified:
    jmeter/trunk/src/core/org/apache/jmeter/JMeter.java
    jmeter/trunk/src/core/org/apache/jmeter/engine/ConvertListeners.java
    jmeter/trunk/src/core/org/apache/jmeter/gui/action/Save.java
    jmeter/trunk/src/jorphan/org/apache/jorphan/collections/HashTree.java
    jmeter/trunk/src/jorphan/org/apache/jorphan/collections/ListedHashTree.java
    jmeter/trunk/src/reports/org/apache/jmeter/report/gui/action/ReportSave.java
    jmeter/trunk/xdocs/changes.xml