You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Paul Kearney <Pa...@slc.co.uk> on 2004/03/10 12:33:50 UTC

property-specification/page-recorder exception




I have declared several variables in my .page file using the
property-specification element and delcared the page specification java
class abstract and included abstract getter/setter methods for these
variables. storedValues the variable referred to in the exception below, is
one of these properties and is a boolean value which I reset to false
during form submission once validation is passed.

Everything seems to work fine when 95% of the time but if I submit the page
and then re-click on the submit link before the next page has been rendered
I recieve the following exception:
                                                                                                                                          
                                                                                                                                          
                                                                                                                                          
                                                                                                                                          
                                                                                                                                          
                                                                                                                                          
                                                                                                                                          
                                                                                                                                          
                                                                                                                                          
                                                                                                                                          
                                                                                                                                          
                                                                                                                                          
                                                                                                                                          
 org.apache.tapestry.ApplicationRuntimeException                                                                                          
                                                                                                                                          
 Page recorder for page entitlement.otherInformation is locked after a commit(), but received a change to property storedValues of        
 component entitlement.otherInformation.                                                                                                  
                                                                                                                                          
 Stack Trace:                                                                                                                             
                                                                                                                                          
       org.apache.tapestry.record.PageRecorder.observeChange(PageRecorder.java:160)                                                       
       org.apache.tapestry.Tapestry.fireObservedChange(Tapestry.java:1409)                                                                
       org.apache.tapestry.AbstractComponent.fireObservedChange(AbstractComponent.java:354)                                               
       uk.co.slc.crm.portal.application.entitlement.pages.OtherInformationPage$Enhance_31.setStoredValues(OtherInformationPage$Enhance_31 
       .java)                                                                                                                             
       uk.co.slc.crm.portal.application.entitlement.pages.OtherInformationPage.nextPageRequest(OtherInformationPage.java:156)             
       uk.co.slc.crm.portal.application.FormBasePage.formSubmit(FormBasePage.java:125)                                                    
       sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                                                                        
       sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)                                                                        
       sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)                                                                    
       java.lang.reflect.Method.invoke(Unknown Source)                                                                                    
       org.apache.tapestry.listener.ListenerMap.invokeTargetMethod(ListenerMap.java:301)                                                  
       org.apache.tapestry.listener.ListenerMap.access$100(ListenerMap.java:87)                                                           
       org.apache.tapestry.listener.ListenerMap$SyntheticListener.invoke(ListenerMap.java:141)                                            
       org.apache.tapestry.listener.ListenerMap$SyntheticListener.actionTriggered(ListenerMap.java:146)                                   
       org.apache.tapestry.form.Form.renderComponent(Form.java:457)                                                                       
       org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:898)                                                           
       org.apache.tapestry.form.Form.rewind(Form.java:602)                                                                                
       org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:476)                                                          
       org.apache.tapestry.form.Form.trigger(Form.java:616)                                                                               
       org.apache.tapestry.engine.DirectService.service(DirectService.java:210)                                                           
       org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:913)                                                         
       org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:238)                                                      
       org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:367)                                                         
       javax.servlet.http.HttpServlet.service(HttpServlet.java:760)                                                                       
       javax.servlet.http.HttpServlet.service(HttpServlet.java:853)                                                                       
       com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)                                                 
       oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)                                                                 
       com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:560)                                        
       com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)                               
       com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)                                            
       com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)                                                       
       com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)                                                       
       EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)                                                
       java.lang.Thread.run(Unknown Source)                                                                                               
                                                                                                                                          
                                                                                                                                          
                                                                                                                                          


I am concerned by this behaviour as it does not seem an unlikely scenario
for a user to click a submit link twice quickly.  Is there something that I
am doing wrong here and if so how can I prevent this from happening?

Thanks in advance,

Paul Kearney
Java Developer/Analyst
Protocol - 4W
Ext - 3217



***************************************************************************
The information in this e-mail is confidential and for use by the addressee(s) only. If you are not the intended recipient (or responsible for delivery of the message to the intended recipient) please notify us immediately on 0141 306 2050 and delete the message from your computer. You may not copy or forward it or use or disclose its contents to any other person. As Internet communications are capable of data corruption Student Loans Company Limited does not accept any  responsibility for changes made to this message after it was sent. For this reason it may be inappropriate to rely on advice or opinions contained in an e-mail without obtaining written confirmation of it. Neither Student Loans Company Limited or the sender accepts any liability or responsibility for viruses as it is your responsibility to scan attachments (if any). Opinions and views expressed in this e-mail are those of the sender and may not reflect the opinions and views of The Student Loans Company Limited.

This footnote also confirms that this email message has been swept for the presence of computer viruses.

**************************************************************************


---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org