Hi Sebastian,

Sebastien Devolder wrote:
> Hi,
> 
> I have a bug on a program running on IBM platform: AIX + IBM J9 VM (build
> 2.4) + Castor 1.3
> 
> Unfortunately, I cannot repeat the problem on my development workstation:
> Windows XP + sun jdk1.6 + Castor 1.3.
> 
> 
> 1. As you can see in my my program below I use one instance (singleton) of
> XMLContext. But it's thread safe, right?
> 2. Each call of CastorTools.marshall(Object element) instanciate a new
> Marshaller object, right?
That approach looks perfectly fine to me, except that I cannot really
comment on your ParametrableXMLContext() class.

> BUT when I call the method CastorTools.marshall(Object) in many
> simultanously launched threads, sometimes, my program locks.
> In the dump file, I can see that all my threads are in "waiting on
> condition" state on findNonNullKeyEntry  (you have java stack at the end of
> mail)
Can you please raise a Jira issue [1] here and attach the stack 'trace',
and we'll have a look.


> Someone can see what I have done wrong?
> This is my first email here, I hope I have done it right.
Yes, I guess you provided us with all required informations.

Regards
Werner

[1] http://jira.codehaus.org/browse/CASTOR

> Thank you very much.
> 
> ___________________________________________________________________________________________
> *Here is the piece of my code involved in my problem:*
> 
> public class CastorTools {
> 
>     private static final XMLContext xmlContext = new
> ParametrableXMLContext();
> 
>     public static String marshall(Object element) throws CastorException {
> 
>         StringWriter writer = new StringWriter();
> 
>         Marshaller marshaller = xmlContext.createMarshaller();
>         marshaller.setWriter(writer);
>         marshaller.setMarshalAsDocument(false);
>         marshaller.setValidation(false);
>         marshaller.setSuppressNamespaces(true);
>         marshaller.marshal(element);
> 
>         return writer.toString();
>     }
>     [...]
> 
> ___________________________________________________________________________________________
> *Here is the java stack of one of my threads in the dump file:*
> 
> at java/util/HashMap.findNonNullKeyEntry(HashMap.java:526(Compiled Code))
> at java/util/HashMap.getEntry(HashMap.java:511(Compiled Code))
> at java/util/HashMap.get(HashMap.java:497(Compiled Code))
> at
> org/exolab/castor/xml/util/XMLClassDescriptorResolverImpl$DescriptorCacheImpl.getDescriptorList(XMLClassDescriptorResolverImpl.java:563)
> 
> at
> org/exolab/castor/xml/util/XMLClassDescriptorResolverImpl$DescriptorCacheImpl.addDescriptor(XMLClassDescriptorResolverImpl.java:523)
> 
> at
> org/exolab/castor/xml/util/XMLClassDescriptorResolverImpl$DescriptorCacheImpl.addAllDescriptors(XMLClassDescriptorResolverImpl.java:632)
> 
> at
> org/exolab/castor/xml/util/resolvers/CastorXMLStrategy.getDescriptor(CastorXMLStrategy.java:131)
> 
> at
> org/exolab/castor/xml/util/resolvers/CastorXMLStrategy.resolveClass(CastorXMLStrategy.java:82)
> 
> at
> org/exolab/castor/xml/util/XMLClassDescriptorResolverImpl.resolve(XMLClassDescriptorResolverImpl.java:289)
> 
> at
> org/exolab/castor/xml/util/XMLClassDescriptorResolverImpl.resolve(XMLClassDescriptorResolverImpl.java:232)
> 
> at org/exolab/castor/xml/Marshaller.getClassDescriptor(Marshaller.java:2483)
> 
> at org/exolab/castor/xml/Marshaller.marshal(Marshaller.java:1156)
> at org/exolab/castor/xml/Marshaller.marshal(Marshaller.java:1997)
> at org/exolab/castor/xml/Marshaller.marshal(Marshaller.java:2004)
> at org/exolab/castor/xml/Marshaller.marshal(Marshaller.java:2004)
> at org/exolab/castor/xml/Marshaller.marshal(Marshaller.java:2004)
> at org/exolab/castor/xml/Marshaller.marshal(Marshaller.java:921)
> at com/netfinca/common/castor/CastorTools.marshall(CastorTools.java:58)
> 

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to