users@jaxb.java.net

RE: Re: AIOOB Exception during marshal after months of running

From: Spies, Brennan <Brennan.Spies_at_ejgallo.com>
Date: Mon, 28 Jan 2008 09:43:55 -0800

Johnny,

A bug that only happens *sometimes* is generally the MO of a concurrency
issue. Assuming that the XML you are parsing is a shared resource, it always
needs to be properly synchronized. As for running for months without an
issue, that's not surprising. I've seen worse.

Regards,

Brennan Spies
Sr. Programmer Analyst
Shared Application Services


-----Original Message-----
From: Johnny Tolliver [mailto:jxt_at_ornl.gov]
Sent: Monday, January 28, 2008 9:04 AM
To: users_at_jaxb.dev.java.net
Subject: Re: AIOOB Exception during marshal after months of running

I've seen no reply on this, but I do have some new information that might
help. It turns out, after the customer sent me the complete error logs, that
the first exception was NOT the AIOOBE during marshal. Instead, it was an
UnmarshalException earlier in the code, linked to a SAXException:

javax.xml.bind.UnmarshalException
 - with linked exception:
[org.xml.sax.SAXException: FWK005 parse may not be called while parsing.]
        at
javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(Unkn
own
Source)
        at
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnma
rshalException(Unknown
Source)
        at
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0
(Unknown
Source)
        at
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
Unknown
Source)
        at
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(
Unknown
Source)
        at
<my call to unmarshal()>


This stacktrace seems to indicate a thread collision -- i.e., it appears
that parse was called while already parsing. If it's a thread collision, I
still find it surprising that this code ran for months with many many
thousands of hits before encountering the collision. However, it is true
that my call to marshal() is not synchronized to prevent simultaneous
access. It will be easy to synchronize this block of code, but I would like
this list's combined expertise to weigh in on whether or not this
thread-collision analysis rings true.

Any thoughts?

Thanks,
Johnny S. Tolliver
Oak Ridge National Laboratory
tolliverjs_at_ornl.gov, 865-574-1305



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
For additional commands, e-mail: users-help_at_jaxb.dev.java.net