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

Christophe Delory (JIRA) jira-events at lists.jboss.org
Fri Dec 5 04:55:38 EST 2008


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
         Environment: Test environment Windows XP SP3
            Reporter: Christophe Delory
            Assignee: Brian Stansberry


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