Details
-
Bug
-
Resolution: Done
-
Major
-
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