[ https://issues.apache.org/jira/browse/KAFKA-2295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14958614#comment-14958614 ]
ASF GitHub Bot commented on KAFKA-2295: --------------------------------------- GitHub user omkreddy opened a pull request: https://github.com/apache/kafka/pull/314 KAFKA-2295; Support given for dynamically loaded classes (encoders, e… Rebased code.. You can merge this pull request into a Git repository by running: $ git pull https://github.com/omkreddy/kafka KAFKA-2295 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/314.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #314 ---- commit dafc210c2501ac7fc91ba63e744d9939fbeb64c5 Author: Manikumar reddy O <manikumar.re...@gmail.com> Date: 2015-10-15T10:06:40Z KAFKA-2295; Support given for dynamically loaded classes (encoders, etc.) ---- > Dynamically loaded classes (encoders, etc.) may not be found by Kafka > Producer > ------------------------------------------------------------------------------- > > Key: KAFKA-2295 > URL: https://issues.apache.org/jira/browse/KAFKA-2295 > Project: Kafka > Issue Type: Bug > Components: producer > Reporter: Tathagata Das > Assignee: Manikumar Reddy > Priority: Blocker > Fix For: 0.9.0.0 > > Attachments: KAFKA-2295.patch, KAFKA-2295_2015-07-06_11:32:58.patch, > KAFKA-2295_2015-08-20_17:44:56.patch > > > Kafka Producer (via CoreUtils.createObject) effectively uses Class.forName to > load encoder classes. Class.forName is by design finds classes only in the > defining classloader of the enclosing class (which is often the bootstrap > class loader). It does not use the current thread context class loader. This > can lead to problems in environments where classes are dynamically loaded and > therefore may not be present in the bootstrap classloader. > This leads to ClassNotFound Exceptions in environments like Spark where > classes are loaded dynamically using custom classloaders. Issues like this > have reported. E.g. - > https://www.mail-archive.com/user@spark.apache.org/msg30951.html > Other references regarding this issue with Class.forName > http://stackoverflow.com/questions/21749741/though-my-class-was-loaded-class-forname-throws-classnotfoundexception > This is a problem we have faced repeatedly in Apache Spark and we solved it > by explicitly specifying the class loader to use. See > https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/util/Utils.scala#L178 -- This message was sent by Atlassian JIRA (v6.3.4#6332)