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

Suhas Satish updated PIG-3667:
------------------------------

               Labels: build  (was: )
    Affects Version/s:     (was: 0.11.1)
         Hadoop Flags: Reviewed
               Status: Patch Available  (was: Open)

> build.xml jar-all target does not include jython*.jar in lib/ directory 
> ------------------------------------------------------------------------
>
>                 Key: PIG-3667
>                 URL: https://issues.apache.org/jira/browse/PIG-3667
>             Project: Pig
>          Issue Type: Bug
>          Components: build
>    Affects Versions: 0.12.0
>            Reporter: Suhas Satish
>            Assignee: Suhas Satish
>              Labels: build
>
> Pig package does not include the jython jar within lib/ directory  with the 
> jar-all ant target but includes it in the "ant package" target. It should be 
> including it in both targets as often, the build/ directory is excluded from 
> packaging which is where ivy puts all the dependency jars while building 
> under build/ivy/lib/Pig  
> To reproduce:
> ant jar-all 
> rm -rf build/ 
> bin/pig
> grunt> register '/tmp/test.py' using jython as myfunction;
> If done prior to installing jython, here's the error one gets:
> 2013-12-27 18:22:31,145 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR
> 2998: Unhandled internal error. org/python/core/PyObject
> Details at logfile: pig_*.log
> Within the pig_*.log => 
> <log>
> Pig Stack Trace
> ---------------
> ERROR 2998: Unhandled internal error. org/python/core/PyObject
> java.lang.NoClassDefFoundError: org/python/core/PyObject
>         at
> org.apache.pig.scripting.jython.JythonScriptEngine.registerFunctions(JythonScriptEngine.java:304)
>         at org.apache.pig.PigServer.registerCode(PigServer.java:501)
>         at
> org.apache.pig.tools.grunt.GruntParser.processRegister(GruntParser.java:436)
>         at
> org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:445)
>         at
> org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:194)
>         at
> org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:170)
>         at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
>         at org.apache.pig.Main.run(Main.java:538)
>         at org.apache.pig.Main.main(Main.java:157)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.apache.hadoop.util.RunJar.main(RunJar.java:197)
> Caused by: java.lang.ClassNotFoundException: org.python.core.PyObject
>         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)
>         ... 14 more
> Fix: Including jython*.jar within the lib/ directory gets rid of this issue 
> and the UDF can be loaded- 
> grunt>  register '/tmp/test.py' using jython as myfuncs;
> 2013-12-27 18:37:02,402 [main] INFO 
> org.apache.pig.scripting.jython.JythonScriptEngine - created tmp
> python.cachedir=/tmp/pig_jython_4887743829482443898
> 2013-12-27 18:37:03,448 [main] WARN 
> org.apache.pig.scripting.jython.JythonScriptEngine - pig.cmd.args.remainders 
> is
> empty. This is not expected unless on testing.
> 2013-12-27 18:37:03,724 [main] INFO 
> org.apache.pig.scripting.jython.JythonScriptEngine - Register scripting UDF:
> myfuncs.helloworld



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

Reply via email to