[jboss-jira] [JBoss JIRA] Commented: (JBAS-1268) DescriptorSupport does not validate its serializable fields adequately

Steven Ostrowski (JIRA) jira-events at lists.jboss.org
Tue May 1 08:52:30 EDT 2007


    [ http://jira.jboss.com/jira/browse/JBAS-1268?page=comments#action_12360996 ] 
            
Steven Ostrowski commented on JBAS-1268:
----------------------------------------

I still seem to experience this issue on JBoss 4.0.3, when running:
twiddle info "jboss.web:service=WebServer"

I get:
12:23:45,693 ERROR [Twiddle] Exec failed
java.io.NotSerializableException: org.jboss.mx.util.MBeanProxyExt
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1369)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1341)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
        at java.util.HashMap.writeObject(HashMap.java:985)
        at sun.reflect.GeneratedMethodAccessor423.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:890)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1333)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
        at java.io.ObjectOutputStream.access$100(ObjectOutputStream.java:135)
        at java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1512)
        at java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:418)
        at javax.management.modelmbean.DescriptorSupport.writeObject(DescriptorSupport.java:1398)
        at sun.reflect.GeneratedMethodAccessor468.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:890)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1333)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1369)
        at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:380)
        at javax.management.modelmbean.ModelMBeanAttributeInfo.writeObject(ModelMBeanAttributeInfo.java:536)
        at sun.reflect.GeneratedMethodAccessor469.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:890)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1333)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
        at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1245)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1069)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1369)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1341)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
        at java.rmi.MarshalledObject.<init>(MarshalledObject.java:92)
        at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:410)
        at sun.reflect.GeneratedMethodAccessor390.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
        at sun.rmi.transport.Transport$1.run(Transport.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
        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:595)
        at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
        at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:126)
        at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source)
        at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:119)
        at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:227)
        at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:167)
        at org.jboss.jmx.connector.invoker.client.InvokerAdaptorClientInterceptor.invoke(InvokerAdaptorClientInterceptor.java:51)
        at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55)
        at org.jboss.proxy.ClientMethodInterceptor.invoke(ClientMethodInterceptor.java:59)
        at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86)
        at $Proxy0.getMBeanInfo(Unknown Source)
        at org.jboss.console.twiddle.command.InfoCommand.execute(InfoCommand.java:112)
        at org.jboss.console.twiddle.Twiddle.main(Twiddle.java:290)

> DescriptorSupport does not validate its serializable fields adequately
> ----------------------------------------------------------------------
>
>                 Key: JBAS-1268
>                 URL: http://jira.jboss.com/jira/browse/JBAS-1268
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>            Reporter: Scott M Stark
>         Assigned To: Scott M Stark
>             Fix For:  JBossAS-4.0.2RC1, JBossAS-3.2.7 Final
>
>   Original Estimate: 1 hour
>  Remaining Estimate: 1 hour
>
> Although the javax.management.modelmbean.DescriptorSupport does attempt to validate whether its fields are Serializable, it does not validate all of the values references. This causes failures when accessing mbeans over rmi as shown in this twiddle example:
> [starksm at banshee9100 bin]$ twiddle.sh -s lamia:1099 invoke "jboss.web:service=WebServer" stopConnectors
> 21:49:02,437 ERROR [Twiddle] Exec failed
> java.lang.reflect.UndeclaredThrowableException
>         at $Proxy0.getMBeanInfo(Unknown Source)
>         at org.jboss.console.twiddle.command.InvokeCommand.invoke(InvokeCommand.java:173)
>         at org.jboss.console.twiddle.command.InvokeCommand.execute(InvokeCommand.java:277)
>         at org.jboss.console.twiddle.Twiddle.main(Twiddle.java:288)
> Caused by: java.io.NotSerializableException: org.jboss.mx.util.MBeanProxyExt
>         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
>         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 java.util.HashMap.writeObject(HashMap.java:978)
>         at sun.reflect.GeneratedMethodAccessor63.invoke(Unknown Source)
>         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 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
>         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
>         at java.io.ObjectOutputStream.access$100(ObjectOutputStream.java:122)
>         at java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1475)
>         at java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:405)
>         at javax.management.modelmbean.DescriptorSupport.writeObject(DescriptorSupport.java:559)
>         at sun.reflect.GeneratedMethodAccessor62.invoke(Unknown Source)
>         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 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
>         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
>         at java.io.ObjectOutputStream.access$100(ObjectOutputStream.java:122)
>         at java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1475)
>         at java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:405)
>         at javax.management.modelmbean.ModelMBeanAttributeInfo.writeObject(ModelMBeanAttributeInfo.java:312)
>         at sun.reflect.GeneratedMethodAccessor61.invoke(Unknown Source)
>         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 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1247)
>         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
>         at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1224)
>         at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1050)
>         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 java.rmi.MarshalledObject.<init>(MarshalledObject.java:92)
>         at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:364)
>         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)
>         at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
>         at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
>         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
>         at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source)
>         at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProxy.java:135)
>         at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:163)
>         at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:103)
>         at org.jboss.jmx.connector.invoker.client.InvokerAdaptorClientInterceptor.invoke(InvokerAdaptorClientInterceptor.java:60)
>         at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:55)
>         at org.jboss.proxy.ClientMethodInterceptor.invoke(ClientMethodInterceptor.java:55)
>         at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:91)
>         ... 4 more

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

        



More information about the jboss-jira mailing list