[JBoss JIRA] (RF-11469) autocomplete method does not resolve bean if ui:included
by Valiantsin Shukaila (JIRA)
[ https://issues.jboss.org/browse/RF-11469?page=com.atlassian.jira.plugin.s... ]
Valiantsin Shukaila commented on RF-11469:
------------------------------------------
I am having such problem with 4.3.1 version of Richfaces.
The Problem is that by default autoCompleteMethod seems to be defined with 3 parameters: FacesContext,UIComponent,String.
This can be seen from here:
{code}
try {
// String value = getInputValue(facesContext, component);
itemsObject = autocompleteMethod.invoke(facesContext.getELContext(), new Object[] { facesContext, component, value });
} catch (MethodNotFoundException e) {
ExpressionFactory expressionFactory = facesContext.getApplication().getExpressionFactory();
autocompleteMethod = expressionFactory.createMethodExpression(facesContext.getELContext(),autocompleteMethod.getExpressionString(), Object.class, new Class[] { String.class });
itemsObject = autocompleteMethod.invoke(facesContext.getELContext(), new Object[] { value });
}
{code}
One can see that if method with 3 arguments is not found(actually it is not clear why it is 3 arguments, they are useless) just exception is caught and new MethodExpression is created. But this new MethodExpression doesn't take in account all facelet compositions so beans passed as parameters would not be resolved in this new method expression.
So I see the easiest workaround for this: change method declaration in the bean so that it would have 3 arguments (FacesContext, UIComponent, String).
For me this worked well.
Actually it's a pity that almost 2 years passed after this issue was found and it is still not resolved. Actually I have such a bad feeling with all richfaces 4 version. Seems nobody supports it now?
> autocomplete method does not resolve bean if ui:included
> --------------------------------------------------------
>
> Key: RF-11469
> URL: https://issues.jboss.org/browse/RF-11469
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-input
> Affects Versions: 4.0.0.Final
> Reporter: u j
> Fix For: 5-Tracking
>
>
> A bean parameter in the autocomplete method is not resolved if the rich:autocomplete is part of a ui:include.
> {code}
> <ui:include src="/searchlocation.xhtml">
> <ui:param name="bean" value="#{searchBean}" />
> </ui:include>
> {code}
> searchlocation.xhtml contains:
> {code}
> <rich:autocomplete id="cityName" mode="ajax" value="#{bean.cityName}" autocompleteMethod="#{bean.suggestCities}" />
> {code}
> The value binding works, but the binding in the autocompleteMethod gives:
> {code}
> 15:26:15,809 SEVERE [org.richfaces.log.Renderkit] (ajp-127.0.0.1-127.0.0.1-8009-1) Target Unreachable, identifier 'bean' resolved to null: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'bean' resolved to null
> at org.apache.el.parser.AstValue.getTarget(AstValue.java:75) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
> at org.apache.el.parser.AstValue.invoke(AstValue.java:183) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
> at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
> at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:43) [weld-core-1.1.2.Final.jar:2011-07-26 15:02]
> at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:56) [weld-core-1.1.2.Final.jar:2011-07-26 15:02]
> at org.richfaces.renderkit.AutocompleteRendererBase.getItems(AutocompleteRendererBase.java:105) [richfaces-components-ui-4.0.0-20110322.220419-243.jar:]
> at org.richfaces.renderkit.AutocompleteRendererBase.encodeItems(AutocompleteRendererBase.java:160) [richfaces-components-ui-4.0.0-20110322.220419-243.jar:]
> at org.richfaces.renderkit.AutocompleteRendererBase.encodeMetaComponent(AutocompleteRendererBase.java:271) [richfaces-components-ui-4.0.0-20110322.220419-243.jar:]
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 9 months
[JBoss JIRA] (RF-11469) autocomplete method does not resolve bean if ui:included
by Valiantsin Shukaila (JIRA)
[ https://issues.jboss.org/browse/RF-11469?page=com.atlassian.jira.plugin.s... ]
Valiantsin Shukaila edited comment on RF-11469 at 6/13/13 7:15 AM:
-------------------------------------------------------------------
I am having such problem with 4.3.1 version of Richfaces.
The Problem is that by default autoCompleteMethod seems to be defined with 3 parameters: FacesContext,UIComponent,String.
This can be seen from AutocompleteRendererBase class, getItems method:
{code}
try {
// String value = getInputValue(facesContext, component);
itemsObject = autocompleteMethod.invoke(facesContext.getELContext(), new Object[] { facesContext, component, value });
} catch (MethodNotFoundException e) {
ExpressionFactory expressionFactory = facesContext.getApplication().getExpressionFactory();
autocompleteMethod = expressionFactory.createMethodExpression(facesContext.getELContext(),autocompleteMethod.getExpressionString(), Object.class, new Class[] { String.class });
itemsObject = autocompleteMethod.invoke(facesContext.getELContext(), new Object[] { value });
}
{code}
One can see that if method with 3 arguments is not found(actually it is not clear why it is 3 arguments, they are useless) just exception is caught and new MethodExpression is created. But this new MethodExpression doesn't take in account all facelet compositions so beans passed as parameters would not be resolved in this new method expression.
So I see the easiest workaround for this: change method declaration in the bean so that it would have 3 arguments (FacesContext, UIComponent, String).
For me this worked well.
Actually it's a pity that almost 2 years passed after this issue was found and it is still not resolved. Actually I have such a bad feeling with all richfaces 4 version. Seems nobody supports it now?
was (Author: Trims):
I am having such problem with 4.3.1 version of Richfaces.
The Problem is that by default autoCompleteMethod seems to be defined with 3 parameters: FacesContext,UIComponent,String.
This can be seen from here:
{code}
try {
// String value = getInputValue(facesContext, component);
itemsObject = autocompleteMethod.invoke(facesContext.getELContext(), new Object[] { facesContext, component, value });
} catch (MethodNotFoundException e) {
ExpressionFactory expressionFactory = facesContext.getApplication().getExpressionFactory();
autocompleteMethod = expressionFactory.createMethodExpression(facesContext.getELContext(),autocompleteMethod.getExpressionString(), Object.class, new Class[] { String.class });
itemsObject = autocompleteMethod.invoke(facesContext.getELContext(), new Object[] { value });
}
{code}
One can see that if method with 3 arguments is not found(actually it is not clear why it is 3 arguments, they are useless) just exception is caught and new MethodExpression is created. But this new MethodExpression doesn't take in account all facelet compositions so beans passed as parameters would not be resolved in this new method expression.
So I see the easiest workaround for this: change method declaration in the bean so that it would have 3 arguments (FacesContext, UIComponent, String).
For me this worked well.
Actually it's a pity that almost 2 years passed after this issue was found and it is still not resolved. Actually I have such a bad feeling with all richfaces 4 version. Seems nobody supports it now?
> autocomplete method does not resolve bean if ui:included
> --------------------------------------------------------
>
> Key: RF-11469
> URL: https://issues.jboss.org/browse/RF-11469
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-input
> Affects Versions: 4.0.0.Final
> Reporter: u j
> Fix For: 5-Tracking
>
>
> A bean parameter in the autocomplete method is not resolved if the rich:autocomplete is part of a ui:include.
> {code}
> <ui:include src="/searchlocation.xhtml">
> <ui:param name="bean" value="#{searchBean}" />
> </ui:include>
> {code}
> searchlocation.xhtml contains:
> {code}
> <rich:autocomplete id="cityName" mode="ajax" value="#{bean.cityName}" autocompleteMethod="#{bean.suggestCities}" />
> {code}
> The value binding works, but the binding in the autocompleteMethod gives:
> {code}
> 15:26:15,809 SEVERE [org.richfaces.log.Renderkit] (ajp-127.0.0.1-127.0.0.1-8009-1) Target Unreachable, identifier 'bean' resolved to null: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'bean' resolved to null
> at org.apache.el.parser.AstValue.getTarget(AstValue.java:75) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
> at org.apache.el.parser.AstValue.invoke(AstValue.java:183) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
> at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) [jbossweb-7.0.1.Final.jar:7.0.1.Final]
> at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:43) [weld-core-1.1.2.Final.jar:2011-07-26 15:02]
> at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:56) [weld-core-1.1.2.Final.jar:2011-07-26 15:02]
> at org.richfaces.renderkit.AutocompleteRendererBase.getItems(AutocompleteRendererBase.java:105) [richfaces-components-ui-4.0.0-20110322.220419-243.jar:]
> at org.richfaces.renderkit.AutocompleteRendererBase.encodeItems(AutocompleteRendererBase.java:160) [richfaces-components-ui-4.0.0-20110322.220419-243.jar:]
> at org.richfaces.renderkit.AutocompleteRendererBase.encodeMetaComponent(AutocompleteRendererBase.java:271) [richfaces-components-ui-4.0.0-20110322.220419-243.jar:]
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 9 months
[JBoss JIRA] (RF-12899) Deadlock appears in push component
by Lukáš Fryč (JIRA)
[ https://issues.jboss.org/browse/RF-12899?page=com.atlassian.jira.plugin.s... ]
Lukáš Fryč commented on RF-12899:
---------------------------------
Hey [~nickost], [~mikulasek.aura], are you able to reproduce this on {{4.3.x}}?
Original report is for {{4.2.2.Final}}. Could you eventually try to upgrade to {{4.3.x}}?
> Deadlock appears in push component
> ----------------------------------
>
> Key: RF-12899
> URL: https://issues.jboss.org/browse/RF-12899
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-push/poll
> Affects Versions: 4.2.2.Final
> Reporter: Jiří Mikulášek
> Assignee: Lukáš Fryč
> Fix For: 5-Tracking
>
>
> Our application freezes occasionally. We used Jstack and have seen the deadlock below. It seems to be very simillar to RF-12013, but the stack is slightly different
> Found one Java-level deadlock:
> =============================
> {code}
> "localhost-startStop-2":
> waiting to lock monitor 0x000000000782a368 (object 0x000000078da957e0, a org.richfaces.application.push.impl.SessionImpl),
> which is held by "http-nio-30085-exec-4"
> "http-nio-30085-exec-4":
> waiting to lock monitor 0x00000000085cbe00 (object 0x000000078e8ecf90, a org.atmosphere.cpr.AtmosphereResourceImpl),
> which is held by "Atmosphere-AsyncWrite-0"
> "Atmosphere-AsyncWrite-0":
> waiting to lock monitor 0x000000000782a368 (object 0x000000078da957e0, a org.richfaces.application.push.impl.SessionImpl),
> which is held by "http-nio-30085-exec-4"
> {code}
> Java stack information for the threads listed above:
> ===================================================
> {code}
> "localhost-startStop-2":
> at org.richfaces.application.push.impl.SessionImpl.disconnect(SessionImpl.java:117)
> - waiting to lock <0x000000078da957e0> (a org.richfaces.application.push.impl.SessionImpl)
> at org.richfaces.application.push.impl.RequestImpl.disconnect(RequestImpl.java:128)
> at org.richfaces.application.push.impl.RequestImpl.onResume(RequestImpl.java:136)
> at org.atmosphere.cpr.AtmosphereResourceImpl.onResume(AtmosphereResourceImpl.java:658)
> at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:607)
> at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:591)
> at org.atmosphere.cpr.AtmosphereResourceImpl.resume(AtmosphereResourceImpl.java:187)
> - locked <0x000000078e8b64a8> (a org.atmosphere.cpr.AtmosphereResourceImpl)
> at org.atmosphere.cpr.DefaultBroadcaster.resumeAll(DefaultBroadcaster.java:300)
> - locked <0x000000078e8d1ac8> (a java.util.concurrent.ConcurrentLinkedQueue)
> at org.atmosphere.cpr.DefaultBroadcasterFactory.destroy(DefaultBroadcasterFactory.java:274)
> - locked <0x000000078cb112d8> (a org.atmosphere.cpr.DefaultBroadcasterFactory)
> at org.atmosphere.cpr.AtmosphereServlet.destroy(AtmosphereServlet.java:867)
> at org.atmosphere.cpr.MeteorServlet.destroy(MeteorServlet.java:88)
> at org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:1481)
> - locked <0x0000000784b6a168> (a org.apache.catalina.core.StandardWrapper)
> at org.apache.catalina.core.StandardWrapper.stopInternal(StandardWrapper.java:1842)
> - locked <0x0000000784b6a168> (a org.apache.catalina.core.StandardWrapper)
> at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
> - locked <0x0000000784b6a168> (a org.apache.catalina.core.StandardWrapper)
> at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5471)
> - locked <0x000000078312e828> (a org.apache.catalina.core.StandardContext)
> at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
> - locked <0x000000078312e828> (a org.apache.catalina.core.StandardContext)
> at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1575)
> at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1564)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:662)
> "http-nio-30085-exec-4":
> at org.atmosphere.cpr.AtmosphereResourceImpl.resume(AtmosphereResourceImpl.java:168)
> - waiting to lock <0x000000078e8ecf90> (a org.atmosphere.cpr.AtmosphereResourceImpl)
> at org.atmosphere.cpr.Meteor.resume(Meteor.java:240)
> at org.richfaces.application.push.impl.RequestImpl.resume(RequestImpl.java:71)
> at org.richfaces.application.push.impl.SessionImpl.releaseRequest(SessionImpl.java:112)
> at org.richfaces.application.push.impl.SessionImpl.connect(SessionImpl.java:85)
> - locked <0x000000078da957e0> (a org.richfaces.application.push.impl.SessionImpl)
> at org.richfaces.application.push.impl.RequestImpl.onSuspend(RequestImpl.java:119)
> at org.atmosphere.cpr.AtmosphereResourceImpl.onSuspend(AtmosphereResourceImpl.java:652)
> at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:611)
> at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:591)
> at org.atmosphere.cpr.AtmosphereResourceImpl.suspend(AtmosphereResourceImpl.java:347)
> at org.atmosphere.cpr.Meteor.suspend(Meteor.java:213)
> at org.richfaces.application.push.impl.RequestImpl.suspend(RequestImpl.java:67)
> at org.richfaces.webapp.PushHandlerFilter.doFilter(PushHandlerFilter.java:107)
> at org.atmosphere.util.AtmosphereFilterChain.doFilter(AtmosphereFilterChain.java:139)
> at org.atmosphere.util.AtmosphereFilterChain.invokeFilterChain(AtmosphereFilterChain.java:116)
> at org.atmosphere.handler.ReflectorServletProcessor$FilterChainServletWrapper.service(ReflectorServletProcessor.java:293)
> at org.atmosphere.handler.ReflectorServletProcessor.onRequest(ReflectorServletProcessor.java:151)
> at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:219)
> at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:154)
> at org.atmosphere.container.Tomcat7CometSupport.service(Tomcat7CometSupport.java:85)
> at org.atmosphere.cpr.AtmosphereServlet.doCometSupport(AtmosphereServlet.java:1218)
> at org.atmosphere.cpr.AtmosphereServlet.event(AtmosphereServlet.java:1286)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilterEvent(ApplicationFilterChain.java:484)
> at org.apache.catalina.core.ApplicationFilterChain.doFilterEvent(ApplicationFilterChain.java:377)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1686)
> - locked <0x000000078e7fcc28> (a org.apache.tomcat.util.net.NioChannel)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:662)
> "Atmosphere-AsyncWrite-0":
> at org.richfaces.application.push.impl.SessionImpl.disconnect(SessionImpl.java:117)
> - waiting to lock <0x000000078da957e0> (a org.richfaces.application.push.impl.SessionImpl)
> at org.richfaces.application.push.impl.RequestImpl.disconnect(RequestImpl.java:128)
> at org.richfaces.application.push.impl.RequestImpl.onDisconnect(RequestImpl.java:140)
> at org.atmosphere.cpr.AtmosphereResourceImpl.onDisconnect(AtmosphereResourceImpl.java:664)
> at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:609)
> at org.atmosphere.cpr.AtmosphereResourceImpl.notifyListeners(AtmosphereResourceImpl.java:591)
> at org.atmosphere.cpr.DefaultBroadcaster.executeAsyncWrite(DefaultBroadcaster.java:719)
> at org.atmosphere.cpr.DefaultBroadcaster$3.run(DefaultBroadcaster.java:749)
> - locked <0x000000078e8ecf90> (a org.atmosphere.cpr.AtmosphereResourceImpl)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
> at java.lang.Thread.run(Thread.java:662)
> {code}
> Found 1 deadlock.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 9 months