[jboss-jira] [JBoss JIRA] Closed: (JBAS-1955) XMBean Interceptor for InvokerAdaptorService to deal with NonSerializableExceptions
Dimitris Andreadis (JIRA)
jira-events at jboss.com
Tue Jan 9 14:30:26 EST 2007
[ http://jira.jboss.com/jira/browse/JBAS-1955?page=all ]
Dimitris Andreadis closed JBAS-1955.
------------------------------------
Resolution: Done
I've used the patch as a starting point to create an interceptor with plugable polices:
org.jboss.jmx.connector.invoker.SerializableInterceptor
org.jboss.jmx.connector.invoker.SerializablePolicy
The default policy converts ModelMBeanInfo returned by getMBeanInfo into plain MBeanInfo, striping away the ModelMBeanAttribute infos that contain the non-serializable Descriptors that cause the trouble:
org.jboss.jmx.connector.invoker.serializablepolicy.StripModelMBeanInfoPolicy
This essentially emulates the behaviour we have with jboss 4.0.x when used with jdk1.4. I.e. you are able to read remotely over the jmx adapter MBeanInfo for all registered mbeans. Howerver, if you try to read non-serializable fields you still get a NonSerializableException.
A different policy could be created to deal with this scenario, if necessary.
The interceptor is enabled by default in deploy/jmx-invoker-service.xml:
<interceptor code="org.jboss.jmx.connector.invoker.SerializableInterceptor"
policyClass="StripModelMBeanInfoPolicy"/>
Kudos to Fabiano for the original patch.
> XMBean Interceptor for InvokerAdaptorService to deal with NonSerializableExceptions
> -----------------------------------------------------------------------------------
>
> Key: JBAS-1955
> URL: http://jira.jboss.com/jira/browse/JBAS-1955
> Project: JBoss Application Server
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Components: Management services
> Affects Versions: JBossAS-4.0.2 Final
> Environment: jmx, twiddle
> Reporter: Fabiano C. de Oliveira
> Assigned To: Dimitris Andreadis
> Fix For: JBossAS-5.0.0.Beta2, JBossAS-4.2.0.CR1
>
> Attachments: JBAS-1955a.zip
>
>
> This patch add a Interceptor to org.jboss.jmx.connector.invoker.InvokerAdaptorService besides AuthenticationInterceptor that is responsable for prevent remote clients to launch NonSerializable exception.
> The interception have 3 types of action: Invisible, Null and Wrapper.
> In the Invisible mode all NonSerializable fields are ignored so if you call getMBeanInfo all NonSerializable will be remove and returned to your remote client(twiddle, MC4J, etc). This mode is more tested so it is recommended.
> In the null mode NonSerializable fields are visible but always return Null.
> The wraper mode is not implemented, but the idea is replace the NonSerializable Class for another
> The interceptor is only a class. The tests are in the patch too. Only test for invisible mode. I´m still doing tests for the other modes.
> Any idea is very appreciated. I dont have sufficient time to work more in this code. But I hope to do soon.
--
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