users@jaxb.java.net

Re: AIOOB Exception during marshal after months of running

From: Johnny Tolliver <jxt_at_ornl.gov>
Date: Mon, 28 Jan 2008 12:04:04 -0500 (EST)

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(Unknown
Source)
        at
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(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