I've hit a dead end with my implementation of an XML ODE format for Odejava.
And a dead end is about the best way to describe it. Every move I take, I run into JVM native crashes. On the weekend, I had to add in some code I had written (which didn't work) line by line, testing and backing it up to find the issues.
In the past, libodejava.so has crashed on me - and this is understandable because it is an alpha library. What's got me stumped here is that it appears from my crash logs that it's NOT Odejava which is crashing Java but java itself.
The reason I think that is because supposedly the errors are occurring in libc.so and libjvm.so. Can Odejava's native library cause errors which confuse Java into thinking they are in libc.so and libjvm.so?
My biggest problem is that Java/Odejava is behaving illogically and non-deterministically. I have never encountered such behaviour and am running out of ideas, and patience. Two things I have determined were contributing factors to the crashes were excess log statements and a recursive method (just doing some vecmath stuff).
But... Why? What's wrong with excess log statements and a recursive method. Neither should cause Java to crash - but they do in this case.
Have I found a bug? If so I am far off narrowing it down to a reproducible test case.
I've tested this with all 1.4.2_0X JVM's with little change. I've tested it on Windows which crashes less - but still happens. Is there anyone out there who has experience with Java crashes who can give me some advice?
The progress of my XML parser is here:http://odejava.org/jws/jws-org.odejava.xith3d.test.RunDemo.jnlp
it's a crude demo - but it's loaded from an XML file (here: http://odejava.org/jws/boxsphere.xml
About 40% of the time the demo works in linux, about 70% in Windows. So the big question is why not the remaining 60% and 30%? And where are the meaningful java error/debugging messages I am so used to and are one of Java's largest strengths?