hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-9941) The context ClassLoader isn't set while calling into a coprocessor
Date Sat, 04 Jan 2014 02:33:50 GMT

    [ https://issues.apache.org/jira/browse/HBASE-9941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13862162#comment-13862162
] 

Andrew Purtell commented on HBASE-9941:
---------------------------------------

bq. Only comment is can the caliper dependency be {{<scope>test</scope>}}?  Don't
want to ship it as a dependency if it's only for test code.  

If I make it a test only dependency then this happens:
{noformat}
./bin/hbase org.apache.hadoop.hbase.CoprocessorInvocationEvaluation --trials 10
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/caliper/SimpleBenchmark
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Caused by: java.lang.ClassNotFoundException: com.google.caliper.SimpleBenchmark
	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247
{noformat}

I will commit this shortly to trunk and 0.98 if no objections.

> The context ClassLoader isn't set while calling into a coprocessor
> ------------------------------------------------------------------
>
>                 Key: HBASE-9941
>                 URL: https://issues.apache.org/jira/browse/HBASE-9941
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Coprocessors
>    Affects Versions: 0.96.0
>            Reporter: Benoit Sigoure
>            Assignee: Andrew Purtell
>             Fix For: 0.98.0
>
>         Attachments: 9941.patch, 9941.patch, 9941.patch, 9941.patch
>
>
> Whenever one of the methods of a coprocessor is invoked, the context {{ClassLoader}}
isn't set to be the {{CoprocessorClassLoader}}.  It's only set properly when calling the coprocessor's
{{start}} method.  This means that if the coprocessor code attempts to load classes using
the context {{ClassLoader}}, it will fail to find the classes it's looking for.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message