ICEfaces
  1. ICEfaces
  2. ICE-2999

Seam/ejb3 transaction synchronization issue with UploadServlet

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.7.1
    • Fix Version/s: 1.7.2
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      Seam, ejb-transaction
    • Workaround Description:
      Hide
      The work-around, with ICEfaces 1.7.1, is for inputFile's progressListener to not use the RenderManager. Given ICE-2860, it will still render after the upload, even without progressListener using the RenderManager, so the users will still see upload completion, just not upload progress.
      Show
      The work-around, with ICEfaces 1.7.1, is for inputFile's progressListener to not use the RenderManager. Given ICE-2860 , it will still render after the upload, even without progressListener using the RenderManager, so the users will still see upload completion, just not upload progress.

      Description

      When using the ejb3 container's ability for synchronization of transactions, the fileupload component works, but get the following exception since the container specifies that the UploadServlet is not completing it's transaction properly.
      09:34:29,624 INFO [SeamPhaseListener] beforeRestoreView

      09:34:29,624 INFO [STDOUT] in finally clause

      09:34:29,624 INFO [STDOUT] InputFile: renderIFrame

      09:34:29,624 INFO [STDOUT] InputFile: upload Servlet path=/fileUpload/uploadHtml

      09:34:29,624 INFO [SeamPhaseListener] before begin(phaseId) phaseId=1 RESTORE_VIEW 1

      09:34:29,624 INFO [STDOUT] withing writeTo clause

      09:34:29,624 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_4] TwoPhaseCoordinator.afterCompletion - returned failure for com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple@7a1904

      09:34:29,624 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator_4] TwoPhaseCoordinator.afterCompletion - returned failure for com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple@111e7ed

      09:34:29,624 ERROR [CachedConnectionValve] Application error: uploadServlet did not complete its transaction

      09:34:29,624 ERROR [SeamPhaseListener] uncaught exception

      java.lang.IllegalStateException: Could not start transaction

      at org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:596)

      at org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsBeforePhase(SeamPhaseListener.java:324)

      at org.jboss.seam.jsf.SeamPhaseListener.beforeServletPhase(SeamPhaseListener.java:140)

      at org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:114)

      at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:222)

      at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)

      at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.execute(PersistentFacesState.java:299)

      at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState.executeAndRender(PersistentFacesState.java:347)

      at com.icesoft.faces.webapp.xmlhttp.PersistentFacesState$RenderRunner.run(PersistentFacesState.java:385)

      at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:665)

      at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:690)

      at java.lang.Thread.run(Unknown Source)

      Caused by: javax.ejb.NoSuchEJBException: Could not find stateful bean: ai1330-4ath1w-ff5gsgd0-1-ff5htjyu-w

      at org.jboss.ejb3.cache.simple.SimpleStatefulCache.get(SimpleStatefulCache.java:390)

      at org.jboss.ejb3.cache.simple.SimpleStatefulCache.get(SimpleStatefulCache.java:375)

      at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:61)

      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)

      at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77)

      at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:110)

      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)

      at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:46)

      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)

      at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)

      at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)

      at org.jboss.ejb3.stateful.StatefulContainer.localInvoke(StatefulContainer.java:206)

      at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:119)

      at $Proxy194.afterTransactionBegin(Unknown Source)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

      at java.lang.reflect.Method.invoke(Unknown Source)

      at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)

      at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)

      at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:76)

      at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)

      at org.jboss.seam.intercept.ClientSideInterceptor.invoke(ClientSideInterceptor.java:54)

      at org.javassist.tmp.java.lang.Object_$$_javassist_0.afterTransactionBegin(Object_$$_javassist_0.java)

      at org.jboss.seam.transaction.UTTransaction.begin(UTTransaction.java:40)

      at org.jboss.seam.jsf.SeamPhaseListener.begin(SeamPhaseListener.java:591)

      ... 11 more

        Activity

        Hide
        Judy Guglielmin added a comment -

        Sample project...just have to add jars into /lib and build/deploy to jboss-4.2.2.GA AS.

        Show
        Judy Guglielmin added a comment - Sample project...just have to add jars into /lib and build/deploy to jboss-4.2.2.GA AS.
        Hide
        Mark Collette added a comment -

        This is such a niche case, that it's not much of a priority, given the work-around.

        Show
        Mark Collette added a comment - This is such a niche case, that it's not much of a priority, given the work-around.
        Hide
        Judy Guglielmin added a comment -

        Fix placed on 1.7.1 branch and trunk. BridgeExternalContext hadn't released the Thread. after each push . Problem was not only for fileupload but for any ajax-push (fix was tested on seam-auctionMonitor as well).

        Show
        Judy Guglielmin added a comment - Fix placed on 1.7.1 branch and trunk. BridgeExternalContext hadn't released the Thread. after each push . Problem was not only for fileupload but for any ajax-push (fix was tested on seam-auctionMonitor as well).
        Hide
        Ted Goddard added a comment -

        Reported fix was for ICE-3081.

        Show
        Ted Goddard added a comment - Reported fix was for ICE-3081 .

          People

          • Assignee:
            Unassigned
            Reporter:
            Judy Guglielmin
          • Votes:
            3 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: