Jason Gustafson created KAFKA-2990:
--------------------------------------

             Summary: NoSuchMethodError when Kafka is compiled with 1.8 and run 
on 1.7
                 Key: KAFKA-2990
                 URL: https://issues.apache.org/jira/browse/KAFKA-2990
             Project: Kafka
          Issue Type: Bug
            Reporter: Jason Gustafson
            Assignee: Jason Gustafson


I saw the following exception in the server logs when Kafka is compiled with 
1.8 jdk and run on a 1.7.

{code}
java.lang.NoSuchMethodError: 
java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
        at kafka.utils.Pool.keys(Pool.scala:79)
        at 
kafka.coordinator.GroupMetadataManager.kafka$coordinator$GroupMetadataManager$$removeGroupsAndOffsets$1(GroupMetadataManager.scala:483)
        at 
kafka.coordinator.GroupMetadataManager$$anonfun$removeGroupsForPartition$1.apply$mcV$sp(GroupMetadataManager.scala:465)
        at 
kafka.utils.KafkaScheduler$$anonfun$1.apply$mcV$sp(KafkaScheduler.scala:110)
        at kafka.utils.CoreUtils$$anon$1.run(CoreUtils.scala:60)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
{code}

The keySet() method for ConcurrentHashMap was changed in 1.8 to refer to 
KeySetView, which didn't exist in 1.7. To fix it, we just need to make sure 
that Pool calls ConcurrentMap.keySet() instead.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to