Uploaded image for project: 'Geronimo'
  1. Geronimo
  2. GERONIMO-1596

Repeated interface in JMS connection factory plan causes deployment failure

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 1.1
    • 1.1.1, 1.2
    • ActiveMQ, deployment
    • Security Level: public (Regular issues)
    • None

    Description

      If you deploy a connection factory with an implemented-interface that has the same value as the connectionfactory-interface, then there are explosions during deployment. However, the deployment is not actually rejected, it just ends up deploying something that doesn't work. The cause appears to be generating code that implements the same interface twice – we should either silently ignore one of them (preferable) or reject the deployment alltogether (workable, I guess).

      The plan that caused this contained:
      ...
      <outbound-resourceadapter>
      <connection-definition>
      <connectionfactory-interface>
      javax.jms.TopicConnectionFactory
      </connectionfactory-interface>
      <connectiondefinition-instance>
      <name>jms/MyTopicConnectionFactory</name>
      <implemented-interface>
      javax.jms.TopicConnectionFactory
      </implemented-interface>
      ...

      And the error is:

      23:39:59,747 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: objectName="geronimo.server:J2EEApplication=null,J2EEServer=geronimo,JCAResource=MyTopicConnectionFactory,j2eeType=JCAManagedConnectionFactory,name=jms/MyTopicConnectionFactory"
      net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InvocationTargetException-->null
      at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:237)
      at net.sf.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
      at net.sf.cglib.proxy.Enhancer.create(Enhancer.java:304)
      at org.apache.geronimo.connector.outbound.ManagedConnectionFactoryWrapper.doStart(ManagedConnectionFactoryWrapper.java:215)
      at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:936)
      at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:325)
      at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:110)
      at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:132)
      at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:537)
      at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:208)
      at org.apache.geronimo.kernel.config.Configuration.startRecursiveGBeans(Configuration.java:315)
      at org.apache.geronimo.kernel.config.Configuration$$FastClassByCGLIB$$7f4b4a9b.invoke(<generated>)
      at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
      at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
      at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
      at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835)
      at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178)
      at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:173)
      at org.apache.geronimo.kernel.config.ConfigurationManagerImpl.start(ConfigurationManagerImpl.java:142)
      at org.apache.geronimo.kernel.config.ConfigurationManagerImpl$$FastClassByCGLIB$$fbed85d2.invoke(<generated>)
      at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
      at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
      at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
      at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835)
      at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178)
      at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:125)
      at org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.invoke(<generated>)
      at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
      at org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
      at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118)
      at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:835)
      at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:178)
      at org.apache.geronimo.kernel.jmx.MBeanServerDelegate.invoke(MBeanServerDelegate.java:117)
      at mx4j.remote.rmi.RMIConnectionInvoker.invoke(RMIConnectionInvoker.java:219)
      at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at mx4j.remote.rmi.RMIConnectionProxy.invoke(RMIConnectionProxy.java:34)
      at mx4j.remote.rmi.RMIConnectionSubjectInvoker.chain(RMIConnectionSubjectInvoker.java:99)
      at mx4j.remote.rmi.RMIConnectionSubjectInvoker.access$000(RMIConnectionSubjectInvoker.java:31)
      at mx4j.remote.rmi.RMIConnectionSubjectInvoker$1.run(RMIConnectionSubjectInvoker.java:90)
      at java.security.AccessController.doPrivileged(Native Method)
      at javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
      at mx4j.remote.MX4JRemoteUtils.subjectInvoke(MX4JRemoteUtils.java:163)
      at mx4j.remote.rmi.RMIConnectionSubjectInvoker.subjectInvoke(RMIConnectionSubjectInvoker.java:86)
      at mx4j.remote.rmi.RMIConnectionSubjectInvoker.invoke(RMIConnectionSubjectInvoker.java:80)
      at $Proxy0.invoke(Unknown Source)
      at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:221)
      at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
      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)
      Caused by: java.lang.reflect.InvocationTargetException
      at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384)
      at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:219)
      ... 57 more
      Caused by: java.lang.ClassFormatError: $javax/jms/TopicConnectionFactory$$EnhancerByCGLIB$$ed4b84c5 (Repetitive interface name)
      at java.lang.ClassLoader.defineClass0(Native Method)
      at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
      ... 62 more

      Attachments

        Activity

          People

            djencks David Jencks
            ammulder Aaron Mulder
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: