Re: NPE caught in handleClientEvent in latest cvs-version
Arjen van der Meijden <[email protected]> Sat, 21 Aug 2004 22:50:00 +0200
| Newsgroups | gmane.comp.java.ozone.user |
|---|---|
| Message-ID | <[email protected]> |
On 21-8-2004 22:27, Leo Mekenkamp wrote:
> On Sat, 2004-08-21 at 15:32, Arjen van der Meijden wrote:
>
>>I've adjusted the code of Ozone's InvokeServer (and a proxy of mine) to
>>get the stacktrace of the NPE, here it is:
>
>
> Do you happen to have a minimal code set that will show the npe when
> being run against an empty db? If so, please send it.
>
> (...)
This is untested, but derived from expectancy of the code's behaviour
and the way my code handles things:
public interface TestNPE extends OzoneProxy
{
public String toString();
}
public class TestNPEImpl extends OzoneObject implements TestNPE
{
public String toString(){return "TestNPEImpl";}
// You probably could even use Object's default-toString
}
And then call something like:
OzoneMap ozoneMap = db.createObject(NodeTreeMapImpl.class, "testmap");
// We need to have this class to be returned as a method-result, so
stick it into an OzoneMap.
// You could also make another wrapper-class that simply creates the
object and returns it.
TestNPE testNPE = db.createObject(TestNPEImpl.class);
ozoneMap.put("testNPE", testNPE);
ozoneMap.get("testNPE");
// Here it'll fetch the NPE, since the TestNPE-object will be the cmd.result
The log-statement at InvokeServer's line 92 log.fine("..." + cmd.result
+ "...");
Will call the result-object's toString and that happens to be the
Proxied-version of toString, which causes a NPE in the
database.fetch-statement's call on the "current transaction".
I've now commented out that log-line in InvokeServer and Ozone works
fine and since the StackTrace showed it was comming from that line...
Anyway that is of course a workaround, not a fix.
Btw, the 1.2.x-dev version is more than twice as fast as the
1.2-release, as far as I've tested it :)
Best regards,
Arjen
-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285