[jboss-jira] [JBoss JIRA] Resolved: (JBAS-6284) ProxyFactoryHA BasicMBeanRegistry "null object name"

Brian Stansberry (JIRA) jira-events at lists.jboss.org
Tue Dec 9 21:57:47 EST 2008


     [ https://jira.jboss.org/jira/browse/JBAS-6284?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Brian Stansberry resolved JBAS-6284.
------------------------------------

    Resolution: Done


Fixed by passing the ProxyFactoryHA's ObjectName to the InvokerHA rather than the target service's ObjectName.

> ProxyFactoryHA BasicMBeanRegistry "null object name"
> ----------------------------------------------------
>
>                 Key: JBAS-6284
>                 URL: https://jira.jboss.org/jira/browse/JBAS-6284
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Clustering
>    Affects Versions: JBossAS-4.2.3.GA, JBossAS-5.0.0.GA
>         Environment: Test environment Windows XP SP3
>            Reporter: Christophe Delory
>            Assignee: Brian Stansberry
>             Fix For: JBossAS-5.0.1.CR1, JBossAS-4.2.4.GA
>
>
> I run in a JBoss cluster (my test involves here only 1 node in the default partition).
> I want to declare a HA proxy factory for my distributed service.
> Thus I add the following XML snippet in my service.xml file:
> <mbean code="org.jboss.proxy.generic.ProxyFactoryHA" name="the object name of my proxy factory">
>         <depends optional-attribute-name="InvokerName">jboss:service=invoker,type=jrmpha</depends>
>         <depends optional-attribute-name="TargetName">the object name of my target service</depends>
>         <attribute name="JndiName">my target service JNDI name</attribute>
>         <attribute name="InvokeTargetMethod">true</attribute>
>         <attribute name="ExportedInterfaces">the public interface of my target service</attribute>
>         <attribute name="ClientInterceptors">
>             <interceptors>
>                 <interceptor>org.jboss.proxy.ClientMethodInterceptor</interceptor>
>                 <interceptor>org.jboss.invocation.InvokerInterceptor</interceptor>
>             </interceptors>
>         </attribute>
>         <attribute name="PartitionObjectName">jboss:service=${jboss.partition.name:DefaultPartition}</attribute>
>         <attribute name="LoadBalancePolicy">org.jboss.ha.framework.interfaces.RoundRobin</attribute>
>     </mbean>
> When I invoke the proxy, I get the following stack trace :
> java.lang.IllegalArgumentException: null object name
> 	at org.jboss.mx.server.registry.BasicMBeanRegistry.get(BasicMBeanRegistry.java:509)
> 	at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:653)
> 	at org.jboss.invocation.jrmp.server.JRMPInvokerHA.invoke(JRMPInvokerHA.java:177)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> 	at java.lang.reflect.Method.invoke(Unknown Source)
> 	at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
> 	at sun.rmi.transport.Transport$1.run(Unknown Source)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at sun.rmi.transport.Transport.serviceCall(Unknown Source)
> 	at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
> 	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
> 	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> 	at java.lang.Thread.run(Unknown Source)
> 	at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
> 	at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
> 	at sun.rmi.server.UnicastRef.invoke(Unknown Source)
> 	at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source)
> 	at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxyHA.invoke(JRMPInvokerProxyHA.java:211)
> 	at org.jboss.invocation.InvokerInterceptor.invokeInvoker(InvokerInterceptor.java:365)
> 	at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:197)
> 	at org.jboss.proxy.ClientMethodInterceptor.invoke(ClientMethodInterceptor.java:74)
> 	at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100)
> 	at $Proxy65.<my remote method>(Unknown Source)
> 	at <the initial invocation of the remote method>.<my remote method>(Unknown Source)
>         ......
> I made the exact same test using the "normal" (i.e. not cluster-aware) version of the proxy factory : in the service.xml file,
> I changed the code attribute of the bean to "org.jboss.invocation.jrmp.server.JRMPProxyFactory",
> I changed the name of the invoker to "jboss:service=invoker,type=jrmp", and
> I removed the two attributes dedicated to the clustered version (PartitionObjectName and LoadBalancePolicy).
> The invocation of my public remote method raised no error.
> Thus there are two cases : either I miss something in the XML declaration of the HA proxy factory, or there is a bug in the underlying implementation.
> Thanks for your help.

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

        



More information about the jboss-jira mailing list