[jboss-jira] [JBoss JIRA] Closed: (JBSER-109) Endless Exception while serializing a HashMap

Clebert Suconic (JIRA) jira-events at lists.jboss.org
Tue Oct 14 13:46:21 EDT 2008


     [ https://jira.jboss.org/jira/browse/JBSER-109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Clebert Suconic closed JBSER-109.
---------------------------------

    Resolution: Rejected


JBSER uses recursion to navigate on the objectModel (same way as the JDK).

If you have a very deep object, you need a very deep stack trace for that, on either algorithm you use.

> Endless Exception while serializing a HashMap
> ---------------------------------------------
>
>                 Key: JBSER-109
>                 URL: https://jira.jboss.org/jira/browse/JBSER-109
>             Project: JBoss Serialization
>          Issue Type: Bug
>    Affects Versions: 1.0.3 GA
>         Environment: JBoss 4.0.5.GA (JBoss Messaging 1.2.0.sp1)
> Seam 1.2.1.GA
> Hibernate 3
> jdk 1.5.0_09-b03
> Linux Debian
>            Reporter: Andrea
>            Assignee: Clebert Suconic
>
> I've observed the following endless exception (requires killing server to be stopped).
> Looks like the exception happened on serialization of a HashMap of ArrayLists. I thought this was happening at passivation of a SFSB, but exception happened 20 min after logout from the application. Since logout already destroys all stateful beans, there should be something else.
> Unluckily I wasn't yet able to reproduce it. I could just interpret the log of my server when the exception happened.
> 2008-06-12 15:34:32,864 FATAL [org.jboss.serial.persister.RegularObjectPersister] error
> java.lang.reflect.InvocationTargetException
> 	at sun.reflect.GeneratedMethodAccessor1236.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:120)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.ObjectOutputStreamProxy.writeObjectOverride(ObjectOutputStreamProxy.java:60)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
> 	at java.util.ArrayList.writeObject(ArrayList.java:569)
> 	at sun.reflect.GeneratedMethodAccessor1235.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:120)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.ObjectOutputStreamProxy.writeObjectOverride(ObjectOutputStreamProxy.java:60)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
> 	at java.util.HashMap.writeObject(HashMap.java:1038)
> 	
> 	
>  ... same exception ~ 20 times
> 	
> 	at sun.reflect.GeneratedMethodAccessor1236.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:120)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	
> Caused by: java.lang.StackOverflowError
> 	at java.lang.ClassLoader.defineClass1(Native Method)
> 	at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> 	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> 	at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> 	at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> 	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> 	at org.apache.log4j.spi.LoggingEvent.<init>(LoggingEvent.java:145)
> 	at org.apache.log4j.Category.forcedLog(Category.java:372)
> 	at org.apache.log4j.Category.fatal(Category.java:363)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:127)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.ObjectOutputStreamProxy.writeObjectOverride(ObjectOutputStreamProxy.java:60)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
> 	at java.util.HashMap.writeObject(HashMap.java:1038)	
> 	at sun.reflect.GeneratedMethodAccessor1236.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:120)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.ObjectOutputStreamProxy.writeObjectOverride(ObjectOutputStreamProxy.java:60)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
> 	at java.util.ArrayList.writeObject(ArrayList.java:569)
> 	at sun.reflect.GeneratedMethodAccessor1235.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:120)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.ObjectOutputStreamProxy.writeObjectOverride(ObjectOutputStreamProxy.java:60)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
> 	at java.util.HashMap.writeObject(HashMap.java:1038)
> 	
> 	
>  ... same exception ~ 100 times
> 	
> Caused by: java.io.IOException
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:129)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.ObjectOutputStreamProxy.writeObjectOverride(ObjectOutputStreamProxy.java:60)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
> 	at java.util.ArrayList.writeObject(ArrayList.java:569)
> 	at sun.reflect.GeneratedMethodAccessor1235.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithMethod(RegularObjectPersister.java:120)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:86)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeSlotWithFields(RegularObjectPersister.java:182)
> 	at org.jboss.serial.persister.RegularObjectPersister.defaultWrite(RegularObjectPersister.java:90)
> 	at org.jboss.serial.persister.RegularObjectPersister.writeData(RegularObjectPersister.java:62)
> 	at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.describeObject(ObjectDescriptorFactory.java:276)
> 	at org.jboss.serial.objectmetamodel.DataContainer$DataContainerDirectOutput.writeObject(DataContainer.java:206)
> 	at org.jboss.serial.persister.ObjectOutputStreamProxy.writeObjectOverride(ObjectOutputStreamProxy.java:60)
> 	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
> 	at java.util.HashMap.writeObject(HashMap.java:1038)
> 	
> 	
>  ... Exception loops until app server is manually killed (Ctrl-C ignored)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list