You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Igor V. Stolyarov (JIRA)" <ji...@apache.org> on 2007/02/22 12:33:05 UTC

[jira] Updated: (HARMONY-3229) [classlib][luni]Synchonization issue in java.io.ObjectStreamClass.fields()

     [ https://issues.apache.org/jira/browse/HARMONY-3229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Igor V. Stolyarov updated HARMONY-3229:
---------------------------------------

    Attachment: ObjectStreamClass.patch

Patch attached

> [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.