[
https://issues.apache.org/jira/browse/PIG-3043?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13494224#comment-13494224
]
Julien Le Dem commented on PIG-3043:
------------------------------------
I tried the Classloader in the backend in the past and ended up reverting it
because of similar issues to the one described in this ticket. For example, a
Loader (in a registered jar) not seeing files from the registered jar because
the Configuration object uses getResourceAsStream on its own classloader.
Having 2 classloaders where there was 1 has side effects.
see: https://issues.apache.org/jira/browse/PIG-2318
> Modify the UrlClassloader in PigContext so that classes from the same
> classloader are used first instead of the parent
> ----------------------------------------------------------------------------------------------------------------------
>
> Key: PIG-3043
> URL: https://issues.apache.org/jira/browse/PIG-3043
> Project: Pig
> Issue Type: Improvement
> Reporter: Julien Le Dem
>
> This behavior would be similar to what application servers do (Tomcat, Jetty,
> ...) and would allow classes from registered jars to use their own version of
> a class. It also avoid problems when adding a jar to pig break libraries that
> make use of dynamic class lookup.
> example of a common pattern that regularly is broken by the current mechanism:
> register lib.jar
> register my.jar
> define blah as my.UDF('my.Implementation')
> my.UDF is in my.jar and uses classes in lib.jar that use Class.forName() to
> resolve my.Implementation. It works fine until lib.jar is added as a
> dependency of pig or in the PIG_CLASSPATH. Then classes in lib.jar do not see
> the classes in registered jars.
> I thinks that overriding loadClass(String name, boolean resolve) would allow
> doing that.
> We should make an exception for anything in org.apache.pig just like
> servlet.jar is excluded in app servers.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira