From: Mike G. <mik...@ya...> - 2005-06-22 10:48:17
Attachments:
strbuff.py
|
hi Berlin, If you need StringBuffer to work for you here is a work-around that I tested and it works. You'll have to rebuild jython. In PyJavaClass.java change the method setMethods(Class, Method[]) from: /************************************************************/ private void setMethods(Class c, Method[] methods) { for (int i=0; i<methods.length; i++) { Method method = methods[i]; Class dc = method.getDeclaringClass(); if (dc != c) continue; if (ignoreMethod(method)) continue; addMethod(method); } } /************************************************************/ TO: /************************************************************/ private void setMethods(Class c, Method[] methods) { for (int i=0; i<methods.length; i++) { Method method = methods[i]; Class dc = method.getDeclaringClass(); /* ADD */ int mods = dc.getModifiers(); if (Modifier.isInterface(mods) || Modifier.isAbstract(mods) ) continue; /* END ADD */ if (dc != c) continue; if (ignoreMethod(method)) continue; addMethod(method); } } /************************************************************/ This works and I attached a simple test for ya. If this could be incorporated into the jython 2.2a2 tip, that would be great. I can't envision any problems arising out of this fix. Maybe Brian or Frank can state otherwise. Mike -----Original Message----- From: jyt...@li... [mailto:jyt...@li...] On Behalf Of Frank Wierzbicki Sent: Friday, June 17, 2005 4:32 AM To: jyt...@li... Subject: [Jython-dev] Re: [Jython-users] StringBuffer and the reverse method, a bug? I know it doesn't happen on my version of the tip (on Mac OSX jdk 1.4.2_07) and I remember a while back seeing a reference to this problem being fixed but I'm not sure where... On 6/16/05, Brian Zimmer <bz...@zi...> wrote: > Have we confirmed this is fixed in tip? I can no longer reproduce it. > > thanks, > > brian > > On Jun 16, 2005, at 08:10 PM, Frank Wierzbicki wrote: > > >> This is bug, why is reverse giving me this error, am I doing > >> something wrong? > > > > It is indeed a bug, which I believe is caused by some differences in > > the way Java handles reflection starting at JDK 1.4. The bug occurs > > when accessing methods that are defined in abstract super classes (in > > this case it looks like reverse() is defined in AbstractStringBuilder, > > presumably an abstract class). The same code should work fine against > > JDK 1.3 or less and it is fixed in the development version, which is > > incidentally going to be released as a development alpha soon. > > > > Frank > > > > > > ------------------------------------------------------- > > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > > from IBM. Find simple to follow Roadmaps, straightforward articles, > > informative Webcasts and more! Get everything you need to get up to > > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id 492&op=click > > _______________________________________________ > > Jython-users mailing list > > Jyt...@li... > > https://lists.sourceforge.net/lists/listinfo/jython-users > > ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id 492&op=ick _______________________________________________ Jython-dev mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-dev ____________________________________________________ Yahoo! Sports Rekindle the Rivalries. Sign up for Fantasy Football http://football.fantasysports.yahoo.com |
From: Brian Z. <bz...@zi...> - 2005-06-22 13:36:57
|
I've tested the patch and it looks good to me. I'll commit it. thanks, brian Mike Garcia wrote: > hi Berlin, > > If you need StringBuffer to work for you here is a work-around that I tested and it > works. You'll have to rebuild jython. In PyJavaClass.java change the method > setMethods(Class, Method[]) from: > /************************************************************/ > private void setMethods(Class c, Method[] methods) { > for (int i=0; i<methods.length; i++) { > Method method = methods[i]; > Class dc = method.getDeclaringClass(); > if (dc != c) > continue; > if (ignoreMethod(method)) > continue; > addMethod(method); > } > } > /************************************************************/ > TO: > /************************************************************/ > private void setMethods(Class c, Method[] methods) { > for (int i=0; i<methods.length; i++) { > Method method = methods[i]; > Class dc = method.getDeclaringClass(); > /* ADD */ > int mods = dc.getModifiers(); > if (Modifier.isInterface(mods) || > Modifier.isAbstract(mods) ) > continue; > /* END ADD */ > if (dc != c) > continue; > if (ignoreMethod(method)) > continue; > addMethod(method); > } > } > /************************************************************/ > > This works and I attached a simple test for ya. If this could be incorporated into > the jython 2.2a2 tip, that would be great. I can't envision any problems arising > out of this fix. Maybe Brian or Frank can state otherwise. > > Mike > |
From: Brian Z. <bz...@zi...> - 2005-06-22 13:48:23
|
I spoke too soon, test_tempfile still fails. I'll debug it. thanks, brian Brian Zimmer wrote: > I've tested the patch and it looks good to me. I'll commit it. > > thanks, > > brian > > Mike Garcia wrote: > >> hi Berlin, >> >> If you need StringBuffer to work for you here is a work-around that I >> tested and it >> works. You'll have to rebuild jython. In PyJavaClass.java change the >> method >> setMethods(Class, Method[]) from: >> /************************************************************/ >> private void setMethods(Class c, Method[] methods) { >> for (int i=0; i<methods.length; i++) { >> Method method = methods[i]; >> Class dc = method.getDeclaringClass(); >> if (dc != c) >> continue; >> if (ignoreMethod(method)) >> continue; >> addMethod(method); >> } >> } >> /************************************************************/ >> TO: >> /************************************************************/ >> private void setMethods(Class c, Method[] methods) { >> for (int i=0; i<methods.length; i++) { >> Method method = methods[i]; >> Class dc = method.getDeclaringClass(); >> /* ADD */ >> int mods = dc.getModifiers(); >> if (Modifier.isInterface(mods) || Modifier.isAbstract(mods) ) >> continue; >> /* END ADD */ >> if (dc != c) >> continue; >> if (ignoreMethod(method)) >> continue; >> addMethod(method); >> } >> } >> /************************************************************/ >> >> This works and I attached a simple test for ya. If this could be >> incorporated into >> the jython 2.2a2 tip, that would be great. I can't envision any >> problems arising >> out of this fix. Maybe Brian or Frank can state otherwise. >> Mike >> > > > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Brian Z. <bz...@zi...> - 2005-06-22 21:26:18
|
I've fixed the bug with this patch: http://sourceforge.net/tracker/index.php?func=detail&aid=1225853&group_id=12867&atid=312867 It skips all methods on package protected classes such as AbstractStringBuilder and UNIXProcess. Anyone interested in applying and testing it? It works on JDK1.4 and JDK1.5 for me. thanks, brian |
From: Frank W. <fwi...@gm...> - 2005-06-22 23:47:32
|
<type 'unicode'> is expanding in difficulty as I slowly get test_unicode.py working, but once I'm done I'm willing to take it over. Frank On 6/22/05, Brian Zimmer <bz...@zi...> wrote: > I've fixed the bug with this patch: >=20 > http://sourceforge.net/tracker/index.php?func=3Ddetail&aid=3D1225853&grou= p_id=3D12867&atid=3D312867 >=20 > It skips all methods on package protected classes such as > AbstractStringBuilder and UNIXProcess. Anyone interested in applying > and testing it? It works on JDK1.4 and JDK1.5 for me. >=20 > thanks, >=20 > brian >=20 >=20 >=20 > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_id=3D7477&alloc_id=3D16492&op=3Dclic= k > _______________________________________________ > Jython-users mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-users > |
From: Brian Z. <bz...@zi...> - 2005-06-24 01:13:05
|
I'm happy with this patch and applied it to tip this evening. thanks, brian On Jun 22, 2005, at 06:47 PM, Frank Wierzbicki wrote: > <type 'unicode'> is expanding in difficulty as I slowly get > test_unicode.py working, but once I'm done I'm willing to take it > over. > > Frank > On 6/22/05, Brian Zimmer <bz...@zi...> wrote: >> I've fixed the bug with this patch: >> >> http://sourceforge.net/tracker/index.php?=20 >> func=3Ddetail&aid=3D1225853&group_id=3D12867&atid=3D312867 >> >> It skips all methods on package protected classes such as >> AbstractStringBuilder and UNIXProcess. Anyone interested in applying >> and testing it? It works on JDK1.4 and JDK1.5 for me. >> >> thanks, >> >> brian >> >> >> >> ------------------------------------------------------- >> SF.Net email is sponsored by: Discover Easy Linux Migration = Strategies >> from IBM. Find simple to follow Roadmaps, straightforward articles, >> informative Webcasts and more! Get everything you need to get up to >> speed, fast. http://ads.osdn.com/?ad_id=3D7477&alloc_id=3D16492&op=3Dcl= ick >> _______________________________________________ >> Jython-users mailing list >> Jyt...@li... >> https://lists.sourceforge.net/lists/listinfo/jython-users >> > > > ------------------------------------------------------- > SF.Net email is sponsored by: Discover Easy Linux Migration Strategies > from IBM. Find simple to follow Roadmaps, straightforward articles, > informative Webcasts and more! Get everything you need to get up to > speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id=16492&op=3Dclick > _______________________________________________ > Jython-dev mailing list > Jyt...@li... > https://lists.sourceforge.net/lists/listinfo/jython-dev |