You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(34) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(33) |
Feb
(21) |
Mar
(7) |
Apr
(9) |
May
(15) |
Jun
(14) |
Jul
(60) |
Aug
(31) |
Sep
(4) |
Oct
(38) |
Nov
(69) |
Dec
(67) |
| 2002 |
Jan
(15) |
Feb
(13) |
Mar
(30) |
Apr
(9) |
May
(19) |
Jun
(8) |
Jul
(15) |
Aug
(7) |
Sep
(41) |
Oct
(29) |
Nov
(7) |
Dec
(8) |
| 2003 |
Jan
(4) |
Feb
(5) |
Mar
(3) |
Apr
(11) |
May
(17) |
Jun
(8) |
Jul
(48) |
Aug
(2) |
Sep
(5) |
Oct
(12) |
Nov
(11) |
Dec
(5) |
| 2004 |
Jan
(8) |
Feb
(4) |
Mar
(3) |
Apr
(3) |
May
(5) |
Jun
(1) |
Jul
(10) |
Aug
(2) |
Sep
(5) |
Oct
(7) |
Nov
|
Dec
(3) |
| 2005 |
Jan
|
Feb
(12) |
Mar
(3) |
Apr
(4) |
May
(1) |
Jun
(19) |
Jul
(12) |
Aug
(20) |
Sep
(8) |
Oct
(27) |
Nov
(12) |
Dec
(8) |
| 2006 |
Jan
(4) |
Feb
(8) |
Mar
(9) |
Apr
(9) |
May
(195) |
Jun
(16) |
Jul
(13) |
Aug
(77) |
Sep
(52) |
Oct
(17) |
Nov
(74) |
Dec
(88) |
| 2007 |
Jan
(171) |
Feb
(184) |
Mar
(54) |
Apr
(91) |
May
(109) |
Jun
(65) |
Jul
(171) |
Aug
(193) |
Sep
(155) |
Oct
(79) |
Nov
(66) |
Dec
(86) |
| 2008 |
Jan
(52) |
Feb
(13) |
Mar
(14) |
Apr
(9) |
May
(12) |
Jun
(25) |
Jul
(26) |
Aug
(25) |
Sep
(24) |
Oct
(28) |
Nov
(21) |
Dec
(30) |
| 2009 |
Jan
(40) |
Feb
(11) |
Mar
(30) |
Apr
(37) |
May
(28) |
Jun
(30) |
Jul
(31) |
Aug
(31) |
Sep
(32) |
Oct
(16) |
Nov
(10) |
Dec
(21) |
| 2010 |
Jan
(19) |
Feb
(16) |
Mar
(23) |
Apr
(15) |
May
(10) |
Jun
(9) |
Jul
(17) |
Aug
(12) |
Sep
(11) |
Oct
(10) |
Nov
(9) |
Dec
(14) |
| 2011 |
Jan
(10) |
Feb
(11) |
Mar
(13) |
Apr
(18) |
May
(10) |
Jun
(12) |
Jul
(21) |
Aug
(12) |
Sep
(12) |
Oct
(17) |
Nov
(15) |
Dec
(4) |
| 2012 |
Jan
(6) |
Feb
(10) |
Mar
(27) |
Apr
(8) |
May
(29) |
Jun
(34) |
Jul
(12) |
Aug
(13) |
Sep
(6) |
Oct
(8) |
Nov
(14) |
Dec
(10) |
| 2013 |
Jan
(8) |
Feb
(10) |
Mar
(15) |
Apr
(7) |
May
(14) |
Jun
(7) |
Jul
(9) |
Aug
(8) |
Sep
(12) |
Oct
(9) |
Nov
(3) |
Dec
(3) |
| 2014 |
Jan
(5) |
Feb
(3) |
Mar
(4) |
Apr
(13) |
May
(23) |
Jun
(19) |
Jul
(9) |
Aug
(13) |
Sep
(18) |
Oct
(10) |
Nov
(9) |
Dec
(8) |
| 2015 |
Jan
(21) |
Feb
(13) |
Mar
(33) |
Apr
(43) |
May
(17) |
Jun
(8) |
Jul
(8) |
Aug
(5) |
Sep
(22) |
Oct
(12) |
Nov
(18) |
Dec
(12) |
| 2016 |
Jan
(7) |
Feb
(25) |
Mar
(10) |
Apr
(6) |
May
(7) |
Jun
(4) |
Jul
(6) |
Aug
(5) |
Sep
(6) |
Oct
(7) |
Nov
(5) |
Dec
(4) |
| 2017 |
Jan
(5) |
Feb
(16) |
Mar
(14) |
Apr
(9) |
May
(13) |
Jun
(6) |
Jul
(12) |
Aug
(9) |
Sep
(4) |
Oct
(13) |
Nov
(10) |
Dec
(4) |
| 2018 |
Jan
(2) |
Feb
(2) |
Mar
(6) |
Apr
(12) |
May
(16) |
Jun
(6) |
Jul
(4) |
Aug
(3) |
Sep
(6) |
Oct
(7) |
Nov
(4) |
Dec
(8) |
| 2019 |
Jan
(6) |
Feb
(1) |
Mar
(6) |
Apr
(6) |
May
(6) |
Jun
(2) |
Jul
(4) |
Aug
(5) |
Sep
(5) |
Oct
(5) |
Nov
(12) |
Dec
(6) |
| 2020 |
Jan
(1) |
Feb
(3) |
Mar
(4) |
Apr
(7) |
May
(6) |
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2021 |
Jan
(7) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(4) |
Oct
(1) |
Nov
|
Dec
|
| 2022 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
| 2023 |
Jan
|
Feb
|
Mar
(1) |
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <no...@so...> - 2001-07-18 16:17:37
|
Bugs item #437215, was opened at 2001-06-28 14:39 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=437215&group_id=12867 Category: Library >Group: Fixed in 2.1a2 Status: Closed Resolution: Fixed Priority: 5 Submitted By: Neil Rotstan (mrblah) Assigned to: Finn Bock (bckfnn) Summary: newline escaping broken on ascii pickle Initial Comment: It appears that newlines aren't escaped properly when you try to pickle a string in text mode (I actually had strings inside a list and was pickling the list). When you try to unpickle the data, it blows up. To duplicate, try something like: import pickle s1="line1\nline2\nline3" s2="line4\nline5\nline6" l = [s1, s2] p = pickle.dumps(l) # newlines won't be escaped l2 = pickle.loads(p) # blows up Pickling in binary mode seems to work fine. ie: ... p = pickle.dumps(l, 1) l2 = pickle.loads(p) # works correctly ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-06-30 04:40 Message: Logged In: YES user_id=4201 I can reproduce this in 2.0. It is fixed in 2.1a1. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=437215&group_id=12867 |
|
From: <no...@so...> - 2001-07-18 16:17:15
|
Bugs item #437800, was opened at 2001-07-01 18:37 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=437800&group_id=12867 Category: Core >Group: Fixed in 2.1a2 Status: Closed Resolution: Fixed Priority: 5 Submitted By: Magnus Lie Hetland (mlh) Assigned to: Finn Bock (bckfnn) Summary: Obscure difference from CPython Initial Comment: Ran the following code in both CPython and Jython (through 'import anygui'): -- anygui.py -- impl_names = ['java'] # Will only return anygui :P impls = [__import__('anygui.impl.%sgui' % name, fromlist=['%sgui' % name]) for name in impl_names] #viable_impls = [impl for impl in impls if impl.viable] --------------- And got the following two (different) error messages: CPython 2.1: >>> import anygui Traceback (most recent call last): File "<stdin>", line 1, in ? File "/home/idi/f/mlh/python/anygui/__init__.py", line 5, in ? fromlist=['%sgui' % name]) for name in impl_names] TypeError: __import__() takes no keyword arguments >>> Jython 2.1a1: >>> import anygui Traceback (innermost last): File "<console>", line 1, in ? File "S:\python\anygui\__init__.py", line 5, in ? TypeError: sequence subscript must be integer or slice The CPython error message is a bit more understandable than the Jython message, IMO... ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-07-01 21:50 Message: Logged In: YES user_id=4201 Fixed in __builtin__.java: 2.34; ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=437800&group_id=12867 |
|
From: <no...@so...> - 2001-07-18 16:16:53
|
Bugs item #222819, was opened at 2000-11-18 11:11 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=222819&group_id=12867 Category: Core >Group: Fixed in 2.1a2 Status: Closed Resolution: Fixed Priority: 4 Submitted By: Finn Bock (bckfnn) Assigned to: Samuele Pedroni (pedronis) Summary: Multi-level Java method overriding fails Initial Comment: Consider the following script -- ========== #!/usr/bin/env jpython from java.util import Date class SubDate(Date): def toString(self): return 'SubDate.toString() -> ' + Date.toString(self) class SubSubDate(SubDate): def toString(self): return 'SubSubDate.toString() -> ' + SubDate.toString(self) print Date().toString() print SubDate().toString() print SubSubDate().toString() ========== The output is as follows -- ========== Fri Oct 22 12:53:58 CDT 1999 SubDate.toString() -> Fri Oct 22 12:53:58 CDT 1999 Traceback (innermost last): File "test.py", line 12, in ? File "test.py", line 8, in toString File "test.py", line 6, in toString java.lang.StackOverflowError at org.python.core.PyClass.lookupGivingClass(PyClass.java:137) at org.python.core.PyJavaClass.lookupGivingClass(PyJavaClass.java:673) at org.python.core.PyClass.lookup(PyClass.java:155) at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:132) < ... > at org.python.proxies.SubDate$0.toString(Unknown Source) at org.python.proxies.SubSubDate$1.super__toString(Unknown Source) at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:156) < ... > at org.python.proxies.SubDate$0.toString(Unknown Source) at org.python.proxies.SubSubDate$1.super__toString(Unknown Source) at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:156) < ... > at org.python.util.jpython.main(jpython.java:123) ========== What seems to happen is that SubSubDate.toString() calls SubDate.toString() calls Date.toString() ... which then turns around and calls the derived-most implementation of toString() all over again, ie, the one at SubSubDate. This goes on and on until the above stack overflow occurs. Note that with only one level of inheritance, ie, calling SubDate.toString(), it worked correctly with no problems. I originally observed this problem with overriding java.lang.Thread.interrupt(), so the above simplified test case has been reproduced elsewhere. I can reproduce this with Sun Solaris JDK versions 1.3, 1.2.2 and 1.1.8. ---------------------------------------------------------------------- Comment By: Samuele Pedroni (pedronis) Date: 2001-07-03 04:47 Message: Logged In: YES user_id=61408 fixed (both in interp and jythonc) . Note: the code affected and related to this needs a big revision. ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-05-07 12:24 Message: Logged In: YES user_id=4201 Reverted the fix and reopened the bug. The reason for is the situation described here: http://www.geocrawler.com/lists/3/SourceForge/7018/0/5685848 / ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-03-22 12:50 Message: Logged In: YES user_id=4201 Fixed in: PyClass.java: 2.23; ProxyMaker.java: 2.12; JavaMaker.java: 2.10; ObjectFactory.py: 2.7; compile.py: 2.17; proxies.py: 2.10; ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-02-23 12:26 Message: Ian Castleden's fix added to the interpreter. Same fix must also be added to jythonc. The bug report will closed when that is done. ---------------------------------------------------------------------- Comment By: ian west (ianzsk) Date: 2001-02-19 01:26 Message: Any python subclass that contains a java class as a parent will have a proxy created for it. Also, in the PyReflectionFunction __call__ there is code to "translate" unbound methods to bound "super__" methods. However the "self" argument passed to this method is null so that the superclass (Here SubDate) again looks for a "super__" method ( viz: super__super__toString()!) This of course fails and so the call drops through. I can't really make heads or tails of this code so I have no idea where the "bug" is (altough the search for "super__super__" is surely wrong). I also think the fact that the SubSubDate class has a java proxyClass created for it (--because SubDate has a proxyClass--- see PyClass.init()) somehow contributes to the recursion. ---------------------------------------------------------------------- Comment By: Samuele Pedroni (pedronis) Date: 2000-12-16 12:52 Message: Just checked that the nasty bug is still there. It should be solved for sure, at least the stack overflow. Not analyzed yet. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=222819&group_id=12867 |
|
From: <no...@so...> - 2001-07-18 16:16:23
|
Bugs item #436730, was opened at 2001-06-27 07:02 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=436730&group_id=12867 Category: Jythonc compiler >Group: Fixed in 2.1a2 Status: Closed Resolution: Fixed Priority: 4 Submitted By: Samuele Pedroni (pedronis) Assigned to: Samuele Pedroni (pedronis) Summary: Wrong 'extends' Initial Comment: Jythonc can fail to emit the right/proper superproxy name in the 'extends' clause. Example attached. ---------------------------------------------------------------------- Comment By: Samuele Pedroni (pedronis) Date: 2001-07-03 04:48 Message: Logged In: YES user_id=61408 fixed. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=436730&group_id=12867 |
|
From: <no...@so...> - 2001-07-18 16:15:39
|
Bugs item #439825, was opened at 2001-07-09 13:20 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=439825&group_id=12867 Category: Jythonc compiler >Group: Fixed in 2.1a2 Status: Closed Resolution: Fixed Priority: 5 Submitted By: Finn Bock (bckfnn) Assigned to: Finn Bock (bckfnn) Summary: Proxy missing for java innerclass. Initial Comment: When subclasses a java innerclass, jython will not create a proxyclass. from javax.swing.text.html import HTMLEditorKit class TestFactory(HTMLEditorKit.HTMLFactory): def create(self,e): pass Added as test297. ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-07-09 13:27 Message: Logged In: YES user_id=4201 Fixed in ObjectFactory.py: 2.10; ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=439825&group_id=12867 |
|
From: <no...@so...> - 2001-07-18 16:15:22
|
Bugs item #417665, was opened at 2001-04-20 09:03 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=417665&group_id=12867 Category: Core >Group: Fixed in 2.1a2 Status: Closed Resolution: Fixed Priority: 5 Submitted By: brian zimmer (bzimmer) Assigned to: Finn Bock (bckfnn) >Summary: open(filename, "a") fails to append Initial Comment: Opening a file in append mode does not append to the file but instead starts to write from index 0 which results in overwriting the existing data. To fix the problem, remove the seek() call in flush() as it is not needed. The diff is below. Also see the attached TestCase to demonstrate the problem (use the unittest.py from CPython 2.1). To run the unittest: $> jython pyfiletest.py Index: org/python/core/PyFile.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyFile.java,v retrieving revision 2.18 diff -u -r2.18 PyFile.java --- org/python/core/PyFile.java 2001/03/13 20:21:27 2.18 +++ org/python/core/PyFile.java 2001/04/20 16:02:40 @@ -455,7 +455,6 @@ } public void flush() throws java.io.IOException { - file.seek(bufferStart); file.write(buffer, 0, dataSize); bufferModified = false; file.getFD().sync(); @@ -463,8 +462,7 @@ public void close() throws java.io.IOException { if (writing && bufferModified) { - file.seek(bufferStart); - file.write(buffer, 0, (int)dataSize); + this.flush(); } file.close(); ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-07-16 03:59 Message: Logged In: YES user_id=4201 Fixed in PyFile.java: 2.20; The fix only ensure that the filepointer is located at the end right after the open. Some unixes always write at the end of the file regardless of the filepointer but that is *not* the case for jython. ---------------------------------------------------------------------- Comment By: Leonkev (vleonkev) Date: 2001-07-11 05:20 Message: Logged In: YES user_id=266902 When you are in append mode, write some data and flush twice before closing. The result is: duplicated data in file ---------------------------------------------------------------------- Comment By: brian zimmer (bzimmer) Date: 2001-04-25 12:54 Message: Logged In: YES user_id=37674 After some more testing, I don't the patch fixes the problem for all cases. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=417665&group_id=12867 |
|
From: <no...@so...> - 2001-07-18 16:14:54
|
Bugs item #438108, was opened at 2001-07-02 18:53 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=438108&group_id=12867 Category: Core >Group: Fixed in 2.1a2 Status: Closed Resolution: Fixed Priority: 5 Submitted By: Magnus Lie Hetland (mlh) Assigned to: Samuele Pedroni (pedronis) Summary: __getitem__ called when it shouldn't? Initial Comment: When executing the attached script, it looped infinitely in Jython, but worked fine on other platforms. Or, rather - the attached script is a "fixed" version. The line which says backend = self.__dict__['__try_to_get']('%sgui' % name) originally was backend = self.__try_to_get('%sgui' % name) The problem is that self.__try_to_get triggered __getitem__ which, again, triggered the method in which the above line was found. I cannot see any reason why __getitem__ should be triggered, since the method __try_to_get exists, and should therefore be used directly... Right? ---------------------------------------------------------------------- Comment By: Samuele Pedroni (pedronis) Date: 2001-07-18 08:43 Message: Logged In: YES user_id=61408 fixed through import logic rework. ---------------------------------------------------------------------- Comment By: Samuele Pedroni (pedronis) Date: 2001-07-10 05:40 Message: Logged In: YES user_id=61408 Got how to solve that, will need another major fix of import logic. ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-07-03 15:26 Message: Logged In: YES user_id=4201 I think the title should be about __getattr__, not __getitem__. Added as test296. Problem is caused the "import imp" inside the class. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=438108&group_id=12867 |
|
From: <no...@so...> - 2001-07-18 16:12:58
|
Bugs item #409930, was opened at 2001-03-19 20:17 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=409930&group_id=12867 Category: Core >Group: Fixed in 2.1a2 Status: Closed Resolution: Fixed Priority: 5 Submitted By: brian zimmer (bzimmer) Assigned to: Finn Bock (bckfnn) Summary: __bases__ should not be immutable Initial Comment: Jython differs from CPython in that it does not allow the attribute __bases__ to be mutable. The method __setattr__ in PyClass.java explicitly checks for __bases__ and throws a TypeError. The example is contrived, but demonstrates the point: D:\home\development\src\sourceforge\zxJDBC>python ActivePython 2.0, build 202 (ActiveState Tool Corp.) based on Python 2.0 (#8, Oct 19 2000, 11:30:05) [MSC 32 bit (Intel)] on win32 Type "copyright", "credits" or "license" for more information. >>> from UserList import UserList >>> from UserDict import UserDict >>> UserList.__bases__ () >>> UserList.__bases__ += (UserDict,) >>> UserList.__bases__ (<class UserDict.UserDict at 007D99CC>,) >>> ^Z D:\home\development\src\sourceforge\zxJDBC>jython Jython 2.1a1 on java1.3.0 (JIT: null) Type "copyright", "credits" or "license" for more information. >>> from UserList import UserList >>> from UserDict import UserDict >>> UserList.__bases__ () >>> UserList.__bases__ += (UserDict,) Traceback (innermost last): File "<console>", line 1, in ? TypeError: read-only special attribute: __bases__ >>> Also, refer to the article: http://noframes.linuxjournal.com/lj-issues/issue84/4540.html ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-04-25 11:40 Message: Logged In: YES user_id=4201 Fixed PyClass.java: 2.24; ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=409930&group_id=12867 |
|
From: <no...@so...> - 2001-07-18 16:12:19
|
Bugs item #406193, was opened at 2001-03-05 20:16 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=406193&group_id=12867 Category: Core >Group: Fixed in 2.1a2 Status: Closed Resolution: Fixed Priority: 5 Submitted By: brian zimmer (bzimmer) Assigned to: Finn Bock (bckfnn) Summary: stack overflow when delegating Initial Comment: There appears to be a problem with PyReflectedFunction when a Python class is an implementation of a Java interface and delegates to a Java implementation of that interface. The primary problem is overloaded methods on the interface, such as the ISimple.get() methods. Look at classes t and u. Both do as expected. t is not the interface, so it's marginally useful. u implements the interface but needs to handle the get() methods in order for it to work properly. v is what I want, but it ends up blowing the stack. Should this work? I think yes, but can't figure out how to patch it. Run the code to get the full affect: import Simple, ISimple class t: def __init__(self, s): self.s = s def __getattr__(self, name): return getattr(self.s, name) class u(ISimple): def __init__(self, s): self.s = s def get(self, i=None): if i: return self.s.get(i) else: return self.s.get() class v(ISimple): def __init__(self, s): self.s = s def __getattr__(self, name): return getattr(self.s, name) def main(): print "using Simple" y = Simple() print y print y.get() print y.get(2) print y.get() print y.get(0) print "using t" y = t(Simple()) print y print y.get() print y.get(2) print y.get() print y.get(0) print "using u" y = u(Simple()) print y print y.get() print y.get(2) print y.get() print y.get(0) print "using v" y = v(Simple()) print y print y.get() print y.get(2) print y.get() print y.get(0) if __name__ == '__main__': main() ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-03-22 12:52 Message: Logged In: YES user_id=4201 Fixed in: PyClass.java: 2.23; ProxyMaker.java: 2.12; JavaMaker.java: 2.10; ObjectFactory.py: 2.7; compile.py: 2.17; proxies.py: 2.10; ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2001-03-06 10:38 Message: Logged In: NO Please look at the attached jar for all the source. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=406193&group_id=12867 |
|
From: <no...@so...> - 2001-07-18 16:11:40
|
Bugs item #231507, was opened at 2001-02-07 23:09 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=231507&group_id=12867 Category: Core >Group: Fixed in 2.1a2 Status: Closed Resolution: Fixed Priority: 5 Submitted By: Thomas Breuel (tbreuel) Assigned to: Finn Bock (bckfnn) Summary: stack overflow for simple class Initial Comment: The little program below dies with a stack overflow. Apparently, something is going wrong with combining the PyList class (which conforms to the List interface) with the List interface. This should probably either be disallowed, or, better, should work correctly. import java.util import org.python.core class LX(org.python.core.PyList,java.util.List): pass l = LX() l.add('x') ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-03-22 12:51 Message: Logged In: YES user_id=4201 Fixed in: PyClass.java: 2.23; ProxyMaker.java: 2.12; JavaMaker.java: 2.10; ObjectFactory.py: 2.7; compile.py: 2.17; proxies.py: 2.10; ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=231507&group_id=12867 |
|
From: <no...@so...> - 2001-07-18 15:43:52
|
Bugs item #438108, was opened at 2001-07-02 18:53 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=438108&group_id=12867 Category: Core Group: None >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: Magnus Lie Hetland (mlh) Assigned to: Samuele Pedroni (pedronis) Summary: __getitem__ called when it shouldn't? Initial Comment: When executing the attached script, it looped infinitely in Jython, but worked fine on other platforms. Or, rather - the attached script is a "fixed" version. The line which says backend = self.__dict__['__try_to_get']('%sgui' % name) originally was backend = self.__try_to_get('%sgui' % name) The problem is that self.__try_to_get triggered __getitem__ which, again, triggered the method in which the above line was found. I cannot see any reason why __getitem__ should be triggered, since the method __try_to_get exists, and should therefore be used directly... Right? ---------------------------------------------------------------------- >Comment By: Samuele Pedroni (pedronis) Date: 2001-07-18 08:43 Message: Logged In: YES user_id=61408 fixed through import logic rework. ---------------------------------------------------------------------- Comment By: Samuele Pedroni (pedronis) Date: 2001-07-10 05:40 Message: Logged In: YES user_id=61408 Got how to solve that, will need another major fix of import logic. ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-07-03 15:26 Message: Logged In: YES user_id=4201 I think the title should be about __getattr__, not __getitem__. Added as test296. Problem is caused the "import imp" inside the class. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=438108&group_id=12867 |
|
From: <no...@so...> - 2001-07-16 10:59:36
|
Bugs item #417665, was opened at 2001-04-20 09:03 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=417665&group_id=12867 >Category: Core Group: None >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: brian zimmer (bzimmer) >Assigned to: Finn Bock (bckfnn) >Summary: open(filename, "a") fails to append Initial Comment: Opening a file in append mode does not append to the file but instead starts to write from index 0 which results in overwriting the existing data. To fix the problem, remove the seek() call in flush() as it is not needed. The diff is below. Also see the attached TestCase to demonstrate the problem (use the unittest.py from CPython 2.1). To run the unittest: $> jython pyfiletest.py Index: org/python/core/PyFile.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyFile.java,v retrieving revision 2.18 diff -u -r2.18 PyFile.java --- org/python/core/PyFile.java 2001/03/13 20:21:27 2.18 +++ org/python/core/PyFile.java 2001/04/20 16:02:40 @@ -455,7 +455,6 @@ } public void flush() throws java.io.IOException { - file.seek(bufferStart); file.write(buffer, 0, dataSize); bufferModified = false; file.getFD().sync(); @@ -463,8 +462,7 @@ public void close() throws java.io.IOException { if (writing && bufferModified) { - file.seek(bufferStart); - file.write(buffer, 0, (int)dataSize); + this.flush(); } file.close(); ---------------------------------------------------------------------- >Comment By: Finn Bock (bckfnn) Date: 2001-07-16 03:59 Message: Logged In: YES user_id=4201 Fixed in PyFile.java: 2.20; The fix only ensure that the filepointer is located at the end right after the open. Some unixes always write at the end of the file regardless of the filepointer but that is *not* the case for jython. ---------------------------------------------------------------------- Comment By: Leonkev (vleonkev) Date: 2001-07-11 05:20 Message: Logged In: YES user_id=266902 When you are in append mode, write some data and flush twice before closing. The result is: duplicated data in file ---------------------------------------------------------------------- Comment By: brian zimmer (bzimmer) Date: 2001-04-25 12:54 Message: Logged In: YES user_id=37674 After some more testing, I don't the patch fixes the problem for all cases. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=417665&group_id=12867 |
|
From: <no...@so...> - 2001-07-12 12:53:03
|
Bugs item #440660, was opened at 2001-07-12 05:53 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=440660&group_id=12867 Category: Core Group: None Status: Open Resolution: None Priority: 4 Submitted By: Samuele Pedroni (pedronis) Assigned to: Nobody/Anonymous (nobody) Summary: using nested java cls @ level >2 fails Initial Comment: Given: public class testlib { public static class A { public static class B { public static class C { } } } } import testlib.A works but import testlib.A.B fails. Reported by: > Michael Haggerty > mh...@al... ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=440660&group_id=12867 |
|
From: <no...@so...> - 2001-07-11 12:20:49
|
Bugs item #417665, was opened at 2001-04-20 09:03 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=417665&group_id=12867 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: brian zimmer (bzimmer) Assigned to: Nobody/Anonymous (nobody) Summary: open(filename, "a") fails to append Initial Comment: Opening a file in append mode does not append to the file but instead starts to write from index 0 which results in overwriting the existing data. To fix the problem, remove the seek() call in flush() as it is not needed. The diff is below. Also see the attached TestCase to demonstrate the problem (use the unittest.py from CPython 2.1). To run the unittest: $> jython pyfiletest.py Index: org/python/core/PyFile.java =================================================================== RCS file: /cvsroot/jython/jython/org/python/core/PyFile.java,v retrieving revision 2.18 diff -u -r2.18 PyFile.java --- org/python/core/PyFile.java 2001/03/13 20:21:27 2.18 +++ org/python/core/PyFile.java 2001/04/20 16:02:40 @@ -455,7 +455,6 @@ } public void flush() throws java.io.IOException { - file.seek(bufferStart); file.write(buffer, 0, dataSize); bufferModified = false; file.getFD().sync(); @@ -463,8 +462,7 @@ public void close() throws java.io.IOException { if (writing && bufferModified) { - file.seek(bufferStart); - file.write(buffer, 0, (int)dataSize); + this.flush(); } file.close(); ---------------------------------------------------------------------- Comment By: Leonkev (vleonkev) Date: 2001-07-11 05:20 Message: Logged In: YES user_id=266902 When you are in append mode, write some data and flush twice before closing. The result is: duplicated data in file ---------------------------------------------------------------------- Comment By: brian zimmer (bzimmer) Date: 2001-04-25 12:54 Message: Logged In: YES user_id=37674 After some more testing, I don't the patch fixes the problem for all cases. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=417665&group_id=12867 |
|
From: <no...@so...> - 2001-07-10 12:40:49
|
Bugs item #438108, was opened at 2001-07-02 18:53 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=438108&group_id=12867 Category: Core Group: None Status: Open Resolution: None Priority: 5 Submitted By: Magnus Lie Hetland (mlh) >Assigned to: Samuele Pedroni (pedronis) Summary: __getitem__ called when it shouldn't? Initial Comment: When executing the attached script, it looped infinitely in Jython, but worked fine on other platforms. Or, rather - the attached script is a "fixed" version. The line which says backend = self.__dict__['__try_to_get']('%sgui' % name) originally was backend = self.__try_to_get('%sgui' % name) The problem is that self.__try_to_get triggered __getitem__ which, again, triggered the method in which the above line was found. I cannot see any reason why __getitem__ should be triggered, since the method __try_to_get exists, and should therefore be used directly... Right? ---------------------------------------------------------------------- >Comment By: Samuele Pedroni (pedronis) Date: 2001-07-10 05:40 Message: Logged In: YES user_id=61408 Got how to solve that, will need another major fix of import logic. ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-07-03 15:26 Message: Logged In: YES user_id=4201 I think the title should be about __getattr__, not __getitem__. Added as test296. Problem is caused the "import imp" inside the class. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=438108&group_id=12867 |
|
From: <no...@so...> - 2001-07-09 20:27:12
|
Bugs item #439825, was opened at 2001-07-09 13:20 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=439825&group_id=12867 Category: Jythonc compiler Group: None >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: Finn Bock (bckfnn) Assigned to: Finn Bock (bckfnn) Summary: Proxy missing for java innerclass. Initial Comment: When subclasses a java innerclass, jython will not create a proxyclass. from javax.swing.text.html import HTMLEditorKit class TestFactory(HTMLEditorKit.HTMLFactory): def create(self,e): pass Added as test297. ---------------------------------------------------------------------- >Comment By: Finn Bock (bckfnn) Date: 2001-07-09 13:27 Message: Logged In: YES user_id=4201 Fixed in ObjectFactory.py: 2.10; ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=439825&group_id=12867 |
|
From: <no...@so...> - 2001-07-09 20:20:18
|
Bugs item #439825, was opened at 2001-07-09 13:20 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=439825&group_id=12867 Category: Jythonc compiler Group: None Status: Open Resolution: None Priority: 5 Submitted By: Finn Bock (bckfnn) Assigned to: Finn Bock (bckfnn) Summary: Proxy missing for java innerclass. Initial Comment: When subclasses a java innerclass, jython will not create a proxyclass. from javax.swing.text.html import HTMLEditorKit class TestFactory(HTMLEditorKit.HTMLFactory): def create(self,e): pass Added as test297. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=439825&group_id=12867 |
|
From: <no...@so...> - 2001-07-09 12:05:09
|
Bugs item #439688, was opened at 2001-07-09 05:05 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=439688&group_id=12867 Category: Core Group: None Status: Open Resolution: None Priority: 5 Submitted By: Finn Bock (bckfnn) Assigned to: Finn Bock (bckfnn) Summary: Syntax error for non-ascii characters Initial Comment: When entering a big O-Umlaut in a euro-centric windows command prompt this happens: 1) Java reads it as 0x99. 2) Jython (wrongly) puts it trough the default encoding which return unicode 0x2122. 3) This is passed to the javaCC parser which assumes it is only dealing with ascii and cuts away the top 8 bits. 4) The result is 0x22 (a double quote) which cause a syntax error. >>> "Ö" Traceback (innermost last): (no code object) at line 0 File "<console>", line 2 SyntaxError: Lexical error at line 2, column 0. Encountered: <EOF> after : "" >>> ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=439688&group_id=12867 |
|
From: <no...@so...> - 2001-07-03 22:26:05
|
Bugs item #438108, was opened at 2001-07-02 18:53 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=438108&group_id=12867 Category: Core Group: None Status: Open Resolution: None Priority: 5 Submitted By: Magnus Lie Hetland (mlh) Assigned to: Nobody/Anonymous (nobody) Summary: __getitem__ called when it shouldn't? Initial Comment: When executing the attached script, it looped infinitely in Jython, but worked fine on other platforms. Or, rather - the attached script is a "fixed" version. The line which says backend = self.__dict__['__try_to_get']('%sgui' % name) originally was backend = self.__try_to_get('%sgui' % name) The problem is that self.__try_to_get triggered __getitem__ which, again, triggered the method in which the above line was found. I cannot see any reason why __getitem__ should be triggered, since the method __try_to_get exists, and should therefore be used directly... Right? ---------------------------------------------------------------------- >Comment By: Finn Bock (bckfnn) Date: 2001-07-03 15:26 Message: Logged In: YES user_id=4201 I think the title should be about __getattr__, not __getitem__. Added as test296. Problem is caused the "import imp" inside the class. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=438108&group_id=12867 |
|
From: <no...@so...> - 2001-07-03 21:54:15
|
Bugs item #437809, was opened at 2001-07-01 20:32 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=437809&group_id=12867 Category: Library Group: None Status: Open Resolution: None Priority: 5 Submitted By: Magnus Lie Hetland (mlh) Assigned to: Nobody/Anonymous (nobody) Summary: traceback error Initial Comment: There seems to be a problem with the standard module traceback: Jython 2.1a1 on java1.2.2 (JIT: symcjit) Type "copyright", "credits" or "license" for more information >>> import traceback >>> traceback.extract_stack() Traceback (innermost last): File "<console>", line 1, in ? File "C:\jython\Lib\traceback.py", line 249, in extract_stack AttributeError: 'None' object has no attribute 'co_filename' ---------------------------------------------------------------------- >Comment By: Finn Bock (bckfnn) Date: 2001-07-03 14:54 Message: Logged In: YES user_id=4201 Added as test295. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=437809&group_id=12867 |
|
From: <no...@so...> - 2001-07-03 21:49:42
|
Bugs item #416871, was opened at 2001-04-17 15:52 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=416871&group_id=12867 Category: Core Group: None >Status: Closed >Resolution: Works For Me Priority: 5 Submitted By: brian zimmer (bzimmer) >Assigned to: Finn Bock (bckfnn) Summary: proxy fails to have all needed methods Initial Comment: When creating a Python class from a Java interface, not all superclass methods (namely the protected methods clone() and finalize()) are created. The attached Java interface and python script will reproduce the bug. ---------------------------------------------------------------------- >Comment By: Finn Bock (bckfnn) Date: 2001-07-03 14:49 Message: Logged In: YES user_id=4201 I can reproduce the problem. I think the example works as it should. The behavior is added as test294. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=416871&group_id=12867 |
|
From: <no...@so...> - 2001-07-03 18:09:46
|
Bugs item #438297, was opened at 2001-07-03 11:09 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=438297&group_id=12867 Category: Library Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Nobody/Anonymous (nobody) Summary: SimpleHTTPServer does not work Initial Comment: Calling jython.bat lib/SimpleHTTPServer.py results in the following error message: Traceback (innermost last): File "lib/SimpleHTTPServer.py", line 198, in ? File "lib/SimpleHTTPServer.py", line 194, in test File "H:\PROGRA~1\Java\jython-2.0 \lib\BaseHTTPServer.py", line 475, in test File "H:\PROGRA~1\Java\jython-2.0 \lib\SocketServer.py", line 168, in __init__ File "H:\PROGRA~1\Java\jython-2.0 \lib\BaseHTTPServer.py", line 94, in server_bind File "H:\PROGRA~1\Java\jython-2.0 \lib\SocketServer.py", line 178, in server_bind AttributeError: module 'socket' has no attribute 'SOL_SOCKET' To work around this error set allow_reuse_address = 0 in class BaseHTTPServer.HTTPServer. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=438297&group_id=12867 |
|
From: <no...@so...> - 2001-07-03 11:48:04
|
Bugs item #436730, was opened at 2001-06-27 07:02 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=436730&group_id=12867 Category: Jythonc compiler Group: None >Status: Closed >Resolution: Fixed Priority: 4 Submitted By: Samuele Pedroni (pedronis) Assigned to: Samuele Pedroni (pedronis) Summary: Wrong 'extends' Initial Comment: Jythonc can fail to emit the right/proper superproxy name in the 'extends' clause. Example attached. ---------------------------------------------------------------------- >Comment By: Samuele Pedroni (pedronis) Date: 2001-07-03 04:48 Message: Logged In: YES user_id=61408 fixed. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=436730&group_id=12867 |
|
From: <no...@so...> - 2001-07-03 11:47:24
|
Bugs item #222819, was opened at 2000-11-18 11:11 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=222819&group_id=12867 Category: Core Group: None >Status: Closed Resolution: Fixed Priority: 4 Submitted By: Finn Bock (bckfnn) Assigned to: Samuele Pedroni (pedronis) Summary: Multi-level Java method overriding fails Initial Comment: Consider the following script -- ========== #!/usr/bin/env jpython from java.util import Date class SubDate(Date): def toString(self): return 'SubDate.toString() -> ' + Date.toString(self) class SubSubDate(SubDate): def toString(self): return 'SubSubDate.toString() -> ' + SubDate.toString(self) print Date().toString() print SubDate().toString() print SubSubDate().toString() ========== The output is as follows -- ========== Fri Oct 22 12:53:58 CDT 1999 SubDate.toString() -> Fri Oct 22 12:53:58 CDT 1999 Traceback (innermost last): File "test.py", line 12, in ? File "test.py", line 8, in toString File "test.py", line 6, in toString java.lang.StackOverflowError at org.python.core.PyClass.lookupGivingClass(PyClass.java:137) at org.python.core.PyJavaClass.lookupGivingClass(PyJavaClass.java:673) at org.python.core.PyClass.lookup(PyClass.java:155) at org.python.util.PythonInterpreter.execfile(PythonInterpreter.java:132) < ... > at org.python.proxies.SubDate$0.toString(Unknown Source) at org.python.proxies.SubSubDate$1.super__toString(Unknown Source) at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:156) < ... > at org.python.proxies.SubDate$0.toString(Unknown Source) at org.python.proxies.SubSubDate$1.super__toString(Unknown Source) at org.python.core.PyReflectedFunction.__call__(PyReflectedFunction.java:156) < ... > at org.python.util.jpython.main(jpython.java:123) ========== What seems to happen is that SubSubDate.toString() calls SubDate.toString() calls Date.toString() ... which then turns around and calls the derived-most implementation of toString() all over again, ie, the one at SubSubDate. This goes on and on until the above stack overflow occurs. Note that with only one level of inheritance, ie, calling SubDate.toString(), it worked correctly with no problems. I originally observed this problem with overriding java.lang.Thread.interrupt(), so the above simplified test case has been reproduced elsewhere. I can reproduce this with Sun Solaris JDK versions 1.3, 1.2.2 and 1.1.8. ---------------------------------------------------------------------- >Comment By: Samuele Pedroni (pedronis) Date: 2001-07-03 04:47 Message: Logged In: YES user_id=61408 fixed (both in interp and jythonc) . Note: the code affected and related to this needs a big revision. ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-05-07 12:24 Message: Logged In: YES user_id=4201 Reverted the fix and reopened the bug. The reason for is the situation described here: http://www.geocrawler.com/lists/3/SourceForge/7018/0/5685848 / ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-03-22 12:50 Message: Logged In: YES user_id=4201 Fixed in: PyClass.java: 2.23; ProxyMaker.java: 2.12; JavaMaker.java: 2.10; ObjectFactory.py: 2.7; compile.py: 2.17; proxies.py: 2.10; ---------------------------------------------------------------------- Comment By: Finn Bock (bckfnn) Date: 2001-02-23 12:26 Message: Ian Castleden's fix added to the interpreter. Same fix must also be added to jythonc. The bug report will closed when that is done. ---------------------------------------------------------------------- Comment By: ian west (ianzsk) Date: 2001-02-19 01:26 Message: Any python subclass that contains a java class as a parent will have a proxy created for it. Also, in the PyReflectionFunction __call__ there is code to "translate" unbound methods to bound "super__" methods. However the "self" argument passed to this method is null so that the superclass (Here SubDate) again looks for a "super__" method ( viz: super__super__toString()!) This of course fails and so the call drops through. I can't really make heads or tails of this code so I have no idea where the "bug" is (altough the search for "super__super__" is surely wrong). I also think the fact that the SubSubDate class has a java proxyClass created for it (--because SubDate has a proxyClass--- see PyClass.init()) somehow contributes to the recursion. ---------------------------------------------------------------------- Comment By: Samuele Pedroni (pedronis) Date: 2000-12-16 12:52 Message: Just checked that the nasty bug is still there. It should be solved for sure, at least the stack overflow. Not analyzed yet. ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=222819&group_id=12867 |
|
From: <no...@so...> - 2001-07-03 01:53:17
|
Bugs item #438108, was opened at 2001-07-02 18:53 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=438108&group_id=12867 Category: Core Group: None Status: Open Resolution: None Priority: 5 Submitted By: Magnus Lie Hetland (mlh) Assigned to: Nobody/Anonymous (nobody) Summary: __getitem__ called when it shouldn't? Initial Comment: When executing the attached script, it looped infinitely in Jython, but worked fine on other platforms. Or, rather - the attached script is a "fixed" version. The line which says backend = self.__dict__['__try_to_get']('%sgui' % name) originally was backend = self.__try_to_get('%sgui' % name) The problem is that self.__try_to_get triggered __getitem__ which, again, triggered the method in which the above line was found. I cannot see any reason why __getitem__ should be triggered, since the method __try_to_get exists, and should therefore be used directly... Right? ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=112867&aid=438108&group_id=12867 |