[kaffe] put mathod can not be found

Dalibor Topic robilad@kaffe.org
Tue Sep 16 03:06:01 2003


Hi Grzegorz,

Grzegorz Tyma wrote:
> Hi,
> I'm porting kaffe 1.0.7 to TriCore-Linux platform. 
> I am faced with the following problem:
> When native function: java_lang_System_initProperties()  is executed the "put" method can not be found.
> I have found out that findMethodLocal()  searches in (class->superclass is java/lang/VirtualMachineError) : java/lang/StackOverflowError, java/lang/VirtualMachineError, java/lang/Error, java/lang/Throwable, java/lang/Object and "put" method is not present there.
> 
> I compared it with kaffe running on i386-Linux (which has been made with the same options as for TriCore).
> I noticed that findMethodLocal() starts with (class->superclass is java/util/Hashtable) java/util/properties and finds "put" in java/util/Hashtable.
> 
> Could you give me any hints?

Sounds like you're getting a StackOverflowError on initialization of 
System properties, and then wrongly pass the exception to the native 
method instead of new Properties object.

See libraries/javalib/java/lang/System.java in the static initializer 
section. Take a look at FAQ.debugging, fire up gdb and try to figure out 
why the StackOverflowError doesn't propagate out of the static 
initializer, but overwrites the object reference instead. If it turns 
out to be a bug in kaffe we haven't found yet, please send in a patch.

Last but not least: best of luck!

cheers,
dalibor topic