[
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 <[email protected]>
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/[email protected]/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)