You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "John Sisson (JIRA)" <de...@geronimo.apache.org> on 2006/07/27 16:22:14 UTC

[jira] Updated: (GERONIMO-2233) Deployment fails with InvalidConfigException: Unable to deserialize GBeanState when Sun JMX RI JAR is on classpath in EAR

     [ http://issues.apache.org/jira/browse/GERONIMO-2233?page=all ]

John Sisson updated GERONIMO-2233:
----------------------------------

    Attachment: jira-g-2233.zip

Attached test maven project that builds an ear that reproduces the problem.  You will need to manually download the "JMX 1.2 Reference Implementation" binrary from http://java.sun.com/products/JavaManagement/download.html, extract the jmxri.jar file from it and place it in your m2 local repository.

See deploy and undeploy scripts in root dir of attached zip.

> Deployment fails with InvalidConfigException: Unable to deserialize GBeanState when Sun JMX RI JAR is on classpath in EAR
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: GERONIMO-2233
>                 URL: http://issues.apache.org/jira/browse/GERONIMO-2233
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: deployment
>    Affects Versions: 1.1, 1.0
>            Reporter: John Sisson
>            Priority: Minor
>             Fix For: 1.1.x
>
>         Attachments: jira-g-2233.zip
>
>
> h1. Problem
> Deployment of an EAR that contains the Sun JMX RI 1.2 JAR in the classpath set in the META-INF/MANIFEST.MF file of the JAR in the EAR fails.
> h1. Symptoms
> The following error is seen on the server console:
> {code}
> 23:58:47,831 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: abstractName="geronimo-test/jira-g-n
> nnn/1.0-SNAPSHOT/ear?configurationName=geronimo-test/jira-g-nnnn/1.0-SNAPSHOT/ear"
> org.apache.geronimo.kernel.config.InvalidConfigException: Unable to deserialize GBeanState
>         at org.apache.geronimo.kernel.config.SerializedGBeanState.loadGBeans(SerializedGBeanState.java:120)
>         at org.apache.geronimo.kernel.config.SerializedGBeanState.getGBeans(SerializedGBeanState.java:65)
>         at org.apache.geronimo.kernel.config.ConfigurationData.getGBeans(ConfigurationData.java:171)
>         at org.apache.geronimo.kernel.config.Configuration.<init>(Configuration.java:277)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
>         at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:933)
>         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:267)
>         at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
>         at org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:526)
>         at org.apache.geronimo.kernel.basic.BasicKernel.startGBean(BasicKernel.java:361)
>         at org.apache.geronimo.kernel.config.KernelConfigurationManager.load(KernelConfigurationManager.java:161)
>         at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConfiguration(SimpleConfigurationManager.java:292)
>         at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConfiguration(SimpleConfigurationManager.java:260)
>         at org.apache.geronimo.kernel.config.SimpleConfigurationManager.loadConfiguration(SimpleConfigurationManager.java:235)
>         at org.apache.geronimo.kernel.config.KernelConfigurationManager.loadConfiguration(KernelConfigurationManager.java:112)
>         at org.apache.geronimo.kernel.config.KernelConfigurationManager$$FastClassByCGLIB$$b117102f.invoke(<generated>)
>         at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>         at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>         at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122)
>         at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:852)
>         at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
>         at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:338)
>         at org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)
>         at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>         at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>         at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:122)
>         at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:852)
>         at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
>         at org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:168)
>         at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:221)
>         at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:120)
>         at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:84)
>         at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:120)
>         at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:120)
>         at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:203
> )
>         at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1043)
>         at mx4j.remote.rmi.RMIConnectionInvoker.invoke(RMIConnectionInvoker.java:219)
>         at sun.reflect.GeneratedMethodAccessor347.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:324)
>         at mx4j.remote.rmi.RMIConnectionProxy.invoke(RMIConnectionProxy.java:34)
>         at mx4j.remote.rmi.RMIConnectionSubjectInvoker.chain(RMIConnectionSubjectInvoker.java:99)
>         at mx4j.remote.rmi.RMIConnectionSubjectInvoker.access$000(RMIConnectionSubjectInvoker.java:31)
>         at mx4j.remote.rmi.RMIConnectionSubjectInvoker$1.run(RMIConnectionSubjectInvoker.java:90)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
>         at mx4j.remote.MX4JRemoteUtils.subjectInvoke(MX4JRemoteUtils.java:163)
>         at mx4j.remote.rmi.RMIConnectionSubjectInvoker.subjectInvoke(RMIConnectionSubjectInvoker.java:86)
>         at mx4j.remote.rmi.RMIConnectionSubjectInvoker.invoke(RMIConnectionSubjectInvoker.java:80)
>         at $Proxy0.invoke(Unknown Source)
>         at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:221)
>         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 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
>         at sun.rmi.transport.Transport$1.run(Transport.java:148)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
>         at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
>         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
>         at java.lang.Thread.run(Thread.java:534)
> Caused by: java.lang.ClassCastException: cannot assign instance of javax.management.ObjectName to field org.apache.geronimo.gbean.Ab
> stractName.objectName of type javax.management.ObjectName in instance of org.apache.geronimo.gbean.AbstractName
>         at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:1885)
>         at java.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass.java:1076)
>         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1851)
>         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1769)
>         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1646)
>         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
>         at org.apache.geronimo.gbean.GBeanData.readExternal(GBeanData.java:222)
>         at org.apache.geronimo.kernel.config.SerializedGBeanState.loadGBeans(SerializedGBeanState.java:111)
>         ... 64 more
> {code}
> h1. Cause
> Yet to be determined.  
> The following also has no effect on the problem when specified in the environment section of the deployment plan:
> {code}
> <non-overridable-classes>
>         <filter>javax.management</filter>
> </non-overridable-classes>
> {code}
> h1. Solution
> Yet to be determined.
> h1. Workaround
> Removal of the sun JMX RI jar from the classpath prevents the problem.

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