Uploaded image for project: 'Weld'
  1. Weld
  2. WELD-1669

Missing type argument class causes deployment failure

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 1.1.22.Final
    • 1.1.21.Final
    • None
    • None

    Description

      If a class which is used as type argument is missing from the deployment, an exception is thrown and the deployment fails.

      The behaviour should be consistent with other similar cases (WELD-1215, WELD-1515), and the broken class should just be ignored and not cause a deployment failure.

      Example, Bar.class is missing:

      public class FooBarProducer {
          
          public Foo<Bar> produceFooBar() {
              return new Foo<Bar>();
          }
      }
      

      Result:

      19:15:49,504 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC000001: Failed to start service jboss.deployment.unit."0d036027-2297-41de-95ae-9d2d1dd562ca.jar".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."0d036027-2297-41de-95ae-9d2d1dd562ca.jar".WeldStartService: Failed to start service
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1936) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_17]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_17]
      	at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_17]
      Caused by: org.jboss.weld.exceptions.WeldException: WELD-000830 Unable to load the cache value for the key class reproducer.FooBarProducer
      	at org.jboss.weld.util.cache.LoadingCacheUtils.getCacheValue(LoadingCacheUtils.java:73)
      	at org.jboss.weld.util.cache.LoadingCacheUtils.getCastCacheValue(LoadingCacheUtils.java:112)
      	at org.jboss.weld.util.cache.LoadingCacheUtils.getCastCacheValue(LoadingCacheUtils.java:93)
      	at org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:164)
      	at org.jboss.weld.bootstrap.BeanDeployer.loadWeldClass(BeanDeployer.java:116)
      	at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:79)
      	at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:135)
      	at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:184)
      	at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:349)
      	at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:63)
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
      	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
      	... 3 more
      Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.TypeNotPresentException: Type reproducer.Bar not present
      	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2258)
      	at com.google.common.cache.LocalCache.get(LocalCache.java:3990)
      	at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3994)
      	at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4878)
      	at org.jboss.weld.util.cache.LoadingCacheUtils.getCacheValue(LoadingCacheUtils.java:71)
      	... 14 more
      Caused by: java.lang.TypeNotPresentException: Type reproducer.Bar not present
      	at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117) [rt.jar:1.7.0_17]
      	at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125) [rt.jar:1.7.0_17]
      	at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) [rt.jar:1.7.0_17]
      	at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68) [rt.jar:1.7.0_17]
      	at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138) [rt.jar:1.7.0_17]
      	at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) [rt.jar:1.7.0_17]
      	at sun.reflect.generics.repository.MethodRepository.getReturnType(MethodRepository.java:68) [rt.jar:1.7.0_17]
      	at java.lang.reflect.Method.getGenericReturnType(Method.java:244) [rt.jar:1.7.0_17]
      	at org.jboss.weld.introspector.jlr.WeldMethodImpl.of(WeldMethodImpl.java:70)
      	at org.jboss.weld.introspector.jlr.WeldClassImpl.<init>(WeldClassImpl.java:241)
      	at org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:126)
      	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.load(ClassTransformer.java:60)
      	at org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.load(ClassTransformer.java:51)
      	at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3589)
      	at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2374)
      	at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2337)
      	at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2252)
      	... 18 more
      Caused by: java.lang.ClassNotFoundException: reproducer.Bar from [Module "deployment.0d036027-2297-41de-95ae-9d2d1dd562ca.jar:main" from Service Module Loader]
      	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.3.Final-redhat-1]
      	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final-redhat-1]
      	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final-redhat-1]
      	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final-redhat-1]
      	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final-redhat-1]
      	at java.lang.Class.forName0(Native Method) [rt.jar:1.7.0_17]
      	at java.lang.Class.forName(Class.java:266) [rt.jar:1.7.0_17]
      	at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114) [rt.jar:1.7.0_17]
      	... 34 more
      

      Attachments

        Activity

          People

            mkouba@redhat.com Martin Kouba
            rsmeral Ron Šmeral (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: