From: SourceForge.net <no...@so...> - 2007-02-14 09:38:06
|
Bugs item #1659616, was opened at 2007-02-14 09:38 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1659616&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Jythonc compiler Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Peter Quade (pqu) Assigned to: Nobody/Anonymous (nobody) Summary: jythonc creates transient method causing compilation to fail Initial Comment: Using the SwingWorker backport: https://swingworker.dev.java.net/ The publish method is protected, generic and has a variable number of arguments. Jythonc creates a transient super__publish method. Javac does not like transient methods. Code sample ======== import org.jdesktop.swingworker.SwingWorker as SwingWorker class MySwingWorker(SwingWorker): def doInBackground(self): # Explicitly creating a list seems to be necessary self.super__publish([""]) Works with jython (does nothing), breaks in jythonc. jythonc output ========= [...] 1 ./jpywork/swbug.java:93: modifier transient not allowed here public transient void super__publish(java.lang.Object[] arg0) { [...] system information ============ Mac OS X 10.4.8 (Darwin 8.8.1 Darwin Kernel Version 8.8.1: Mon Sep 25 19:42:00 PDT 2006; root:xnu-792.13.8.obj~1/RELEASE_I386 i386) java version "1.5.0_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112) Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing) ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1659616&group_id=12867 |
From: SourceForge.net <no...@so...> - 2007-02-14 09:53:06
|
Bugs item #1659616, was opened at 2007-02-14 09:38 Message generated for change (Comment added) made by pqu You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1659616&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Jythonc compiler Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Peter Quade (pqu) Assigned to: Nobody/Anonymous (nobody) Summary: jythonc creates transient method causing compilation to fail Initial Comment: Using the SwingWorker backport: https://swingworker.dev.java.net/ The publish method is protected, generic and has a variable number of arguments. Jythonc creates a transient super__publish method. Javac does not like transient methods. Code sample ======== import org.jdesktop.swingworker.SwingWorker as SwingWorker class MySwingWorker(SwingWorker): def doInBackground(self): # Explicitly creating a list seems to be necessary self.super__publish([""]) Works with jython (does nothing), breaks in jythonc. jythonc output ========= [...] 1 ./jpywork/swbug.java:93: modifier transient not allowed here public transient void super__publish(java.lang.Object[] arg0) { [...] system information ============ Mac OS X 10.4.8 (Darwin 8.8.1 Darwin Kernel Version 8.8.1: Mon Sep 25 19:42:00 PDT 2006; root:xnu-792.13.8.obj~1/RELEASE_I386 i386) java version "1.5.0_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112) Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing) ---------------------------------------------------------------------- >Comment By: Peter Quade (pqu) Date: 2007-02-14 09:53 Message: Logged In: YES user_id=68877 Originator: YES jython2.2b1 Sorry. I frogot. I am currently investigating this with the svn HEAD version. The supplied codesample works, but the code in my project still breaks... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1659616&group_id=12867 |
From: SourceForge.net <no...@so...> - 2007-02-14 09:54:41
|
Bugs item #1659616, was opened at 2007-02-14 09:38 Message generated for change (Comment added) made by pqu You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1659616&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Jythonc compiler Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Peter Quade (pqu) Assigned to: Nobody/Anonymous (nobody) Summary: jythonc creates transient method causing compilation to fail Initial Comment: Using the SwingWorker backport: https://swingworker.dev.java.net/ The publish method is protected, generic and has a variable number of arguments. Jythonc creates a transient super__publish method. Javac does not like transient methods. Code sample ======== import org.jdesktop.swingworker.SwingWorker as SwingWorker class MySwingWorker(SwingWorker): def doInBackground(self): # Explicitly creating a list seems to be necessary self.super__publish([""]) Works with jython (does nothing), breaks in jythonc. jythonc output ========= [...] 1 ./jpywork/swbug.java:93: modifier transient not allowed here public transient void super__publish(java.lang.Object[] arg0) { [...] system information ============ Mac OS X 10.4.8 (Darwin 8.8.1 Darwin Kernel Version 8.8.1: Mon Sep 25 19:42:00 PDT 2006; root:xnu-792.13.8.obj~1/RELEASE_I386 i386) java version "1.5.0_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112) Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing) ---------------------------------------------------------------------- >Comment By: Peter Quade (pqu) Date: 2007-02-14 09:54 Message: Logged In: YES user_id=68877 Originator: YES no. it still won't compile if swing-worker.jar is in the classpath. ---------------------------------------------------------------------- Comment By: Peter Quade (pqu) Date: 2007-02-14 09:53 Message: Logged In: YES user_id=68877 Originator: YES jython2.2b1 Sorry. I frogot. I am currently investigating this with the svn HEAD version. The supplied codesample works, but the code in my project still breaks... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1659616&group_id=12867 |
From: SourceForge.net <no...@so...> - 2007-02-14 11:10:05
|
Bugs item #1659616, was opened at 2007-02-14 09:38 Message generated for change (Comment added) made by pqu You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1659616&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Jythonc compiler Group: None >Status: Deleted >Resolution: Invalid Priority: 5 Private: No Submitted By: Peter Quade (pqu) Assigned to: Nobody/Anonymous (nobody) Summary: jythonc creates transient method causing compilation to fail Initial Comment: Using the SwingWorker backport: https://swingworker.dev.java.net/ The publish method is protected, generic and has a variable number of arguments. Jythonc creates a transient super__publish method. Javac does not like transient methods. Code sample ======== import org.jdesktop.swingworker.SwingWorker as SwingWorker class MySwingWorker(SwingWorker): def doInBackground(self): # Explicitly creating a list seems to be necessary self.super__publish([""]) Works with jython (does nothing), breaks in jythonc. jythonc output ========= [...] 1 ./jpywork/swbug.java:93: modifier transient not allowed here public transient void super__publish(java.lang.Object[] arg0) { [...] system information ============ Mac OS X 10.4.8 (Darwin 8.8.1 Darwin Kernel Version 8.8.1: Mon Sep 25 19:42:00 PDT 2006; root:xnu-792.13.8.obj~1/RELEASE_I386 i386) java version "1.5.0_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112) Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing) ---------------------------------------------------------------------- >Comment By: Peter Quade (pqu) Date: 2007-02-14 11:10 Message: Logged In: YES user_id=68877 Originator: YES It's me again. Still investigating with the SwingWorker class. It looks like jython is innocent. Using pure Java code to extract the methods of the class, I found out that java itself thinks the publish method is transient. --- snip --- import java.lang.reflect.Method; import org.jdesktop.swingworker.SwingWorker; public class demo{ public static final void main(String[] args) { System.out.println(SwingWorker.class.getName()); for (Method method : SwingWorker.class.getDeclaredMethods()) { System.out.println(method.toString()); } } } --- snap ---- $ java demo|grep publish protected final transient void org.jdesktop.swingworker.SwingWorker.publish(java.lang.Object[]) javap get's it right... interesting. for jython this case is closed. sorry. ---------------------------------------------------------------------- Comment By: Peter Quade (pqu) Date: 2007-02-14 09:54 Message: Logged In: YES user_id=68877 Originator: YES no. it still won't compile if swing-worker.jar is in the classpath. ---------------------------------------------------------------------- Comment By: Peter Quade (pqu) Date: 2007-02-14 09:53 Message: Logged In: YES user_id=68877 Originator: YES jython2.2b1 Sorry. I frogot. I am currently investigating this with the svn HEAD version. The supplied codesample works, but the code in my project still breaks... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1659616&group_id=12867 |
From: SourceForge.net <no...@so...> - 2007-02-14 11:18:32
|
Bugs item #1659616, was opened at 2007-02-14 09:38 Message generated for change (Comment added) made by pqu You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1659616&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Jythonc compiler Group: None >Status: Open >Resolution: None Priority: 5 Private: No Submitted By: Peter Quade (pqu) Assigned to: Nobody/Anonymous (nobody) Summary: jythonc creates transient method causing compilation to fail Initial Comment: Using the SwingWorker backport: https://swingworker.dev.java.net/ The publish method is protected, generic and has a variable number of arguments. Jythonc creates a transient super__publish method. Javac does not like transient methods. Code sample ======== import org.jdesktop.swingworker.SwingWorker as SwingWorker class MySwingWorker(SwingWorker): def doInBackground(self): # Explicitly creating a list seems to be necessary self.super__publish([""]) Works with jython (does nothing), breaks in jythonc. jythonc output ========= [...] 1 ./jpywork/swbug.java:93: modifier transient not allowed here public transient void super__publish(java.lang.Object[] arg0) { [...] system information ============ Mac OS X 10.4.8 (Darwin 8.8.1 Darwin Kernel Version 8.8.1: Mon Sep 25 19:42:00 PDT 2006; root:xnu-792.13.8.obj~1/RELEASE_I386 i386) java version "1.5.0_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112) Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing) ---------------------------------------------------------------------- >Comment By: Peter Quade (pqu) Date: 2007-02-14 11:18 Message: Logged In: YES user_id=68877 Originator: YES It seems jython still has to handle this problem: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6516895 varargs are marked transient by java.lang.reflect.Modifiers. This has to be filtered out for methods. I will try and create a patch. ---------------------------------------------------------------------- Comment By: Peter Quade (pqu) Date: 2007-02-14 11:10 Message: Logged In: YES user_id=68877 Originator: YES It's me again. Still investigating with the SwingWorker class. It looks like jython is innocent. Using pure Java code to extract the methods of the class, I found out that java itself thinks the publish method is transient. --- snip --- import java.lang.reflect.Method; import org.jdesktop.swingworker.SwingWorker; public class demo{ public static final void main(String[] args) { System.out.println(SwingWorker.class.getName()); for (Method method : SwingWorker.class.getDeclaredMethods()) { System.out.println(method.toString()); } } } --- snap ---- $ java demo|grep publish protected final transient void org.jdesktop.swingworker.SwingWorker.publish(java.lang.Object[]) javap get's it right... interesting. for jython this case is closed. sorry. ---------------------------------------------------------------------- Comment By: Peter Quade (pqu) Date: 2007-02-14 09:54 Message: Logged In: YES user_id=68877 Originator: YES no. it still won't compile if swing-worker.jar is in the classpath. ---------------------------------------------------------------------- Comment By: Peter Quade (pqu) Date: 2007-02-14 09:53 Message: Logged In: YES user_id=68877 Originator: YES jython2.2b1 Sorry. I frogot. I am currently investigating this with the svn HEAD version. The supplied codesample works, but the code in my project still breaks... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1659616&group_id=12867 |
From: SourceForge.net <no...@so...> - 2007-02-14 11:48:39
|
Bugs item #1659616, was opened at 2007-02-14 09:38 Message generated for change (Comment added) made by pqu You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1659616&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Jythonc compiler Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Peter Quade (pqu) Assigned to: Nobody/Anonymous (nobody) Summary: jythonc creates transient method causing compilation to fail Initial Comment: Using the SwingWorker backport: https://swingworker.dev.java.net/ The publish method is protected, generic and has a variable number of arguments. Jythonc creates a transient super__publish method. Javac does not like transient methods. Code sample ======== import org.jdesktop.swingworker.SwingWorker as SwingWorker class MySwingWorker(SwingWorker): def doInBackground(self): # Explicitly creating a list seems to be necessary self.super__publish([""]) Works with jython (does nothing), breaks in jythonc. jythonc output ========= [...] 1 ./jpywork/swbug.java:93: modifier transient not allowed here public transient void super__publish(java.lang.Object[] arg0) { [...] system information ============ Mac OS X 10.4.8 (Darwin 8.8.1 Darwin Kernel Version 8.8.1: Mon Sep 25 19:42:00 PDT 2006; root:xnu-792.13.8.obj~1/RELEASE_I386 i386) java version "1.5.0_06" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112) Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing) ---------------------------------------------------------------------- >Comment By: Peter Quade (pqu) Date: 2007-02-14 11:48 Message: Logged In: YES user_id=68877 Originator: YES The Patch: Index: Tools/jythonc/proxies.py =================================================================== --- Tools/jythonc/proxies.py (revision 3105) +++ Tools/jythonc/proxies.py (working copy) @@ -252,6 +252,12 @@ for name in names: for sig, (access, ret, throws) in self.jmethods[name].items(): #print name, access, isProtected(access), isFinal(access) + + if isTransient(access): + # transient uses the same bits as vararg, transient make no sense for methods + # same problem might occur with bridge methods and volatile + access &= ~TRANSIENT + if isProtected(access): supername = name if isFinal(access): ---------------------------------------------------------------------- Comment By: Peter Quade (pqu) Date: 2007-02-14 11:18 Message: Logged In: YES user_id=68877 Originator: YES It seems jython still has to handle this problem: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6516895 varargs are marked transient by java.lang.reflect.Modifiers. This has to be filtered out for methods. I will try and create a patch. ---------------------------------------------------------------------- Comment By: Peter Quade (pqu) Date: 2007-02-14 11:10 Message: Logged In: YES user_id=68877 Originator: YES It's me again. Still investigating with the SwingWorker class. It looks like jython is innocent. Using pure Java code to extract the methods of the class, I found out that java itself thinks the publish method is transient. --- snip --- import java.lang.reflect.Method; import org.jdesktop.swingworker.SwingWorker; public class demo{ public static final void main(String[] args) { System.out.println(SwingWorker.class.getName()); for (Method method : SwingWorker.class.getDeclaredMethods()) { System.out.println(method.toString()); } } } --- snap ---- $ java demo|grep publish protected final transient void org.jdesktop.swingworker.SwingWorker.publish(java.lang.Object[]) javap get's it right... interesting. for jython this case is closed. sorry. ---------------------------------------------------------------------- Comment By: Peter Quade (pqu) Date: 2007-02-14 09:54 Message: Logged In: YES user_id=68877 Originator: YES no. it still won't compile if swing-worker.jar is in the classpath. ---------------------------------------------------------------------- Comment By: Peter Quade (pqu) Date: 2007-02-14 09:53 Message: Logged In: YES user_id=68877 Originator: YES jython2.2b1 Sorry. I frogot. I am currently investigating this with the svn HEAD version. The supplied codesample works, but the code in my project still breaks... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1659616&group_id=12867 |