[ 
https://issues.apache.org/jira/browse/KAFKA-3075?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pengwei updated KAFKA-3075:
---------------------------
    Description: 
When using java api's commit offset :

 public void commitOffsets(Map<TopicAndPartition, OffsetAndMetadata> 
offsetsToCommit, boolean retryOnFailure);

and pass a  Java Hash Map to this interface, will found:

java.lang.ClassCastException: java.util.HashMap cannot be cast to 
scala.collection.immutable.Map
at 
kafka.javaapi.consumer.ZookeeperConsumerConnector.commitOffsets(ZookeeperConsumerConnector.scala:118)
at 
kafka.examples.CommitExceptionTest.testCommitNotExistTopicShoudThrowException(CommitExceptionTest.java:55)
at kafka.examples.CommitExceptionTest.main(CommitExceptionTest.java:20)
Test case testCommitNotExistTopicShoudThrowException OK.
Exception in thread "main" java.lang.ClassCastException: java.util.HashMap 
cannot be cast to scala.collection.immutable.Map
at 
kafka.javaapi.consumer.ZookeeperConsumerConnector.commitOffsets(ZookeeperConsumerConnector.scala:118)
at 
kafka.examples.CommitExceptionTest.testCommitOffsetOutOfRange(CommitExceptionTest.java:95)
at kafka.examples.CommitExceptionTest.main(CommitExceptionTest.java:22)

The Origin Code:
 def commitOffsets(offsetsToCommit: java.util.Map[TopicAndPartition, 
OffsetAndMetadata], retryOnFailure: Boolean) {
    
underlying.commitOffsets(offsetsToCommit.asInstanceOf[immutable.Map[TopicAndPartition,
 OffsetAndMetadata]], retryOnFailure)
  }
I try to fix like this, it is OK:
  def commitOffsets(offsetsToCommit: java.util.Map[TopicAndPartition, 
OffsetAndMetadata], retryOnFailure: Boolean) {
    import scala.collection.JavaConverters._
    underlying.commitOffsets(offsetsToCommit.asScala.toMap, retryOnFailure)
  }


  was:
When using java api's commit offset :

 public void commitOffsets(Map<TopicAndPartition, OffsetAndMetadata> 
offsetsToCommit, boolean retryOnFailure);

and pass a  Java Hash Map to this interface, will found:

java.lang.ClassCastException: java.util.HashMap cannot be cast to 
scala.collection.immutable.Map
at 
kafka.javaapi.consumer.ZookeeperConsumerConnector.commitOffsets(ZookeeperConsumerConnector.scala:118)
at 
kafka.examples.CommitExceptionTest.testCommitNotExistTopicShoudThrowException(CommitExceptionTest.java:55)
at kafka.examples.CommitExceptionTest.main(CommitExceptionTest.java:20)
Test case testCommitNotExistTopicShoudThrowException OK.
Exception in thread "main" java.lang.ClassCastException: java.util.HashMap 
cannot be cast to scala.collection.immutable.Map
at 
kafka.javaapi.consumer.ZookeeperConsumerConnector.commitOffsets(ZookeeperConsumerConnector.scala:118)
at 
kafka.examples.CommitExceptionTest.testCommitOffsetOutOfRange(CommitExceptionTest.java:95)
at kafka.examples.CommitExceptionTest.main(CommitExceptionTest.java:22)

The Origin Code:
def setConsumerRebalanceListener(consumerRebalanceListener: 
ConsumerRebalanceListener) {
    underlying.setConsumerRebalanceListener(consumerRebalanceListener)
  }

I try to fix like this, it is OK:
  def commitOffsets(offsetsToCommit: java.util.Map[TopicAndPartition, 
OffsetAndMetadata], retryOnFailure: Boolean) {
    import scala.collection.JavaConverters._
    underlying.commitOffsets(offsetsToCommit.asScala.toMap, retryOnFailure)
  }



> java.util.HashMap cannot be cast to scala.collection.immutable.Map When using 
>  ZookeeperConsumerConnector.commitOffsets
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: KAFKA-3075
>                 URL: https://issues.apache.org/jira/browse/KAFKA-3075
>             Project: Kafka
>          Issue Type: Bug
>          Components: consumer
>            Reporter: Pengwei
>            Assignee: Neha Narkhede
>             Fix For: 0.9.0.1
>
>
> When using java api's commit offset :
>  public void commitOffsets(Map<TopicAndPartition, OffsetAndMetadata> 
> offsetsToCommit, boolean retryOnFailure);
> and pass a  Java Hash Map to this interface, will found:
> java.lang.ClassCastException: java.util.HashMap cannot be cast to 
> scala.collection.immutable.Map
> at 
> kafka.javaapi.consumer.ZookeeperConsumerConnector.commitOffsets(ZookeeperConsumerConnector.scala:118)
> at 
> kafka.examples.CommitExceptionTest.testCommitNotExistTopicShoudThrowException(CommitExceptionTest.java:55)
> at kafka.examples.CommitExceptionTest.main(CommitExceptionTest.java:20)
> Test case testCommitNotExistTopicShoudThrowException OK.
> Exception in thread "main" java.lang.ClassCastException: java.util.HashMap 
> cannot be cast to scala.collection.immutable.Map
> at 
> kafka.javaapi.consumer.ZookeeperConsumerConnector.commitOffsets(ZookeeperConsumerConnector.scala:118)
> at 
> kafka.examples.CommitExceptionTest.testCommitOffsetOutOfRange(CommitExceptionTest.java:95)
> at kafka.examples.CommitExceptionTest.main(CommitExceptionTest.java:22)
> The Origin Code:
>  def commitOffsets(offsetsToCommit: java.util.Map[TopicAndPartition, 
> OffsetAndMetadata], retryOnFailure: Boolean) {
>     
> underlying.commitOffsets(offsetsToCommit.asInstanceOf[immutable.Map[TopicAndPartition,
>  OffsetAndMetadata]], retryOnFailure)
>   }
> I try to fix like this, it is OK:
>   def commitOffsets(offsetsToCommit: java.util.Map[TopicAndPartition, 
> OffsetAndMetadata], retryOnFailure: Boolean) {
>     import scala.collection.JavaConverters._
>     underlying.commitOffsets(offsetsToCommit.asScala.toMap, retryOnFailure)
>   }



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

Reply via email to