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

Unable to deploy ejb with custom annotation

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 2.2
    • 2.1.6, 2.2.1
    • OpenEJB
    • Security Level: public (Regular issues)
    • None

    Description

      Simple tast case:

      @Stateless
      @Local(Test.class)
      @Custom(type = CustomType.A)
      public class TestBean implements Test {
      @Override
      public void foo() {
      }
      }

      @Target(ElementType.TYPE)
      @Retention(RetentionPolicy.RUNTIME)
      public @interface Custom {
      CustomType[] type() default {}; // works fine for non-array CustomType type();
      }

      public enum CustomType {
      A, B
      }

      geronimo.log:

      2009-11-03 14:05:17,138 ERROR [Deployer] Deployment failed due to
      java.lang.ArrayStoreException: sun.reflect.annotation.AnnotationTypeMismatchExceptionProxy
      at sun.reflect.annotation.AnnotationParser.parseEnumArray(AnnotationParser.java:673)
      at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:462)
      at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286)
      at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222)
      at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
      at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
      at java.lang.Class.initAnnotationsIfNecessary(Class.java:3070)
      at java.lang.Class.getAnnotation(Class.java:3029)
      at java.lang.Class.isAnnotationPresent(Class.java:3042)
      at org.apache.xbean.finder.ClassFinder.findAnnotatedClasses(ClassFinder.java:241)
      at org.apache.openejb.config.AnnotationDeployer$DiscoverAnnotatedBeans.deploy(AnnotationDeployer.java:459)
      at org.apache.openejb.config.AnnotationDeployer$DiscoverAnnotatedBeans.deploy(AnnotationDeployer.java:253)
      at org.apache.openejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:188)
      at org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:247)
      at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:601)
      at org.apache.geronimo.openejb.deployment.EjbModuleBuilder.configureApplication(EjbModuleBuilder.java:635)
      at org.apache.geronimo.openejb.deployment.EjbModuleBuilder.getEjbJarInfo(EjbModuleBuilder.java:568)
      at org.apache.geronimo.openejb.deployment.EjbModuleBuilder.initContext(EjbModuleBuilder.java:493)
      at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:592)
      at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:257)
      at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:136)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
      at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
      at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:851)
      at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:237)
      at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:342)
      at sun.reflect.GeneratedMethodAccessor159.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
      at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:130)
      at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:851)
      at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:237)
      at org.apache.geronimo.system.jmx.MBeanGBeanBridge.invoke(MBeanGBeanBridge.java:172)
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
      at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
      at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1426)
      at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
      at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264)
      at java.security.AccessController.doPrivileged(Native Method)
      at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1366)
      at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
      at sun.reflect.GeneratedMethodAccessor142.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
      at sun.rmi.transport.Transport$1.run(Transport.java:159)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)

      It seems to related with https://issues.apache.org/jira/browse/OPENEJB-951

      Attachments

        1. test-custom-annotation-ejb-1.0.0-sources.jar
          2 kB
          Aleksey Kaigorodov
        2. test-custom-annotation-ejb-1.0.0.jar
          4 kB
          Aleksey Kaigorodov
        3. G4945.patch
          0.8 kB
          Ben Liang

        Activity

          People

            rwonly Lei Wang
            amkad Aleksey Kaigorodov
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: