Uploaded image for project: 'Pivot'
  1. Pivot
  2. PIVOT-917

Pivot cannot find inner classes in the CLASSPATH when invoked from Jython

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Incomplete
    • 2.0.3
    • 2.1
    • pivot-on-apache-extras

    Description

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

      #!/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)
      
      

      Exception stack trace:

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

      I tested this with the following configuration:

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

      Attachments

        1. HelloBXML.py
          1 kB
          Jose V Nunez
        2. run_HelloBXML.sh
          1 kB
          Jose V Nunez

        Activity

          People

            smartini Sandro Martini
            jose.nunez-zuleta@barclayscapital.com Jose V Nunez
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: