Bug 1086555
| Summary: | [GSS] (6.4) Weld - Specialization of generic beans throws inappropriate exception | ||
|---|---|---|---|
| Product: | [JBoss] JBoss Enterprise Application Platform 6 | Reporter: | Tomas Remes <tremes> |
| Component: | CDI/Weld | Assignee: | Jozef Hartinger <jharting> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Tomas Remes <tremes> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 6.1.0, 6.2.0, 6.1.1, 6.2.1, 6.2.2, 6.2.3 | CC: | bbaranow, cdewolf, jharting, kkhan |
| Target Milestone: | DR1 | ||
| Target Release: | EAP 6.4.0 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: |
In a previous release of JBoss EAP 6, setting a specialization on a generic bean resulted in a `DefinitionException` being thrown.
This behavior was not intended as has been addressed in this release. Setting a specialization on a generic bean now operates as expected.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2019-08-19 12:38:55 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 1111092 | ||
| Bug Blocks: | |||
Jozef Hartinger <jharting> updated the status of jira WELD-1651 to Resolved BUmping to 6.3.1 and 6.4 Doc text for 6.3 ? *** Bug 1120079 has been marked as a duplicate of this bug. *** Verified on 6.4.0.DR2 release. |
Basically having following class in your deployment: public class BeanDefault<T extends AbstractClass> {} and its speciliazation like this: @Specializes public class BeanCustom<T extends AbstractClass> extends BeanDefault<T> {} You get following exception (which is IMHO inappropriate) during Weld boot time: org.jboss.weld.exceptions.DefinitionException: WELD-001511 Specializing bean Managed Bean [class mypackage.BeanCustom] with qualifiers [@Any @Default] does not have bean type class mypackage.BeanDefault<T> of specialized bean Managed Bean [class mypackage.BeanDefault] with qualifiers [@Any @Default] at org.jboss.weld.bean.AbstractBean.postSpecialize(AbstractBean.java:287) at org.jboss.weld.bean.AbstractBean.initialize(AbstractBean.java:124) at org.jboss.weld.bean.AbstractClassBean.initialize(AbstractClassBean.java:175) at org.jboss.weld.bean.ManagedBean.initialize(ManagedBean.java:329) at org.jboss.weld.bootstrap.AbstractBeanDeployer.deploy(AbstractBeanDeployer.java:117) at org.jboss.weld.bootstrap.BeanDeployment.deployBeans(BeanDeployment.java:217) at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:357) 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] It manifest with following exception in versions prior to EAP 6.3.0 (Weld 1.1.19.Final): Caused by: org.jboss.weld.exceptions.DefinitionException: Exception message for key SPECIALIZING_BEAN_MISSING_SPECIALIZED_TYPE not found due to Can't find resource for bundle ch.qos.cal10n.util.CAL10NResourceBundle, key SPECIALIZING_BEAN_MISSING_SPECIALIZED_TYPE at org.jboss.weld.bean.AbstractBean.postSpecialize(AbstractBean.java:287) at org.jboss.weld.bean.AbstractBean.initialize(AbstractBean.java:124) at org.jboss.weld.bean.AbstractClassBean.initialize(AbstractClassBean.java:175) at org.jboss.weld.bean.ManagedBean.initialize(ManagedBean.java:329) at org.jboss.weld.bootstrap.AbstractBeanDeployer.deploy(AbstractBeanDeployer.java:117) at org.jboss.weld.bootstrap.BeanDeployment.deployBeans(BeanDeployment.java:217) at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:357) at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:63) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]