Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-6284

ProxyFactoryHA BasicMBeanRegistry "null object name"

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: JBossAS-4.2.3.GA, JBossAS-5.0.0.GA
    • Fix Version/s: JBossAS-5.0.1.GA
    • Component/s: Clustering
    • Labels:
      None
    • Environment:

      Test environment Windows XP SP3

      Description

      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.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                brian.stansberry Brian Stansberry
                Reporter:
                cdelory Christophe Delory
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: