[jbossseam-issues] [JBoss JIRA] Closed: (JBSEAM-835) After Upload the Conversation id seems to be lost when use a button to move forward from the "upload" screen.

Tony Herstell (JIRA) jira-events at lists.jboss.org
Wed Mar 21 17:58:49 EDT 2007


     [ http://jira.jboss.com/jira/browse/JBSEAM-835?page=all ]

Tony Herstell closed JBSEAM-835.
--------------------------------

    Fix Version/s: 1.2.1.GA
       Resolution: Cannot Reproduce Bug

Gone since Development Drop 1.6.0.DR1.

> After Upload the Conversation id seems to be lost when use a button to move forward from the "upload" screen.
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: JBSEAM-835
>                 URL: http://jira.jboss.com/jira/browse/JBSEAM-835
>             Project: JBoss Seam
>          Issue Type: Bug
>          Components: ICE Faces Integration
>    Affects Versions: 1.1.6.GA
>            Reporter: Tony Herstell
>         Assigned To: Gregory Dick
>             Fix For: 1.2.1.GA
>
>
> 11:13:27,070 ERROR [[Blocking Servlet]] Servlet.service() for servlet Blocking Servlet threw exception
> javax.faces.FacesException: Error calling action method of component with id _id62:done
> 	at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74)
> 	at javax.faces.component.UICommand.broadcast(UICommand.java:106)
> 	at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:94)
> 	at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:136)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.applyRequestValues(LifecycleImpl.java:219)
> 	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:71)
> 	at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.renderCycle(BlockingServlet.java:456)
> 	at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.receiveUpdates(BlockingServlet.java:444)
> 	at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.executeRequest(BlockingServlet.java:324)
> 	at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:186)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> 	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
> 	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> 	at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
> 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
> 	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
> 	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> 	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: javax.faces.el.EvaluationException: /upload.xhtml @61,49 action="#{uploadController.done}": javax.ejb.EJBException: java.lang.IllegalStateException: no long-running conversation for @Conversational bean: uploadController
> 	at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:73)
> 	at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)
> 	... 29 more
> Caused by: javax.ejb.EJBException: java.lang.IllegalStateException: no long-running conversation for @Conversational bean: uploadController
> 	at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:69)
> 	at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:83)
> 	at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:191)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.ejb3.stateful.StatefulInstanceInterceptor.invoke(StatefulInstanceInterceptor.java:83)
> 	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:102)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47)
> 	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:203)
> 	at org.jboss.ejb3.stateful.StatefulLocalProxy.invoke(StatefulLocalProxy.java:98)
> 	at $Proxy129.done(Unknown Source)
> 	at nz.co.risingstars.actions.upload.UploadController$$FastClassByCGLIB$$cd1d79c6.invoke(<generated>)
> 	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
> 	at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:45)
> 	at org.jboss.seam.intercept.ClientSideInterceptor$1.proceed(ClientSideInterceptor.java:74)
> 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:55)
> 	at org.jboss.seam.interceptors.RemoveInterceptor.removeIfNecessary(RemoveInterceptor.java:40)
> 	at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
> 	at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
> 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
> 	at org.jboss.seam.intercept.RootInterceptor.createSeamInvocationContext(RootInterceptor.java:144)
> 	at org.jboss.seam.intercept.RootInterceptor.invokeInContexts(RootInterceptor.java:129)
> 	at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:102)
> 	at org.jboss.seam.intercept.ClientSideInterceptor.interceptInvocation(ClientSideInterceptor.java:83)
> 	at org.jboss.seam.intercept.ClientSideInterceptor.intercept(ClientSideInterceptor.java:52)
> 	at nz.co.risingstars.actions.upload.UploadController$$EnhancerByCGLIB$$f25dc804.done(<generated>)
> 	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.el.parser.AstValue.invoke(AstValue.java:130)
> 	at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
> 	at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
> 	at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69)
> 	... 30 more
> Caused by: java.lang.IllegalStateException: no long-running conversation for @Conversational bean: uploadController
> 	at org.jboss.seam.interceptors.ConversationalInterceptor.checkConversationForConversationalBean(ConversationalInterceptor.java:52)
> 	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.seam.util.Reflections.invoke(Reflections.java:18)
> 	at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
> 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
> 	at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27)
> 	at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.jboss.seam.util.Reflections.invoke(Reflections.java:18)
> 	at org.jboss.seam.intercept.Interceptor.aroundInvoke(Interceptor.java:169)
> 	at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:64)
> 	at org.jboss.seam.intercept.RootInterceptor.createSeamInvocationContext(RootInterceptor.java:144)
> 	at org.jboss.seam.intercept.RootInterceptor.invokeInContexts(RootInterceptor.java:129)
> 	at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:102)
> 	at org.jboss.seam.intercept.SessionBeanInterceptor.aroundInvoke(SessionBeanInterceptor.java:50)
> 	at sun.reflect.GeneratedMethodAccessor180.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:118)
> 	at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.ejb3.entity.ExtendedPersistenceContextPropagationInterceptor.invoke(ExtendedPersistenceContextPropagationInterceptor.java:71)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:46)
> 	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
> 	at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
> 	... 72 more
> From code:
> 									<ice:panelGrid columns="1">
> 										<ice:inputFile style="border:none; width:400px; height:70px;"
>                                 			actionListener="#{uploadController.action}"/> <!-- progressListener="#{uploadController.progress}" -->
>                         				<ice:outputProgress id="progress" value="#{uploadController.percent}"/>
> 									</ice:panelGrid>
> 									<ice:panelGrid columns="1" width="100%">
> 										<div align="right">
> 											<ice:commandButton action="#{uploadController.cancel}"
> 												value="#{messages.button_cancel}" immediate="true"
> 												type="submit" />
> 											<ice:commandButton id="done" type="submit"
> 												value="#{messages.button_done}" immediate="true"
> 												action="#{uploadController.done}" />
> 										</div>
> 									</ice:panelGrid>
>     @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
>     public void action(ActionEvent event) {
>     	log.info("> action");
>         InputFile inputFile = (InputFile) event.getSource();
>         if (inputFile.getStatus() == InputFile.SAVED) {
>             String fileName = inputFile.getFileInfo().getFileName();
>             String contentType = inputFile.getFileInfo().getContentType();
>             File file = inputFile.getFile();
>             byte[] inputFileAsBytes = getAsBytes(file);
> 			
> 			Image image = (Image)Component.getInstance("image", true);
> 			image.setName(fileName);
> 			image.setType(contentType);
> 			image.setThumbnail(inputFileAsBytes);
> 			image.setImage(inputFileAsBytes);
> 			image.setVersion(0);
> 	        em.persist(image);
> 			if (parentObjectKind == ParentObjectKind.ORGANISATION) {
> 				Organisation organisationToBeUploadedTo = em.find(Organisation.class, primaryKey);
> 				if (organisationToBeUploadedTo == null) {
> 					log.warn("Organisation to be Uploaded to is not found." + primaryKey);
> 				} else {
> 					organisationToBeUploadedTo.setPicture(image);
> 					em.persist(organisationToBeUploadedTo);
> 				}
> 			} else if (parentObjectKind == ParentObjectKind.USER) {
> 				User userToBeUploadedTo = em.find(User.class, primaryKey);
> 				if (userToBeUploadedTo == null) {
> 					log.warn("User to be Uploaded to is not found." + primaryKey);
> 				} else {
> 					userToBeUploadedTo.setPicture(image);
> 					em.persist(userToBeUploadedTo);
> 				}
>     		} else {
>     			log.error("action called with object type not supported.");
>     		}
>         } else if (inputFile.getStatus() == InputFile.INVALID) {
>             inputFile.getFileInfo().getException().printStackTrace();
>         } else if (inputFile.getStatus() == InputFile.SIZE_LIMIT_EXCEEDED) {
>             inputFile.getFileInfo().getException().printStackTrace();
>         } else if (inputFile.getStatus() == InputFile.UNKNOWN_SIZE) {
>             inputFile.getFileInfo().getException().printStackTrace();
>         }
>         log.info("< action");
>     }
>     @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
>     private byte[] getAsBytes(File file) {
>     	byte[] valueToReturn = null;
>     	log.info("> getAsBytes");
>     	InputStream in = null;
>         OutputStream out = null;
>         try {
>             in = new BufferedInputStream(new FileInputStream(file));
>             ByteArrayOutputStream baos = new ByteArrayOutputStream();
>             out = new BufferedOutputStream(baos);
>             final int toRead = 1024;
>             byte[] buffy = new byte[toRead];
>             int read;
>          
>             while ((read = in.read(buffy)) != -1) {
>                 out.write(buffy, 0, read);
>                 out.flush();
>             }
>             valueToReturn = baos.toByteArray();
>         } catch (IOException e) {
>             throw new IllegalStateException(e.getMessage());
>         } finally { // Try to release any resources.
>             try {
>                 if (in != null) {
>                     in.close();
>                 }    
>             } catch (IOException ignored) {}
>             try {
>                 if (out != null) {
>                     out.close();
>                 }
>             } catch (IOException ignored) {}
>         }
>         log.info("< getAsBytes");
>         return valueToReturn;
>     }
>     
>     
>     @End
> 	public String done() {
> 		log.info("> done");
> 		String valueToReturn = null;
> 		if (parentObjectKind == ParentObjectKind.ORGANISATION) {
> 			valueToReturn = "findOrganisation";
> 		} else if (parentObjectKind == ParentObjectKind.USER) {
> 			valueToReturn = "findUser";
> 		} else {
> 			log.error("done called with object type not supported.");
> 		}
> 		log.info("< done");
> 		return valueToReturn;
>     }
>     

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list