Jose V Nunez created PIVOT-917:
----------------------------------

             Summary: Pivot cannot find inner classes in the CLASSPATH when 
invoked from Jython
                 Key: PIVOT-917
                 URL: https://issues.apache.org/jira/browse/PIVOT-917
             Project: Pivot
          Issue Type: Bug
          Components: pivot-on-apache-extras
    Affects Versions: 2.0.3
            Reporter: Jose V Nunez


The following is similar to the simple Hello world BXML from the PIVOT website 
(http://pivot.apache.org/tutorials/hello-bxml.html, file hello.bxml content is 
identical):

{code}
#!/usr/bin/env jython
from org.apache.pivot.beans import BXMLSerializer
from org.apache.pivot.collections import Map
from org.apache.pivot.wtk import Application
from org.apache.pivot.wtk import Display
from org.apache.pivot.wtk import Window
from org.apache.pivot.wtk import DesktopApplicationContext
from java.lang import Runnable, Exception as Ex
from javax.swing import SwingUtilities
import sys,subprocess,os,re, traceback

class HelloBXML(Application):

        def __init__(self):
                self.window = None
                self.bxmlSerializer = BXMLSerializer()

        def startup(self, display, properties):
                self.window = self.bxmlSerializer.readObject(HelloBXML, 
"hello.bxml")
                self.window.open(display)

        def shutdown(self, optional):
                if self.window != null:
                        window.close()
                return False;

        def suspend(self):
                pass

        def resume(self):
                pass

class Task(Runnable):

        def __init__(self, argv):
                self.argv = argv

        def run(self):
                DesktopApplicationContext.main(HelloBXML, self.argv)

if __name__ == "__main__":
        try:
                SwingUtilities.invokeAndWait(Task(sys.argv[1:]))
        except:
                traceback.print_exc(file=sys.stderr)
                sys.exit(192)

{code}

Exception stack trace:

{code}
# Script file: ~/HelloBXML.py
java.lang.ClassNotFoundException: org.python.proxies.__main__$HelloBXML$1
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at 
org.apache.pivot.wtk.DesktopApplicationContext.main(DesktopApplicationContext.java:606)
        at 
org.apache.pivot.wtk.DesktopApplicationContext.main(DesktopApplicationContext.java:881)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at 
org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:186)
        at 
org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:204)
        at org.python.core.PyObject.__call__(PyObject.java:404)
        at org.python.core.PyObject.__call__(PyObject.java:408)
        at org.python.pycode._pyx0.run$9(/home/jnunezzu/HelloBXML.py:39)
        at org.python.pycode._pyx0.call_function(/home/jnunezzu/HelloBXML.py)
        at org.python.core.PyTableCode.call(PyTableCode.java:165)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:301)
        at org.python.core.PyBaseCode.call(PyBaseCode.java:194)
        at org.python.core.PyFunction.__call__(PyFunction.java:387)
        at org.python.core.PyMethod.instancemethod___call__(PyMethod.java:220)
        at org.python.core.PyMethod.__call__(PyMethod.java:211)
        at org.python.core.PyMethod.__call__(PyMethod.java:201)
        at org.python.core.PyMethod.__call__(PyMethod.java:196)
        at org.python.core.PyObject._jcallexc(PyObject.java:3502)
        at org.python.core.PyObject._jcall(PyObject.java:3534)
        at org.python.proxies.__main__$Task$2.run(Unknown Source)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:241)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
        at java.awt.EventQueue.access$000(EventQueue.java:101)
        at java.awt.EventQueue$3.run(EventQueue.java:666)
        at java.awt.EventQueue$3.run(EventQueue.java:664)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
        at 
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
        at 
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
        at 
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
{code}

I tested this with the following configuration:

{code}
Jython 2.5.3 (2.5:c56500f08d34+, Aug 13 2012, 14:48:36)
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.7.0
Type "help", "copyright", "credits" or "license" for more information.

java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build 1.7.0-b147)
Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)

uname -a
Linux XXXX 2.6.18-348.3.1.el5 #1 SMP Tue Mar 5 13:19:32 EST 2013 x86_64 x86_64 
x86_64 GNU/Linux

echo $CLASSPATH
/home/jose/src/apache-pivot-2.0.3/lib/hello.bxml:/home/jose/src/apache-pivot-2.0.3/lib/pivot-wtk-terra-2.0.3.jar:/home/jose/src/apache-pivot-2.0.3/lib/pivot-wtk-2.0.3.jar:/home/jose/src/apache-pivot-2.0.3/lib/pivot-web-server-2.0.3.jar:/home/jose/src/apache-pivot-2.0.3/lib/pivot-web-2.0.3.jar:/home/jose/src/apache-pivot-2.0.3/lib/pivot-core-2.0.3.jar:/home/jose/src/apache-pivot-2.0.3/lib/pivot-charts-2.0.3.jar::.

{code}



--
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

Reply via email to