Issue1639
Created on 2010年08月09日.14:14:39 by elentz, last changed 2012年06月29日.14:38:11 by fwierzbicki.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | Remove |
| PySystemState.py.patch | elentz, 2010年08月09日.14:14:37 | 2.5.2b1 patch for PySystemState.java only | ||
| 1639patch.txt | otmarhumbel, 2010年10月09日.07:50:42 | a proposed patch | ||
| Messages | |||
|---|---|---|---|
| msg5946 (view) | Author: Eric Lentz (elentz) | Date: 2010年08月09日.14:14:37 | |
Symptom:
Deploying a web app in JBoss 5.x (and later, I think), the classpath is ['__classpath__', '__pyclasspath__/'] but it should also contain $JBOSS_HOME/{DEPLOYMENT}/WEB-INF/lib/Lib and $JBOSS_HOME/{DEPLOYMENT}/WEB-INF/lib/jython.jar/Lib. Therefore, one is unable to import any libraries and one receives the error: "ImportError: No module named ..."
Reason for the error:
JBoss 5.x introduces the vfszip protocol for jar files. org.python.core.PySystemState uses the jar:file protocol name in an attempt to parse a string that contains the jar filename out of a string that looks like "jar:file:/some/path/jython.jar!/org/python/core/PySystemState.class" in other containers. JBoss returns "vfszip:/some/path/jython.jar/org/python/core/PySystemState.class". Note the missing "!" and the protocol name is different.
The fix:
The fix is to also test for the vfszip: string and parse the resulting string in a way that extracts the jar filename. A patch for 2.5.2b1 is attached.
Additional Note:
It looks like JBoss is staying with vfszip, so this issue is not likely confined to version 5. The issue was originally spotted in Jython version 2.5.1, so that is a confirmed affected version as well.
|
|||
| msg5947 (view) | Author: Oti Humbel (otmarhumbel) | Date: 2010年08月09日.14:52:42 | |
Thanks for the patch - i'll take care of it! |
|||
| msg6088 (view) | Author: Oti Humbel (otmarhumbel) | Date: 2010年09月22日.23:33:18 | |
promised to fix rigth after JavaOne |
|||
| msg6155 (view) | Author: Oti Humbel (otmarhumbel) | Date: 2010年10月07日.20:24:04 | |
Eric, on Windows, the URL contains a leading slash right after vfszip:, e.g.: vfszip:/C:/Bison/lchload2/JBoss5/bin/jboss/server/bison/deploy/bison.ear/extlib/jython.jar/org/python/core/PySystemState.class This needs to be removed in order to get a working path. Can you confirm that everything after vfszip: belongs to a valid path on *nix (like your patch suggests) ? |
|||
| msg6157 (view) | Author: Eric Lentz (elentz) | Date: 2010年10月08日.12:12:11 | |
Yep, its all valid path. On the Solaris 10 system I'm using and the Fedora Linux 12 system, they have numerous log file references that speak to vfszip:/a/valid/path. So, we would want everything after the ":", minus the /org/python/core/PySystemState.class, just as the patch does.
So, a question for you. Are you concerned about the leading "/" before the "C:"? I didn't make an exhaustive search of PySystemState.py, but I see the result of the method call being used at least in findRoot which uses it in a File class. At least on 1.5.0_22, a leading slash is okay.
Test:
File testFile = new File("/D:/tmp/Foo.txt");
if(testFile.isFile() && testFile.canRead())
System.out.println("It is a readable file");
BufferedReader input = new BufferedReader(new FileReader(testFile));
System.out.println(input.readLine());
Outputs:
It is a readable file
This is the contents of Foo.txt (which is what is in Foo.txt, so it works fine)
Thanks for your care and attention to this issue.
|
|||
| msg6158 (view) | Author: Eric Lentz (elentz) | Date: 2010年10月08日.12:13:56 | |
Oh, I re-read your message and see you are concerned about it. Based on my test, do you still think it is an issue? |
|||
| msg6159 (view) | Author: Oti Humbel (otmarhumbel) | Date: 2010年10月09日.07:47:00 | |
Eric, many thanks for all your tests! In short: yes i am still concerned about the leading slash on windows. Our Jython embedding in JBoss 5 did not work this way, i had to remove the slash. Sadly i don't exactly remember why, and i have no possibility to verify it until in 2 weeks. My suggestion is to distinguish between windows and other platforms for the moment |
|||
| msg6160 (view) | Author: Oti Humbel (otmarhumbel) | Date: 2010年10月09日.07:50:42 | |
The attached 1639patch.txt fixes the problem - to the best of my knowledge |
|||
| msg6161 (view) | Author: Oti Humbel (otmarhumbel) | Date: 2010年10月09日.07:55:52 | |
fixed in revision 7141 |
|||
| msg6165 (view) | Author: Eric Lentz (elentz) | Date: 2010年10月11日.12:00:34 | |
Thanks Oti. Looks great! |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2012年06月29日 14:38:11 | fwierzbicki | set | nosy: + fwierzbicki |
| 2010年10月11日 12:00:35 | elentz | set | messages: + msg6165 |
| 2010年10月09日 07:55:52 | otmarhumbel | set | status: open -> closed resolution: fixed messages: + msg6161 |
| 2010年10月09日 07:50:46 | otmarhumbel | set | files:
+ 1639patch.txt messages: + msg6160 |
| 2010年10月09日 07:47:01 | otmarhumbel | set | messages: + msg6159 |
| 2010年10月08日 12:13:56 | elentz | set | messages: + msg6158 |
| 2010年10月08日 12:12:12 | elentz | set | messages: + msg6157 |
| 2010年10月07日 20:24:05 | otmarhumbel | set | messages: + msg6155 |
| 2010年09月22日 23:33:18 | otmarhumbel | set | messages: + msg6088 |
| 2010年08月22日 22:42:28 | zyasoft | set | priority: high |
| 2010年08月09日 14:52:42 | otmarhumbel | set | assignee: otmarhumbel messages: + msg5947 nosy: + otmarhumbel |
| 2010年08月09日 14:14:40 | elentz | create | |
Supported by Python Software Foundation,
Powered by Roundup