java.lang.VirtualMachineError: Illegal CONSTANT_Class reference

A

Alex Hunsley

Going slightly nutso here...
I'm working on a MIDP Java project. It compiles fine, but at runtime I
get the following:

java.lang.VirtualMachineError: Illegal CONSTANT_Class reference

This happens when I assign a newly instantiated object to a private
class member. I've googled for this error, and found a few scant
references to it, but couldn't glean much about it.

If I use Antenna with ant to build the project it doesn't seem to have
this problem (not entirely surprisingly).
Does this ring any bells with anyone?


The nitty gritty details:
Using EclipseME plugin in Eclipse 3.1.2 with the Sun Wireless Toolkit 2.2.
(Project settings: compiler compliance level 1.4, .class file
compatabillity set to 1.1, source compatability is 1.3.)

cheers,
lex
 
O

Oliver Wong

Alex Hunsley said:
Going slightly nutso here...
I'm working on a MIDP Java project. It compiles fine, but at runtime I get
the following:

java.lang.VirtualMachineError: Illegal CONSTANT_Class reference

This happens when I assign a newly instantiated object to a private class
member. I've googled for this error, and found a few scant references to
it, but couldn't glean much about it.

If I use Antenna with ant to build the project it doesn't seem to have
this problem (not entirely surprisingly).
Does this ring any bells with anyone?


The nitty gritty details:
Using EclipseME plugin in Eclipse 3.1.2 with the Sun Wireless Toolkit 2.2.
(Project settings: compiler compliance level 1.4, .class file
compatabillity set to 1.1, source compatability is 1.3.)

The Javadocs say: "VirtualMachineError: Thrown to indicate that the Java
Virtual Machine is broken or has run out of resources necessary for it to
continue operating."

Could it be that you've found a bug in the JVM you're using?

- Oliver
 
A

Alex Hunsley

Oliver said:
The Javadocs say: "VirtualMachineError: Thrown to indicate that the
Java Virtual Machine is broken or has run out of resources necessary for
it to continue operating."

Could it be that you've found a bug in the JVM you're using?

Maybe! It's definitely very odd seeming.
I've just reduced the error down to the follow behaviour:
I've declared a class:

class RandomClass {
public RandomClass(int a) {

}
}

Then, from just before the point of failure in my code, I've added a
call to this class:

RandomClass rc = new RandomClass(1);
aMethodCallThatIsUsuallyThePointOfFailure(.. stuff ..);

The code above executes the instantiation of rc ok and dies at the
second line.
If, however, I add another parameter to RandomClass constructor and pass
that in:

RandomClass rc = new RandomClass(1, 2);
aMethodCallThatIsUsuallyThePointOfFailure(.. stuff ..);

... it now dies horribly on the "new RandomClass(1, 2)" line. Seems the
stack is getting corrupted or overflowed and the point at which the
program dies is merely a symptom of the real resource/corruption problem!
Thing is, this was all working fine until I did a tiny bit of harmless
seeming refactoring (I moved a class). Hmmm...

thanks for your reply!
lex
 
Joined
Sep 30, 2006
Messages
1
Reaction score
0
Hi Alex Hunsley,

Can you please tell me how you resolved your problem?
I am having the same problem in the same environment.

Thanks for any help.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,898
Latest member
BlairH7607

Latest Threads

Top