[jira] Updated: (GERONIMO-2222) Application errors in static initialization blocks during serialization of configuration during deployment due to incorrect TCCL

2006-07-24 Thread John Sisson (JIRA)
 [ http://issues.apache.org/jira/browse/GERONIMO-?page=all ]

John Sisson updated GERONIMO-:
--

Attachment: jira-g-.zip

Test application attached that prints out the TCCL during static initialization 
in an EJB.   If you deploy the EAR you will see the following messages (when 
this bug exists).  The static initializer gets called twice (once during 
serialization during deployment and the 2nd time when the configuration is 
started).  Notice that the TCCL differs between the two.

BugReproBean static initializer called
  Thread.currentThread().getContextClassLoader() = 
[org.apache.geronimo.kernel.classloader.JarFileClassLoader 
id=geronimo/j2ee-security/1.1.1-SNAPSHOT/car]
  BugReproBean.class.getClassLoader( = 
[org.apache.geronimo.kernel.classloader.JarFileClassLoader 
id=geronimo-test/jira-g-/1.0-SNAPSHOT/ear]
BugReproBean static initializer finished

BugReproBean static initializer called
  Thread.currentThread().getContextClassLoader() = 
[org.apache.geronimo.kernel.classloader.JarFileClassLoader 
id=geronimo-test/jira-g-/1.0-SNAPSHOT/ear]
  BugReproBean.class.getClassLoader( = 
[org.apache.geronimo.kernel.classloader.JarFileClassLoader 
id=geronimo-test/jira-g-/1.0-SNAPSHOT/ear]
BugReproBean static initializer finished

 Application errors in static initialization blocks during serialization of 
 configuration during deployment  due to incorrect TCCL
 -

 Key: GERONIMO-
 URL: http://issues.apache.org/jira/browse/GERONIMO-
 Project: Geronimo
  Issue Type: Bug
  Security Level: public(Regular issues) 
  Components: deployment
Affects Versions: 1.0, 1.1
Reporter: John Sisson
 Assigned To: John Sisson
Priority: Blocker
 Fix For: 1.1.1

 Attachments: jira-g-.zip


 h1. Problem
 Exceptions and/or errors may occur in static initialization blocks invoked 
 whilst loading classes when serializing a configuration during deployment.  
 These same exceptions/errors don't occur when starting the configuration.
 h1. Symptoms
 Deployment of an EAR that has dependencies on its own copy of Xerces will 
 cause an exception similar to the following if Xerces is initialised in a 
 static block.
 {code}
 java.lang.ClassCastException
 at org.apache.xerces.parsers.DOMParser.init(Unknown Source)
 at org.apache.xerces.parsers.DOMParser.init(Unknown Source)
 at com.foo.server.ejb.MyEJB.clinit
 at java.io.ObjectStreamClass.hasStaticInitializer(Native Method)
 at 
 java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1557)
 at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:47)
 at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:173)
 at java.security.AccessController.doPrivileged(Native Method)
 at 
 java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:170)
 at java.io.ObjectStreamClass.writeNonProxy(ObjectStreamClass.java:557)
 at 
 java.io.ObjectOutputStream.writeClassDescriptor(ObjectOutputStream.java:591)
 at 
 java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1142)
 at 
 java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1100)
 at java.io.ObjectOutputStream.writeClass(ObjectOutputStream.java:1082)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:996)
 at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
 at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
 at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
 at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
 at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
 at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
 at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
 at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
   

[jira] Updated: (GERONIMO-2222) Application errors in static initialization blocks during serialization of configuration during deployment due to incorrect TCCL

2006-07-24 Thread John Sisson (JIRA)
 [ http://issues.apache.org/jira/browse/GERONIMO-?page=all ]

John Sisson updated GERONIMO-:
--

Attachment: GERONIMO--v1.patch

Proposed patch attached.  Has been tested using the application previously 
attached to this JIRA.

 Application errors in static initialization blocks during serialization of 
 configuration during deployment  due to incorrect TCCL
 -

 Key: GERONIMO-
 URL: http://issues.apache.org/jira/browse/GERONIMO-
 Project: Geronimo
  Issue Type: Bug
  Security Level: public(Regular issues) 
  Components: deployment
Affects Versions: 1.0, 1.1
Reporter: John Sisson
 Assigned To: John Sisson
Priority: Blocker
 Fix For: 1.1.1

 Attachments: GERONIMO--v1.patch, jira-g-.zip


 h1. Problem
 Exceptions and/or errors may occur in static initialization blocks invoked 
 whilst loading classes when serializing a configuration during deployment.  
 These same exceptions/errors don't occur when starting the configuration.
 h1. Symptoms
 Deployment of an EAR that has dependencies on its own copy of Xerces will 
 cause an exception similar to the following if Xerces is initialised in a 
 static block.
 {code}
 java.lang.ClassCastException
 at org.apache.xerces.parsers.DOMParser.init(Unknown Source)
 at org.apache.xerces.parsers.DOMParser.init(Unknown Source)
 at com.foo.server.ejb.MyEJB.clinit
 at java.io.ObjectStreamClass.hasStaticInitializer(Native Method)
 at 
 java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1557)
 at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:47)
 at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:173)
 at java.security.AccessController.doPrivileged(Native Method)
 at 
 java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:170)
 at java.io.ObjectStreamClass.writeNonProxy(ObjectStreamClass.java:557)
 at 
 java.io.ObjectOutputStream.writeClassDescriptor(ObjectOutputStream.java:591)
 at 
 java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1142)
 at 
 java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1100)
 at java.io.ObjectOutputStream.writeClass(ObjectOutputStream.java:1082)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:996)
 at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
 at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
 at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
 at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
 at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
 at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
 at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
 at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
 at 
 org.apache.geronimo.gbean.GBeanData.writeExternal(GBeanData.java:187)
 at 
 org.apache.geronimo.kernel.config.SerializedGBeanState.storeGBeans(SerializedGBeanState.java:139)
 at 
 org.apache.geronimo.kernel.config.SerializedGBeanState.writeObject(SerializedGBeanState.java:92)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at 
 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:809)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1296)
 at 
 

[jira] Updated: (GERONIMO-2222) Application errors in static initialization blocks during serialization of configuration during deployment due to incorrect TCCL

2006-07-24 Thread John Sisson (JIRA)
 [ http://issues.apache.org/jira/browse/GERONIMO-?page=all ]

John Sisson updated GERONIMO-:
--

Attachment: jira-g--xerces-test.zip

Attached test application that demonstrates Xerces problem when TCCL is not 
correctly set during deployment.  Need to build using m2 (mvn install) and use 
deploy script in root directory.

 Application errors in static initialization blocks during serialization of 
 configuration during deployment  due to incorrect TCCL
 -

 Key: GERONIMO-
 URL: http://issues.apache.org/jira/browse/GERONIMO-
 Project: Geronimo
  Issue Type: Bug
  Security Level: public(Regular issues) 
  Components: deployment
Affects Versions: 1.1, 1.0
Reporter: John Sisson
 Assigned To: John Sisson
Priority: Blocker
 Fix For: 1.1.1

 Attachments: GERONIMO--v1.patch, jira-g--xerces-test.zip, 
 jira-g-.zip


 h1. Problem
 Exceptions and/or errors may occur in static initialization blocks invoked 
 whilst loading classes when serializing a configuration during deployment.  
 These same exceptions/errors don't occur when starting the configuration.
 h1. Symptoms
 Deployment of an EAR that has dependencies on its own copy of Xerces will 
 cause an exception similar to the following if Xerces is initialised in a 
 static block.
 {code}
 java.lang.ClassCastException
 at org.apache.xerces.parsers.DOMParser.init(Unknown Source)
 at org.apache.xerces.parsers.DOMParser.init(Unknown Source)
 at com.foo.server.ejb.MyEJB.clinit
 at java.io.ObjectStreamClass.hasStaticInitializer(Native Method)
 at 
 java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1557)
 at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:47)
 at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:173)
 at java.security.AccessController.doPrivileged(Native Method)
 at 
 java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:170)
 at java.io.ObjectStreamClass.writeNonProxy(ObjectStreamClass.java:557)
 at 
 java.io.ObjectOutputStream.writeClassDescriptor(ObjectOutputStream.java:591)
 at 
 java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1142)
 at 
 java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1100)
 at java.io.ObjectOutputStream.writeClass(ObjectOutputStream.java:1082)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:996)
 at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
 at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
 at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
 at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
 at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
 at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
 at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1332)
 at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1304)
 at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
 at 
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
 at 
 org.apache.geronimo.gbean.GBeanData.writeExternal(GBeanData.java:187)
 at 
 org.apache.geronimo.kernel.config.SerializedGBeanState.storeGBeans(SerializedGBeanState.java:139)
 at 
 org.apache.geronimo.kernel.config.SerializedGBeanState.writeObject(SerializedGBeanState.java:92)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:324)
 at 
 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:809)
 at