harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pascal Rapicault <Pascal_Rapica...@ca.ibm.com>
Subject Re: [Japi] stacktraces running japitools on harmony
Date Wed, 15 Nov 2006 20:06:21 GMT
I have forwarded this message to a member of the compiler team.




Stefano Mazzocchi <stefano@apache.org> 
11/15/2006 03:02 PM
Please respond to
harmony-dev@incubator.apache.org


To
Stuart Ballard <stuart.a.ballard@gmail.com>
cc
japitools-list@nongnu.org, harmony-dev@incubator.apache.org
Subject
Re: [Japi] stacktraces running japitools on harmony






Copying Harmony as some of the Eclipse folks might be watching...

Stuart Ballard wrote:
> This sounds like a bug in your compiler. The JLS specifies that every
> constructor of every nonstatic inner class should be compiled as if it
> has an extra parameter of the type of the outer class, to hold the
> value for (for example) "BasicSwingTestCase.this".

I see.

> What compiler is producing the jar that you're running this against?

Eclipse ECJ 3.2

/me wonders if later versions have fixed this problem

> Also, is BasicSwingTestCase public in the first place?

checking... yeah it's a 'public abstract' class.

> Japitools (when
> run in the harmony-vs-jdk direction) would complain about extra public
> classes being added to public packages. And rightly so; Javadoc would
> include them too and they're definitely not part of the public API.

Agreed.

the Harmony devs have apparently being paying close attention to the
forward japi (jdk15 vs harmony) but the reversed one is clearly lagging
behind.

Anyway, cool to see it's not a JAPI bug.

Thanks much!

> Stuart.
> 
> On 11/14/06, Stefano Mazzocchi <stefano@apache.org> wrote:
>> I ran japitools (cvs update of a few minutes ago) against the latest
>> harmony (r474892) and I got this:
>>
>> [...]
>> Failed to Japize javax.swing.BasicSwingTestCase$BadLocationCase:
>> java.lang.RuntimeException: First parameter of nonstatic inner class
>> javax.swing.BasicSwingTestCase$ExceptionalCase constructor is
>> java.lang.String, not javax.swing.BasicSwingTestCase
>> java.lang.RuntimeException: First parameter of nonstatic inner class
>> javax.swing.BasicSwingTestCase$ExceptionalCase constructor is
>> java.lang.String, not javax.swing.BasicSwingTestCase
>>         at
>> 
net.wuffies.japi.ClassFile$MethodInfoItem.getParameterTypes(ClassFile.java:438)
>>
>>         at net.wuffies.japi.BoundCall.<init>(BoundCall.java:47)
>>         at net.wuffies.japi.Japize.getFieldsAndCalls(Japize.java:1084)
>>         at net.wuffies.japi.Japize.getFieldsAndCalls(Japize.java:1076)
>>         at net.wuffies.japi.Japize.japizeClass(Japize.java:817)
>>         at net.wuffies.japi.Japize.processPackage(Japize.java:536)
>>         at net.wuffies.japi.Japize.processPackage(Japize.java:556)
>>         at net.wuffies.japi.Japize.processRootSet(Japize.java:471)
>>         at net.wuffies.japi.Japize.doJapize(Japize.java:443)
>>         at net.wuffies.japi.Japize.main(Japize.java:316)
>> +
>> Failed to Japize javax.swing.BasicSwingTestCase$ClassCastCase:
>> java.lang.RuntimeException: First parameter of nonstatic inner class
>> javax.swing.BasicSwingTestCase$ExceptionalCase constructor is
>> java.lang.String, not javax.swing.BasicSwingTestCase
>> java.lang.RuntimeException: First parameter of nonstatic inner class
>> javax.swing.BasicSwingTestCase$ExceptionalCase constructor is
>> java.lang.String, not javax.swing.BasicSwingTestCase
>>         at
>> 
net.wuffies.japi.ClassFile$MethodInfoItem.getParameterTypes(ClassFile.java:438)
>>
>>         at net.wuffies.japi.BoundCall.<init>(BoundCall.java:47)
>>         at net.wuffies.japi.Japize.getFieldsAndCalls(Japize.java:1084)
>>         at net.wuffies.japi.Japize.getFieldsAndCalls(Japize.java:1076)
>>         at net.wuffies.japi.Japize.japizeClass(Japize.java:817)
>>         at net.wuffies.japi.Japize.processPackage(Japize.java:536)
>>         at net.wuffies.japi.Japize.processPackage(Japize.java:556)
>>         at net.wuffies.japi.Japize.processRootSet(Japize.java:471)
>>         at net.wuffies.japi.Japize.doJapize(Japize.java:443)
>>         at net.wuffies.japi.Japize.main(Japize.java:316)
>> +
>> Failed to Japize javax.swing.BasicSwingTestCase$ExceptionalCase:
>> java.lang.RuntimeException: First parameter of nonstatic inner class
>> javax.swing.BasicSwingTestCase$ExceptionalCase constructor is
>> java.lang.String, not javax.swing.BasicSwingTestCase
>> java.lang.RuntimeException: First parameter of nonstatic inner class
>> javax.swing.BasicSwingTestCase$ExceptionalCase constructor is
>> java.lang.String, not javax.swing.BasicSwingTestCase
>>         at
>> 
net.wuffies.japi.ClassFile$MethodInfoItem.getParameterTypes(ClassFile.java:438)
>>
>>         at net.wuffies.japi.BoundCall.<init>(BoundCall.java:47)
>>         at net.wuffies.japi.Japize.getFieldsAndCalls(Japize.java:1084)
>>         at net.wuffies.japi.Japize.japizeClass(Japize.java:817)
>>         at net.wuffies.japi.Japize.processPackage(Japize.java:536)
>>         at net.wuffies.japi.Japize.processPackage(Japize.java:556)
>>         at net.wuffies.japi.Japize.processRootSet(Japize.java:471)
>>         at net.wuffies.japi.Japize.doJapize(Japize.java:443)
>>         at net.wuffies.japi.Japize.main(Japize.java:316)
>> -
>> Failed to Japize javax.swing.BasicSwingTestCase$IllegalArgumentCase:
>> java.lang.RuntimeException: First parameter of nonstatic inner class
>> javax.swing.BasicSwingTestCase$ExceptionalCase constructor is
>> java.lang.String, not javax.swing.BasicSwingTestCase
>> java.lang.RuntimeException: First parameter of nonstatic inner class
>> javax.swing.BasicSwingTestCase$ExceptionalCase constructor is
>> java.lang.String, not javax.swing.BasicSwingTestCase
>>         at
>> 
net.wuffies.japi.ClassFile$MethodInfoItem.getParameterTypes(ClassFile.java:438)
>>
>>         at net.wuffies.japi.BoundCall.<init>(BoundCall.java:47)
>>         at net.wuffies.japi.Japize.getFieldsAndCalls(Japize.java:1084)
>>         at net.wuffies.japi.Japize.getFieldsAndCalls(Japize.java:1076)
>>         at net.wuffies.japi.Japize.japizeClass(Japize.java:817)
>>         at net.wuffies.japi.Japize.processPackage(Japize.java:536)
>>         at net.wuffies.japi.Japize.processPackage(Japize.java:556)
>>         at net.wuffies.japi.Japize.processRootSet(Japize.java:471)
>>         at net.wuffies.japi.Japize.doJapize(Japize.java:443)
>>         at net.wuffies.japi.Japize.main(Japize.java:316)
>> +
>> Failed to Japize javax.swing.BasicSwingTestCase$NullPointerCase:
>> java.lang.RuntimeException: First parameter of nonstatic inner class
>> javax.swing.BasicSwingTestCase$ExceptionalCase constructor is
>> java.lang.String, not javax.swing.BasicSwingTestCase
>> java.lang.RuntimeException: First parameter of nonstatic inner class
>> javax.swing.BasicSwingTestCase$ExceptionalCase constructor is
>> java.lang.String, not javax.swing.BasicSwingTestCase
>>         at
>> 
net.wuffies.japi.ClassFile$MethodInfoItem.getParameterTypes(ClassFile.java:438)
>>
>>         at net.wuffies.japi.BoundCall.<init>(BoundCall.java:47)
>>         at net.wuffies.japi.Japize.getFieldsAndCalls(Japize.java:1084)
>>         at net.wuffies.japi.Japize.getFieldsAndCalls(Japize.java:1076)
>>         at net.wuffies.japi.Japize.japizeClass(Japize.java:817)
>>         at net.wuffies.japi.Japize.processPackage(Japize.java:536)
>>         at net.wuffies.japi.Japize.processPackage(Japize.java:556)
>>         at net.wuffies.japi.Japize.processRootSet(Japize.java:471)
>>         at net.wuffies.japi.Japize.doJapize(Japize.java:443)
>>         at net.wuffies.japi.Japize.main(Japize.java:316)
>> +
>> Failed to Japize
>> javax.swing.BasicSwingTestCase$StringIndexOutOfBoundsCase:
>> java.lang.RuntimeException: First parameter of nonstatic inner class
>> javax.swing.BasicSwingTestCase$ExceptionalCase constructor is
>> java.lang.String, not javax.swing.BasicSwingTestCase
>> java.lang.RuntimeException: First parameter of nonstatic inner class
>> javax.swing.BasicSwingTestCase$ExceptionalCase constructor is
>> java.lang.String, not javax.swing.BasicSwingTestCase
>>         at
>> 
net.wuffies.japi.ClassFile$MethodInfoItem.getParameterTypes(ClassFile.java:438)
>>
>>         at net.wuffies.japi.BoundCall.<init>(BoundCall.java:47)
>>         at net.wuffies.japi.Japize.getFieldsAndCalls(Japize.java:1084)
>>         at net.wuffies.japi.Japize.getFieldsAndCalls(Japize.java:1076)
>>         at net.wuffies.japi.Japize.japizeClass(Japize.java:817)
>>         at net.wuffies.japi.Japize.processPackage(Japize.java:536)
>>         at net.wuffies.japi.Japize.processPackage(Japize.java:556)
>>         at net.wuffies.japi.Japize.processRootSet(Japize.java:471)
>>         at net.wuffies.japi.Japize.doJapize(Japize.java:443)
>>         at net.wuffies.japi.Japize.main(Japize.java:316)
>> [...]
>>
>> BTW, I have setup a cruisecontrol on one of our testing servers and
>> provide a snapshot of the latest build (it checks every 5 minutes for
>> new svn commits and automatically rebuilds)
>>
>> http://67.86.14.213:10000/builds/harmony/classlib/jre/lib/boot/
>>
>> Thanks!
>>
>> -- 
>> Stefano.
>>
>>
>>
>> _______________________________________________
>> Japitools-list mailing list
>> Japitools-list@nongnu.org
>> http://lists.nongnu.org/mailman/listinfo/japitools-list
>>
> 
> 


-- 
Stefano.



Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message