[JBoss JIRA] (JBSEAM-5001) Deadlock between SFSB EJB lock and Component.getInstanceFromFactory factoryLock calling factory from the same component
by Marek Schmidt (JIRA)
[ https://issues.jboss.org/browse/JBSEAM-5001?page=com.atlassian.jira.plugi... ]
Marek Schmidt commented on JBSEAM-5001:
---------------------------------------
Yes, but when you look at the server log, you'll see that the error is a timeout at the SFSB lock, which resolves the deadlock after 5 seconds.
Caused by: javax.ejb.ConcurrentAccessTimeoutException: JBAS014360: EJB 3.1 FR 4.3.14.1 concurrent access timeout on org.jboss.invocation.InterceptorContext@40fa6677 - could not obtain lock within 5000 MILLISECONDS
at org.jboss.as.ejb3.component.stateful.StatefulSessionSynchronizationInterceptor.processInvocation(StatefulSessionSynchronizationInterceptor.java:117) [jboss-as-ejb3-7.2.0.Final-redhat-4.jar:7.2.0.Final-r
edhat-4]
> Deadlock between SFSB EJB lock and Component.getInstanceFromFactory factoryLock calling factory from the same component
> -----------------------------------------------------------------------------------------------------------------------
>
> Key: JBSEAM-5001
> URL: https://issues.jboss.org/browse/JBSEAM-5001
> Project: Seam 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.3.0.BETA2
> Environment: JBoss AS 7.1.2, Seam 2.3.0.CR1-SNAPSHOT r14986
> Reporter: Marek Schmidt
> Assignee: Marek Novotny
> Fix For: 2.3.1.CR1
>
> Attachments: JBSEAM-5001.ear, JBSEAM-5001.tar.gz, test.py
>
>
> The following sample demonstrates a deadlock between SFSB lock and the Component.getInstanceFromFactory factoryLock:
> {code}
> @Stateful
> @Scope(ScopeType.SESSION)
> @Name("test")
> public class TestAction implements Test
> {
>
> public String test() {
> Thread.sleep(500);
> Component.getInstance("testString", true);
> return "test";
> }
>
> @Factory(value="testString", scope=ScopeType.SESSION)
> public String getTestString() {
> return "testString";
> }
> @Remove
> public void remove() {}
> }
> {code}
> when test.xhtml contains:
> {code}
> <h:outputText value="#{test.test()} " />
> {code}
> and othertest.xhtml contains:
> {code}
> <h:outputText value="#{testString} " />
> {code}
> If the othertest.seam is requested just after (<500ms after) the test.seam with the same session cookie.
> The problem seems to be that the #{test.test()} first locks the TestAction SFSB lock and then the Seam factory lock in the Component.getInstance call, while #{testString} locks the factoryLock first.
--
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
11 years, 8 months
[JBoss JIRA] (JBSEAM-5002) Components included with ui:include src="#{pageScopedViewId} broken
by Marek Novotny (JIRA)
[ https://issues.jboss.org/browse/JBSEAM-5002?page=com.atlassian.jira.plugi... ]
Marek Novotny updated JBSEAM-5002:
----------------------------------
Fix Version/s: The future
(was: 2.3.1.CR1)
> Components included with ui:include src="#{pageScopedViewId} broken
> -------------------------------------------------------------------
>
> Key: JBSEAM-5002
> URL: https://issues.jboss.org/browse/JBSEAM-5002
> Project: Seam 2
> Issue Type: Bug
> Components: JSF Integration
> Affects Versions: 2.3.0.BETA2, 2.3.0.Final
> Environment: JBoss AS 7.1.2, Seam 2.3.0.CR1-SNAPSHOT (r14986)
> Reporter: Marek Schmidt
> Assignee: Marek Novotny
> Fix For: The future
>
> Attachments: JBSEAM-5002.ear, JBSEAM-5002.tar.gz
>
>
> The following scenario that used to work in AS5/Seam2.2 doesn't work anymore in AS7/Seam2.3 for page-scoped and conversation-scoped "viewId" components:
> index.xhtml:
> {code}
> <h:form>
> <h:commandButton action="#{viewId.component1}" value="Component 1" />
> <h:commandButton action="#{viewId.component2}" value="Component 2" />
> </h:form>
>
> <ui:include src="#{viewId.viewId}"/>
> {code}
> {code}
> @Scope(ScopeType.PAGE)
> @Name("viewId")
> public class ViewIdComponent implements Serializable
> {
> private String viewId = "/component1.xhtml";
>
> public void setViewId(String viewId) {
> this.viewId = viewId;
> }
>
> public String getViewId() {
> return viewId;
> }
>
> public void component1() {
> setViewId("/component1.xhtml");
> }
>
> public void component2() {
> setViewId("/component2.xhtml");
> }
> }
> {code}
> (compoent1 and 2 are redacted, contain a simple form)
> Only the first component works properly, actions in "component2" doesn't seem to be called after switching to "Component 2".
--
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
11 years, 8 months
[JBoss JIRA] (JBSEAM-5064) s:link conversation propagation none broken
by Marek Novotny (JIRA)
[ https://issues.jboss.org/browse/JBSEAM-5064?page=com.atlassian.jira.plugi... ]
Marek Novotny resolved JBSEAM-5064.
-----------------------------------
Resolution: Done
fixed already by JBSEAM-5083
> s:link conversation propagation none broken
> -------------------------------------------
>
> Key: JBSEAM-5064
> URL: https://issues.jboss.org/browse/JBSEAM-5064
> Project: Seam 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.3.1.CR1
> Environment: EAP 6.0.0, Seam 2.3.1-SNAPSHOT
> Reporter: Marek Schmidt
> Assignee: Marek Novotny
> Priority: Critical
> Fix For: 2.3.1.CR1
>
>
> s:link / s:button with propagation="none" does propagate conversations even when it shouldn't since the fix for JBSEAM-4976, as the conversation id gets appended always by the SeamViewHandler.
> Also note that with propagation="join", the conversation id is appended two times there (once from the s:link and once by the SeamViewHandler)
--
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
11 years, 8 months