[JBoss JIRA] Created: (WELD-840) Weld 1.1 breaks compatibility with groovy objects
by Jeff Howard (JIRA)
Weld 1.1 breaks compatibility with groovy objects
-------------------------------------------------
Key: WELD-840
URL: https://issues.jboss.org/browse/WELD-840
Project: Weld
Issue Type: Bug
Components: Proxies
Affects Versions: 1.1.0.Final
Environment: Groovy 1.7.6, tomcat 6, weld 1.1, JSF 2 (mojarra 2.0.3)
Reporter: Jeff Howard
Weld created proxies need to know how to work with groovy objects. Currently, weld is attempting to proxy the methods from the groovy.lang.GroovyObject interface which is confusing the groovy runtime. Groovy objects have a per-class metaclass that is getting used with the wrong class instances.
Also, weld is using hyphen characters in the generated proxy class names, which breaks groovy's dynamic invoke mechanism.
The referenced forum thread contains a patch that addresses the groovy incompatabilities in weld's ProxyFactory.java
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] Created: (WELD-893) Injection Exception classes not found
by Fernando Mato Mira (JIRA)
Injection Exception classes not found
-------------------------------------
Key: WELD-893
URL: https://issues.jboss.org/browse/WELD-893
Project: Weld
Issue Type: Bug
Environment: JBoss AS 6.0.0.Final, JBoss AS 6.1.0-SNAPSHOT
Reporter: Fernando Mato Mira
When trying to implement Seam @ViewConfig, this subsytem tries to raise an exception whose class cannot be found.
16:02:06,710 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/seamproto].[Faces Servlet]] "Servlet.service()" pour la servlet Faces Servlet a généré une exception: java.lang.NoClassDefFoundError: org/jboss/weld/injection/Exceptions
at org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:214) [:6.0.0.Final]
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:270) [:6.0.0.Final]
at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253) [:6.0.0.Final]
at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:222) [:6.0.0.Final]
at org.jboss.weld.manager.BeanManagerImpl.notifyObservers(BeanManagerImpl.java:611) [:6.0.0.Final]
at org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:604) [:6.0.0.Final]
at org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:598) [:6.0.0.Final]
at org.jboss.seam.faces.event.SeamPreNavigationHandler.handleNavigation(SeamPreNavigationHandler.java:47) [:3.0.1.Final]
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:126) [:2.0.3-]
at javax.faces.component.UICommand.broadcast(UICommand.java:311) [:2.0.3-]
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781) [:2.0.3-]
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246) [:2.0.3-]
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77) [:2.0.3-]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97) [:2.0.3-]
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114) [:2.0.3-]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308) [:2.0.3-]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:6.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.Final]
at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67) [:6.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.Final]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.0.0.Final]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [:6.0.0.Final]
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.0.0.Final]
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.Final]
at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.Final]
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.0.0.Final]
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.0.0.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [:6.0.0.Final]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.0.0.Final]
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) [:6.0.0.Final]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.0.0.Final]
at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.0.0.Final]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.0.0.Final]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.0.0.Final]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) [:6.0.0.Final]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.0.0.Final]
at java.lang.Thread.run(Unknown Source) [:1.6.0_16]
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] Created: (WELD-908) Random NPE while serializing bean sent
by Yannick Menager (JIRA)
Random NPE while serializing bean sent
---------------------------------------
Key: WELD-908
URL: https://issues.jboss.org/browse/WELD-908
Project: Weld
Issue Type: Bug
Affects Versions: 1.1.0.Final
Environment: Glassfish 3.1
Reporter: Yannick Menager
The problem happens randomly (like 50% of the time), when calling an EJB through it's remote interface, and passing a Session scoped object as an argument, resulting in an NPE:
java.lang.NullPointerException
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1088)
at java.io.ObjectOutputStream.writeUnshared(ObjectOutputStream.java:397)
at org.jboss.weld.bean.proxy.util.SerializableProxy.writeObject(SerializableProxy.java:92)
at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.corba.ee.impl.io.IIOPOutputStream.invokeObjectWriter(IIOPOutputStream.java:646)
at com.sun.corba.ee.impl.io.IIOPOutputStream.outputObject(IIOPOutputStream.java:612)
at com.sun.corba.ee.impl.io.IIOPOutputStream.simpleWriteObject(IIOPOutputStream.java:196)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueInternal(ValueHandlerImpl.java:235)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueWithVersion(ValueHandlerImpl.java:216)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:180)
at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.callWriteValue(CDROutputStream_1_0.java:852)
at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.writeRMIIIOPValueType(CDROutputStream_1_0.java:837)
at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:962)
at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:976)
at com.sun.corba.ee.impl.encoding.CDROutputObject.write_value(CDROutputObject.java:521)
at com.sun.corba.ee.impl.corba.TCUtility.marshalIn(TCUtility.java:157)
at com.sun.corba.ee.impl.corba.AnyImpl.write_value(AnyImpl.java:627)
at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_any(CDROutputStream_1_0.java:627)
at com.sun.corba.ee.impl.encoding.CDROutputObject.write_any(CDROutputObject.java:489)
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.writeAny(Util.java:366)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.write_Array(ValueHandlerImpl.java:499)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueInternal(ValueHandlerImpl.java:233)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueWithVersion(ValueHandlerImpl.java:216)
at com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:180)
at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.callWriteValue(CDROutputStream_1_0.java:852)
at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.writeArray(CDROutputStream_1_0.java:768)
at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:949)
at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:976)
at com.sun.corba.ee.impl.encoding.CDROutputObject.write_value(CDROutputObject.java:521)
at com.sun.corba.ee.impl.copyobject.ORBStreamObjectCopierImpl.copy(ORBStreamObjectCopierImpl.java:76)
at com.sun.corba.ee.impl.copyobject.ORBStreamObjectCopierImpl.copy(ORBStreamObjectCopierImpl.java:65)
at com.sun.corba.ee.impl.orbutil.copyobject.FallbackObjectCopierImpl.copy(FallbackObjectCopierImpl.java:69)
at com.sun.corba.ee.impl.orbutil.copyobject.FallbackObjectCopierImpl.copy(FallbackObjectCopierImpl.java:59)
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.copyObject(Util.java:771)
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.copyObjects(Util.java:742)
at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.copyArguments(DynamicMethodMarshallerImpl.java:439)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:227)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
------------------------------------------
import java.io.Serializable;
public class TestObj implements Serializable{
private String val;
public TestObj() {
}
public TestObj(String val) {
this.val = val;
}
public String getVal() {
return val;
}
public void setVal(String val) {
this.val = val;
}
}
------------------------------------------
@RequestScoped
@Named("test")
public class TestWeb {
@EJB
private RemoteService remoteService;
@Inject
private TestObj testObj;
@Produces
@SessionScoped
public TestObj create() {
return new TestObj("ads");
}
public String getVal() {
return remoteService.test(testObj);
}
}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] Created: (WELD-944) Improve error message for missing interceptor's class.
by Ondrej Zizka (JIRA)
Improve error message for missing interceptor's class.
------------------------------------------------------
Key: WELD-944
URL: https://issues.jboss.org/browse/WELD-944
Project: Weld
Issue Type: Enhancement
Reporter: Ondrej Zizka
Based on WELD-940:
When an interceptor or decorator is defined in beans.xml, but the class is missing, current error message is a bit misleading:
{quote}
WELD-001417 Enabled interceptor class <class>org.jboss.weld.environment.se.jpa.JpaTransactionInterceptor</class> in jar:file:/mnt/ssd1/data/.m2/repository/org/jboss/jawabot/JawaBot-core/2.0.0-SNAPSHOT/JawaBot-core-2.0.0-SNAPSHOT.jar!/META-INF/beans.xml@11 is neither annotated @Interceptor nor registered through a portable extension
at org.jboss.weld.bootstrap.Validator.validateEnabledInterceptorClasses(Validator.java:466)
{quote}
Maybe we should check whether the class is loaded, and if not, log WARN or ERROR about it.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] Created: (WELD-960) Provide a "Partial failure" bootstrap mode in Weld SE
by Lincoln Baxter III (JIRA)
Provide a "Partial failure" bootstrap mode in Weld SE
-----------------------------------------------------
Key: WELD-960
URL: https://issues.jboss.org/browse/WELD-960
Project: Weld
Issue Type: Feature Request
Components: Bootstrap and Metamodel API, Java SE Support
Affects Versions: 1.1.2.Final
Environment: JBoss Modules
Reporter: Lincoln Baxter III
When booting weld, in the case of Seam Forge, a single bad plugin (beans archive) on the classpath, will cause boostrap to fail, and the entire system exits with failure.
What is desired is a "partial-failure" mode, where beans archives that fail to load can be "veto'd" or "excluded" from the live system, with a chance to print a friendly error message or take some kind of action on that failure, while all remaining "good" plugins/beans archives continue to load and boot as normal.
The only difference at runtime is that no beans from the failed archives are made available (of course, if this caused failure in an upstream beans archive, the system would have to fail that archive as well,) but in any case, if the beans archives that failed were "standalone" and did not break all archives' bean graphs, it should be possible to proceed to boot.
This would make error recovery in Forge much easier to handle, and also open up some interesting possibilities for other modular plugin-systems.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] Created: (WELD-933) Validator.validateBean doesn't handle @Typed properly
by Mike Mosiewicz (JIRA)
Validator.validateBean doesn't handle @Typed properly
-----------------------------------------------------
Key: WELD-933
URL: https://issues.jboss.org/browse/WELD-933
Project: Weld
Issue Type: Bug
Components: Bootstrap and Metamodel API, Proxies
Affects Versions: 1.1.0.CR3
Environment: JBoss 6.0.0.Final
Reporter: Mike Mosiewicz
Here is the problem.
I've got @Typed class becouse I wanted to limit the set of proxies generated by weld becouse it's ancestors would not be proxyable. That's why I tried @Typed. And halfway it works. But just halfway. The problem I notice is here in Validator (lines 142-145)
if (normalScoped && !Beans.isBeanProxyable(bean))
{
throw Proxies.getUnproxyableTypesException(bean.getTypes());
}
My @Typed class which is annotated like this:
@Named("catalogEntityHome")
@ConversationScoped
@Typed(CatalogEntityHome.class)
public class CatalogEntityHome extends BasicDAO<CatalogEntity, ObjectId> implements Serializable {
..
The problem I observe is that Beans.isBeanProxyable checks Proxies.getUnproxyableTypesException(bean) which somehow produces non-null result. However a moment later it checks Proxies.getUnprox....(bean.getTypes()), which turns to be null. And that's what it tries to throw, like here:
09:32:58,035 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Start: name=vfs:///C:/servers/jboss-6.0.0.Final/server/default/deploy/test.war_WeldBootstrapBean state=Create: java.lang.NullPointerException
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:144) [:6.0.0.Final]
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:162) [:6.0.0.Final]
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:377) [:6.0.0.Final]
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:363) [:6.0.0.Final]
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:388) [:6.0.0.Final]
at org.jboss.weld.integration.deployer.env.helpers.BootstrapBean.boot(BootstrapBean.java:92) [:6.0.0.Final]
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months
[JBoss JIRA] Created: (WELD-765) Simplify access to a deployment's BeanManager, when its id (or the BDA id) is known
by Marius Bogoevici (JIRA)
Simplify access to a deployment's BeanManager, when its id (or the BDA id) is known
-----------------------------------------------------------------------------------
Key: WELD-765
URL: https://jira.jboss.org/browse/WELD-765
Project: Weld
Issue Type: Feature Request
Components: Weld SPI
Affects Versions: 1.1.0.Beta2
Reporter: Marius Bogoevici
Fix For: 1.1.0.Beta3
Currently, the BM id and BDA ID are practically equivalent.
Retrieving the BeanManager if said ID is known requires iterating Deployment.getBeanDeploymentArchives() until the BDA is found and then retrieving the BeanManager from the deployment by using Bootstrap.getManager(BeanDeploymentArchive beanDeploymentArchive).
This can be simplified by introducing Deployment.getBeanDeploymentArchive(String BDAid). Another possibility is to provide Bootstrap.getManager(String bdaID). Both variants would simplify the access code and make it work faster.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 10 months