HBase
  1. HBase
  2. HBASE-10030

[JDK8] Erasure of PoolMap#remove(K,V) conflicts with superclass method

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Trivial Trivial
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.98.0
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      On JDK 8, the erasure of PoolMap#remove(K,V) conflicts with superclass method remove(Object,Object).

      1. 10030.patch
        2 kB
        Andrew Purtell

        Activity

        Andrew Purtell created issue -
        Andrew Purtell made changes -
        Field Original Value New Value
        Attachment 10030.patch [ 12615769 ]
        Andrew Purtell made changes -
        Status Open [ 1 ] Patch Available [ 10002 ]
        Andrew Purtell made changes -
        Attachment 10030.patch [ 12615769 ]
        Andrew Purtell made changes -
        Attachment 10030.patch [ 12615780 ]
        Hide
        stack added a comment -

        +1

        Show
        stack added a comment - +1
        Hide
        Hadoop QA added a comment -

        -1 overall. Here are the results of testing the latest attachment
        http://issues.apache.org/jira/secure/attachment/12615780/10030.patch
        against trunk revision .

        +1 @author. The patch does not contain any @author tags.

        -1 tests included. The patch doesn't appear to include any new or modified tests.
        Please justify why no new tests are needed for this patch.
        Also please list what manual steps were performed to verify this patch.

        +1 hadoop1.0. The patch compiles against the hadoop 1.0 profile.

        +1 hadoop2.0. The patch compiles against the hadoop 2.0 profile.

        +1 javadoc. The javadoc tool did not generate any warning messages.

        +1 javac. The applied patch does not increase the total number of javac compiler warnings.

        +1 findbugs. The patch does not introduce any new Findbugs (version 1.3.9) warnings.

        +1 release audit. The applied patch does not increase the total number of release audit warnings.

        +1 lineLengths. The patch does not introduce lines longer than 100

        -1 site. The patch appears to cause mvn site goal to fail.

        +1 core tests. The patch passed unit tests in .

        Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//testReport/
        Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
        Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
        Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
        Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
        Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
        Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html
        Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
        Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
        Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
        Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//console

        This message is automatically generated.

        Show
        Hadoop QA added a comment - -1 overall . Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12615780/10030.patch against trunk revision . +1 @author . The patch does not contain any @author tags. -1 tests included . The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. +1 hadoop1.0 . The patch compiles against the hadoop 1.0 profile. +1 hadoop2.0 . The patch compiles against the hadoop 2.0 profile. +1 javadoc . The javadoc tool did not generate any warning messages. +1 javac . The applied patch does not increase the total number of javac compiler warnings. +1 findbugs . The patch does not introduce any new Findbugs (version 1.3.9) warnings. +1 release audit . The applied patch does not increase the total number of release audit warnings. +1 lineLengths . The patch does not introduce lines longer than 100 -1 site . The patch appears to cause mvn site goal to fail. +1 core tests . The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//testReport/ Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop1-compat.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html Findbugs warnings: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html Console output: https://builds.apache.org/job/PreCommit-HBASE-Build/7993//console This message is automatically generated.
        Hide
        Lars Hofhansl added a comment -

        Getting started on JDK8, great!
        +1 on patch. It might be time to retire poolMap as well. It's used in HTablePool and for TCP connection pooling.

        Show
        Lars Hofhansl added a comment - Getting started on JDK8, great! +1 on patch. It might be time to retire poolMap as well. It's used in HTablePool and for TCP connection pooling.
        Hide
        Andrew Purtell added a comment -

        Committed to trunk. Thanks for the acks Stack and Lars.

        Getting started on JDK8, great!

        Yes

        Show
        Andrew Purtell added a comment - Committed to trunk. Thanks for the acks Stack and Lars. Getting started on JDK8, great! Yes
        Andrew Purtell made changes -
        Status Patch Available [ 10002 ] Resolved [ 5 ]
        Hadoop Flags Reviewed [ 10343 ]
        Resolution Fixed [ 1 ]
        Hide
        Eric Charles added a comment -

        See also HBASE-10327

        Show
        Eric Charles added a comment - See also HBASE-10327
        Hide
        Eric Charles added a comment -

        It works fine with jdk8 via mvn cli, but gives compilation issue in eclipse (not the first time eclipse disagrees with mvn-cli).
        Only me?

        Show
        Eric Charles added a comment - It works fine with jdk8 via mvn cli, but gives compilation issue in eclipse (not the first time eclipse disagrees with mvn-cli). Only me?
        Hide
        Andrew Purtell added a comment -

        Possibly. Eclipse on JDK8 worked for me. I can check that again when I have a free moment.

        Show
        Andrew Purtell added a comment - Possibly. Eclipse on JDK8 worked for me. I can check that again when I have a free moment.
        Hide
        Eric Charles added a comment -

        finally fails also via the maven command line if I clean before compiling
        $ mvn -v
        Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 14:51:28+0100)
        Maven home: /opt/apache-maven-3.0.5
        Java version: 1.8.0-ea, vendor: Oracle Corporation
        Java home: /opt/jdk1.8.0-b117/jre
        Default locale: en_US, platform encoding: UTF-8
        OS name: "linux", version: "3.12.0-4-generic", arch: "amd64", family: "unix"

        Show
        Eric Charles added a comment - finally fails also via the maven command line if I clean before compiling $ mvn -v Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 14:51:28+0100) Maven home: /opt/apache-maven-3.0.5 Java version: 1.8.0-ea, vendor: Oracle Corporation Java home: /opt/jdk1.8.0-b117/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.12.0-4-generic", arch: "amd64", family: "unix"
        Hide
        Andrew Purtell added a comment - - edited

        Java version: 1.8.0-ea, vendor: Oracle Corporation

        Ok, I am sorry, I have not adequately explained what we did here. We deprecated the old method but did not remove it. Therefore at some point we can kill the conflicting method, I guess we can do this in trunk now that 0.98 is branched, and then we can compile with JDK 8.
        Edit: Also, above, I forgot I have this removal applied privately to the branch I use for JDK 8 stuff. Sorry again.

        Show
        Andrew Purtell added a comment - - edited Java version: 1.8.0-ea, vendor: Oracle Corporation Ok, I am sorry, I have not adequately explained what we did here. We deprecated the old method but did not remove it. Therefore at some point we can kill the conflicting method, I guess we can do this in trunk now that 0.98 is branched, and then we can compile with JDK 8. Edit: Also, above, I forgot I have this removal applied privately to the branch I use for JDK 8 stuff. Sorry again.
        Hide
        Andrew Purtell added a comment -

        An alternative for trunk is we can just kill PoolMap as Lars Hofhansl says above.

        Show
        Andrew Purtell added a comment - An alternative for trunk is we can just kill PoolMap as Lars Hofhansl says above.
        Hide
        Eric Charles added a comment -

        HBASE-10327.patch in HBASE-10327 is the removal of that deprecated method which is not used in trunk.
        I think you could apply HBASE-10327.patch and it would be ok
        (Would be good to compile with jdk8 because hbase runs fine with jdk8)

        Show
        Eric Charles added a comment - HBASE-10327 .patch in HBASE-10327 is the removal of that deprecated method which is not used in trunk. I think you could apply HBASE-10327 .patch and it would be ok (Would be good to compile with jdk8 because hbase runs fine with jdk8)
        Hide
        Andrew Purtell added a comment -

        I think you could apply HBASE-10327.patch and it would be ok

        Thanks for the reminder. Let's repurpose that one.

        Show
        Andrew Purtell added a comment - I think you could apply HBASE-10327 .patch and it would be ok Thanks for the reminder. Let's repurpose that one.

          People

          • Assignee:
            Andrew Purtell
            Reporter:
            Andrew Purtell
          • Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development