[ http://jira.jboss.com/jira/browse/JBAS-1268?page=history ]
Scott M Stark resolved JBAS-1268:
---------------------------------
Resolution: Done
Fix Version: JBossAS-3.2.7 Final
JBossAS-4.0.2RC1
The DescriptorSupport writeObject method now completely validates the
serializability of the descriptor field values in the writeObject method to
ensure that non-serializable values do not prevent accessibility of the mbean
in some form over connectors.
> DescriptorSupport does not validate its serializable fields adequately
> ----------------------------------------------------------------------
>
> Key: JBAS-1268
> URL: http://jira.jboss.com/jira/browse/JBAS-1268
> Project: JBoss Application Server
> Type: Bug
> Reporter: Scott M Stark
> Assignee: Scott M Stark
> Fix For: JBossAS-3.2.7 Final, JBossAS-4.0.2RC1
>
> Original Estimate: 1 hour
> Remaining: 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:
> [EMAIL PROTECTED] 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
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
JBoss-Development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-development