harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Igor V. Stolyarov (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-3229) [classlib][luni]Synchonization issue in java.io.ObjectStreamClass.fields()
Date Thu, 22 Feb 2007 11:33:05 GMT
[classlib][luni]Synchonization issue in java.io.ObjectStreamClass.fields()
--------------------------------------------------------------------------

                 Key: HARMONY-3229
                 URL: https://issues.apache.org/jira/browse/HARMONY-3229
             Project: Harmony
          Issue Type: Bug
          Components: App-Oriented Bug Reports
            Reporter: Igor V. Stolyarov
         Attachments: ObjectStreamClass.patch

This issue is appearing when many clients are connecting to JBoss AS.
Stack trace is below:

16:34:33,576 INFO  [STDOUT] java.lang.NullPointerException: 
	at java.io.ObjectStreamClass.buildFieldDescriptors(ObjectStreamClass.java:344)
	at java.io.ObjectStreamClass.fields(ObjectStreamClass.java)
	at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java)
	at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:310)
	at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java)
	at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1296)
	at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1672)
	at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1947)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1783)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1747)
	at java.util.HashMap.writeObject(HashMap.java:706)
	at java.lang.reflect.VMReflection.invokeMethod(VMReflection.java)
	at java.lang.reflect.Method.invoke(Method.java:381)
	at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1315)
	at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1672)
	at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1947)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1783)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java)
	at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1233)
	at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:310)
	at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java)
	at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1672)
	at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1947)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1783)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1747)
	at org.jboss.invocation.MarshalledValue.<init>(MarshalledValue.java:69)
	at org.jboss.invocation.MarshalledValueEX.<init>(MarshalledValueEX.java)
	at org.jboss.invocation.unified.interfaces.JavaSerializationManager.createdMarshalledValue(JavaSerializationManager.java:105)
	at org.jboss.invocation.InvokerInterceptor.createMarshalledValueForCallByValue(InvokerInterceptor.java:279)
	at org.jboss.invocation.InvokerInterceptor.createInvocationCopy(InvokerInterceptor.java:327)
	at org.jboss.invocation.InvokerInterceptor.invokeLocalMarshalled(InvokerInterceptor.java:286)
	at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.java:60)
	at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61)
	at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70)
	at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112)
	at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:95)
	at $Proxy138.getCustomerInfo(Unknown Source)
	at org.spec.jappserver.servlet.helper.SpecAction.getCustomerData(SpecAction.java:513)
	at org.spec.jappserver.servlet.helper.SpecServletAction.doHome(SpecServletAction.java:201)
	at org.spec.jappserver.servlet.helper.SpecServletAction.doLogin(SpecServletAction.java:267)
	at org.spec.jappserver.servlet.SpecAppServlet.performTask(SpecAppServlet.java:144)
	at org.spec.jappserver.servlet.SpecAppServlet.doGet(SpecAppServlet.java:94)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:694)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:808)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:171)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:90)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:171)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:662)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:109)
	at java.lang.Thread.run(Thread.java:660)

Investigation of this issue shows what method buildFieldDescriptors is calling from two places.
First - from synchronized method addToCache and from non-synchronized method fields.
This issue is eliminating by adding synchronized block to the fields method.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message