[JBoss JIRA] (WELD-1037) IllegalStateException when redirecting from system event in JSF managed bean
by Kristof Vanbecelaere (Created) (JIRA)
IllegalStateException when redirecting from system event in JSF managed bean
----------------------------------------------------------------------------
Key: WELD-1037
URL: https://issues.jboss.org/browse/WELD-1037
Project: Weld
Issue Type: Bug
Components: Web Tier integration (JSF, JSP, EL and Servlet)
Affects Versions: 1.1.2.Final
Environment: JBoss AS7
Reporter: Kristof Vanbecelaere
I have a view with a system event like so
<f:metadata>
<f:event type="preRenderView" listener="#{fileUploadBean.checkAccessToken}" />
</f:metadata>
the listener is just a faces managed bean and performs a redirect using FacesContext.getCurrentInstance().getExternalContext().redirect(...);
This leads to an exception. When I disable Weld by removing the empty beans.xml file the redirect works fine.
java.lang.IllegalStateException
org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:436)
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:170)
org.jboss.weld.servlet.ConversationPropagationFilter$1.sendRedirect(ConversationPropagationFilter.java:90)
com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl.java:576)
org.dirtybxl.upload.FileUploadBean.redirectToAuthenticationEntrypoint(FileUploadBean.java:105)
org.dirtybxl.upload.FileUploadBean.checkAccessToken(FileUploadBean.java:87)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.el.parser.AstValue.invoke(AstValue.java:196)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:43)
org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:56)
com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
com.sun.faces.facelets.tag.jsf.core.DeclarativeSystemEventListener.processEvent(EventHandler.java:131)
javax.faces.component.UIComponent$ComponentSystemEventListenerAdapter.processEvent(UIComponent.java:2508)
javax.faces.event.SystemEvent.processListener(SystemEvent.java:106)
com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2129)
com.sun.faces.application.ApplicationImpl.invokeComponentListenersFor(ApplicationImpl.java:2077)
com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:286)
com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:244)
org.jboss.as.weld.webtier.jsf.ForwardingApplication.publishEvent(ForwardingApplication.java:293)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:108)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79)
org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years
[JBoss JIRA] (WELD-1040) Support Java Web Start
by Alexandre Gattiker (Created) (JIRA)
Support Java Web Start
----------------------
Key: WELD-1040
URL: https://issues.jboss.org/browse/WELD-1040
Project: Weld
Issue Type: Bug
Components: Java SE Support
Affects Versions: 1.1.5.Final, 1.1.4.Final
Reporter: Alexandre Gattiker
Attachments: weld-webstart-bug.zip
ClassLoader.getResources("META-INF/beans.xml") returns remote server URLs in the format "http://..."
Weld's FileSystemURLHandler tries to open these URLs as files, which leads to:
java.lang.RuntimeException: Error handling file http:/localhost:8080/weld-webstart-war-0.0.1-SNAPSHOT/webstart/weld-webstart-jar.jar
at org.jboss.weld.environment.se.discovery.url.FileSystemURLHandler.handleArchiveByFile(FileSystemURLHandler.java:80)
at org.jboss.weld.environment.se.discovery.url.FileSystemURLHandler.handle(FileSystemURLHandler.java:58)
at org.jboss.weld.environment.se.discovery.url.URLScanner.scan(URLScanner.java:102)
at org.jboss.weld.environment.se.discovery.url.WeldSEUrlDeployment.<init>(WeldSEUrlDeployment.java:39)
at org.jboss.weld.environment.se.Weld.createDeployment(Weld.java:130)
at org.jboss.weld.environment.se.Weld.initialize(Weld.java:80)
at com.example.TestApp.main(TestApp.java:12)
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 com.sun.javaws.Launcher.executeApplication(Launcher.java:1914)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1847)
at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1609)
at com.sun.javaws.Launcher.run(Launcher.java:138)
at java.lang.Thread.run(Thread.java:680)
Caused by: java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.zip.ZipFile.<init>(ZipFile.java:143)
at org.jboss.weld.environment.se.discovery.url.FileSystemURLHandler.handleArchiveByFile(FileSystemURLHandler.java:71)
... 15 more
I am attaching a demo project that also contains a proposed fix, using com.sun.jnlp.JNLPClassLoader#getJarFile(URL) to retrieve the location of the locally cached copy of the JAR. As this is an internal class it is accessed by reflection. The getJarFile method only exists in JRE 6, not in JRE 5.
Add to org.jboss.weld.environment.se.discovery.url.FileSystemURLHandler:
if (urlPath.startsWith("http:") || urlPath.startsWith("https:")) {
ClassLoader cl;
if (Thread.currentThread().getContextClassLoader() != null) {
cl = Thread.currentThread().getContextClassLoader();
} else {
cl = getClass().getClassLoader();
}
// see http://javasourcecode.org/html/open-source/jdk/jdk-6u23/com/sun/jnlp/JNLP...
// public JarFile getJarFile(URL url) throws IOException {
Method m = cl.getClass().getMethod("getJarFile", URL.class);
// returns a reference to the local cached copy of the JAR
JarFile jarFile = (JarFile) m.invoke(cl, new URL(urlPath));
urlPath = jarFile.getName();
}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (WELD-887) Confusing exception message when Interceptor binding not provided
by Hendy Irawan (JIRA)
Confusing exception message when Interceptor binding not provided
-----------------------------------------------------------------
Key: WELD-887
URL: https://issues.jboss.org/browse/WELD-887
Project: Weld
Issue Type: Bug
Components: Interceptors and Decorators
Affects Versions: 1.0.1.Final
Reporter: Hendy Irawan
Seems like MISSING_BINDING_ON_INTERCEPTOR is not a valid message key in resource bundle?
org.jboss.weld.exceptions.DeploymentException: Exception message for key MISSING_BINDING_ON_INTERCEPTOR not found due to String index out of range: -1
at org.jboss.weld.bean.InterceptorImpl.<init>(InterceptorImpl.java:71)
at org.jboss.weld.bean.InterceptorImpl.of(InterceptorImpl.java:55)
at org.jboss.weld.bootstrap.AbstractBeanDeployer.createInterceptor(AbstractBeanDeployer.java:255)
at org.jboss.weld.bootstrap.BeanDeployer.createBeans(BeanDeployer.java:106)
at org.jboss.weld.bootstrap.BeanDeployment.deployBeans(BeanDeployment.java:151)
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:377)
at org.jboss.arquillian.container.weld.se.embedded_1.WeldSEContainer.deploy(WeldSEContainer.java:118)
at org.jboss.arquillian.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:141)
at org.jboss.arquillian.impl.client.container.ContainerDeployController$3.call(ContainerDeployController.java:115)
at org.jboss.arquillian.impl.client.container.ContainerDeployController.executeOperation(ContainerDeployController.java:226)
at org.jboss.arquillian.impl.client.container.ContainerDeployController.deploy(ContainerDeployController.java:114)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.invokeObservers(EventContextImpl.java:98)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:80)
at org.jboss.arquillian.impl.client.ContainerDeploymentContextHandler.createDeploymentContext(ContainerDeploymentContextHandler.java:100)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:78)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.client.container.DeploymentExceptionHandler.verifyExpectedExceptionDuringDeploy(DeploymentExceptionHandler.java:51)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:126)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:106)
at org.jboss.arquillian.impl.core.EventImpl.fire(EventImpl.java:67)
at org.jboss.arquillian.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java:86)
at org.jboss.arquillian.impl.client.container.ContainerDeployController$1.perform(ContainerDeployController.java:79)
at org.jboss.arquillian.impl.client.container.ContainerDeployController.forEachManagedDeployment(ContainerDeployController.java:217)
at org.jboss.arquillian.impl.client.container.ContainerDeployController.deployManaged(ContainerDeployController.java:78)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.invokeObservers(EventContextImpl.java:98)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:80)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:126)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:106)
at org.jboss.arquillian.impl.core.EventImpl.fire(EventImpl.java:67)
at org.jboss.arquillian.impl.client.ContainerEventController.execute(ContainerEventController.java:69)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.invokeObservers(EventContextImpl.java:98)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:80)
at org.jboss.arquillian.impl.TestContextHandler.createClassContext(TestContextHandler.java:68)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:54)
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.jboss.arquillian.impl.core.ObserverImpl.invoke(ObserverImpl.java:90)
at org.jboss.arquillian.impl.core.EventContextImpl.proceed(EventContextImpl.java:87)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:126)
at org.jboss.arquillian.impl.core.ManagerImpl.fire(ManagerImpl.java:106)
at org.jboss.arquillian.impl.EventTestRunnerAdaptor.beforeClass(EventTestRunnerAdaptor.java:70)
at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:170)
at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:303)
at org.jboss.arquillian.junit.Arquillian.access$300(Arquillian.java:45)
at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:187)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (WELD-1051) jboss-tck-runner not detecting the deployment exception properly
by Jozef Hartinger (JIRA)
Jozef Hartinger created WELD-1051:
-------------------------------------
Summary: jboss-tck-runner not detecting the deployment exception properly
Key: WELD-1051
URL: https://issues.jboss.org/browse/WELD-1051
Project: Weld
Issue Type: Bug
Reporter: Jozef Hartinger
Assignee: Martin Kouba
Fix For: 2.0.0.Alpha2
For org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.not.bean.InjectionPointTest,
the JBossAS7DeploymentExceptionTransformer is not able to transform the exception properly. The exception message sent by the server contains the following message, which is not sufficient to reconstruct the original weld exception:
{quote}
{"JBAS014671: Failed services" => {"jboss.deployment.unit.\"0a089332-e386-4722-a478-4c0ad24013c0.war\".component.\"org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.not.bean.TestServlet_Broken\".WeldInstantiator" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"0a089332-e386-4722-a478-4c0ad24013c0.war\".component.\"org.jboss.jsr299.tck.tests.lookup.injectionpoint.broken.not.bean.TestServlet_Broken\".WeldInstantiator: Failed to start service"}}
{quote}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (WELD-950) Session Scoped bean got stucked in CreationalContextImpl.incompleteInstances map
by Wang Liyu (JIRA)
Session Scoped bean got stucked in CreationalContextImpl.incompleteInstances map
--------------------------------------------------------------------------------
Key: WELD-950
URL: https://issues.jboss.org/browse/WELD-950
Project: Weld
Issue Type: Bug
Components: Bootstrap and Metamodel API, Class Beans (Managed and Session)
Affects Versions: 1.1.2.Final
Environment: JSF2 + Weld1.1.2.Final on Tomcat (JBoss 6 has same issue)
Reporter: Wang Liyu
I have a session scoped bean annotated with @Named @SessionScoped, and in the bean's method, I called context.getExternalContext().invalidateSession(); to end the conversation and after @PreDestroy called, the bean is still in the memory, it was hard reference from CreationalContextImpl.incompleteInstances map.
The issue can be reproduced with modified weld-numberguess example (I attached with this ticket)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (WELD-862) Interceptors not threadsafe
by Sebastian Schaffert (JIRA)
Interceptors not threadsafe
---------------------------
Key: WELD-862
URL: https://issues.jboss.org/browse/WELD-862
Project: Weld
Issue Type: Bug
Components: Interceptors and Decorators
Affects Versions: 1.1.0.Final
Environment: Jetty, Weld Filter
Reporter: Sebastian Schaffert
I am trying to implement an "@Asynchronous" interceptor that runs methods annotated with the @Asynchronous annotation in a separate thread. The implementation of the interceptor currently looks as follows:
private static final ThreadGroup asyncMethods = new ThreadGroup("asynchronous method invocations");
@AroundInvoke
public Object manageAsynchronous(final InvocationContext ctx) throws Exception {
final UUID threadID = UUID.randomUUID();
Runnable r = new Runnable() {
@Override
public void run() {
try {
log.debug("asynchronous method invocation of {}.{} (Thread ID {})",new Object[] {ctx.getTarget().getClass().getName(),ctx.getMethod().getName(), threadID});
Object val = ctx.proceed();
if(val != null) {
log.debug("asynchronous method invocation of {}.{} (Thread ID {}) returned value {}",new Object[] {ctx.getClass().getName(),ctx.getMethod().getName(), threadID, val});
}
} catch(Exception ex) {
log.error("exception during asynchronous method invocation",ex);
}
}
};
Thread t = new Thread(asyncMethods,r);
t.setName("asynchronous method invocation of "+ctx.getTarget().getClass().getName()+ctx.getMethod().getName() + " (Threaad ID " + threadID+")");
t.start();
return null;
}
Now the problem is that the interceptor is called infinitely often. The reason is that the annotated method forks a new thread and then returns instantly, setting the variable "currentPosition" in SimpleInterceptorChain back to the value 0 (in a "finally" block). So when the proceed() method is called inside the thread, the interceptor chain again points to the first interceptor in the chain and it all repeats infinitely.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 2 months