You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Howard M. Lewis Ship (JIRA)" <ji...@apache.org> on 2008/10/31 17:01:49 UTC
[jira] Assigned: (TAP5-5) Context lost in a form fragment in a
property editor component
[ https://issues.apache.org/jira/browse/TAP5-5?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Howard M. Lewis Ship reassigned TAP5-5:
---------------------------------------
Assignee: Howard M. Lewis Ship
> Context lost in a form fragment in a property editor component
> --------------------------------------------------------------
>
> Key: TAP5-5
> URL: https://issues.apache.org/jira/browse/TAP5-5
> Project: Tapestry 5
> Issue Type: Bug
> Affects Versions: 5.0.15
> Reporter: José Paumard
> Assignee: Howard M. Lewis Ship
> Attachments: tapestry-form-fragment.patch
>
>
> I created a PropertyEditor to edit a special class, which content spans over one or more pair of String.
> The TML for the PropertyEditor declaration is :
> <t:block t:id="myProp">
> <t:editor.myPropEditor t:id="myPropEditor"
> propertyvalue="prop:context.propertyValue"
> propertyname="prop:context.label"
> messages="prop:context.containerMessages"/>
> </t:block>
> The TML of the property editor itself is :
> <t:label for="s11"/> <t:textfield t:id="s12"/> <br/>
> <t:label for="s21"/> : <t:textfield t:id="s22" /> <br/>
> <t:checkbox t:id="showFragment1" t:mixins="triggerfragment" fragment="fragment1"/>
> <t:formfragment t:id="fragment1" visible="showFragment1">
> <t:label for="t11"/> <t:textfield t:id="t12"/> <br/>
> <t:label for="t21"/> : <t:textfield t:id="t22" /> <br/>
> </t:formfragment>
> With a basic POJO class associated to that, and the declaration of the parameters :
> public class MyPropertyEditor {
> @Parameter(name="propertyValue",required=true)
> private MyProperty myProperty ;
>
> @Parameter(name="propertyName",required=true)
> private String propertyName ;
>
> @Parameter(name="messages",required=true)
> private Messages messages ;
> private String s11, s12, s21, s22, t11, t12, t21, t22 ;
> ...
> }
> If I try to read / update the myPropery parameter in that class :
> - from the s11, s12, s21, s22 getter or setter -> everything works ok, I can read or update this parameter
> - from the t11, t12, t21 or t22 getter or setter, I get the following stack trace :
> An unexpected application exception has occurred.
> * org.apache.tapestry5.runtime.ComponentEventException
> Failure writing parameter 'value' of component AppPropertyEditBlocks:mypropertyeditor.content2: Failure reading parameter 'propertyValue' of component AppPropertyEditBlocks:mypropertyeditor: No object of type org.apache.tapestry5.services.PropertyEditContext is available from the Environment. Available types are org.apache.tapestry5.ValidationTracker, org.apache.tapestry5.services.ComponentEventResultProcessor, org.apache.tapestry5.services.FormSupport, org.apache.tapestry5.services.Heartbeat.
> context
> eventType
> action
> location
> classpath:org/.../webapp/components/item/AbstractCreate.tml, line 6, column 24
> 1 <t:container xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
> 2
> 3 ${message:title}
> 4 <br/>
> 5
> 6 <t:form t:id="create">
> 7 <t:errors/>
> 8 <t:beaneditor t:id="createEditor" object="item" exclude="prop:excludelist"/>
> 9 <t:submit value="message:create"/>
> 10 </t:form>
> 11
> * org.apache.tapestry5.ioc.internal.util.TapestryException
> Failure writing parameter 'value' of component AppPropertyEditBlocks:mypropertyeditor.content2: Failure reading parameter 'propertyValue' of component AppPropertyEditBlocks:mypropertyeditor: No object of type org.apache.tapestry5.services.PropertyEditContext is available from the Environment. Available types are org.apache.tapestry5.ValidationTracker, org.apache.tapestry5.services.ComponentEventResultProcessor, org.apache.tapestry5.services.FormSupport, org.apache.tapestry5.services.Heartbeat.
> location
> classpath:org/.../webapp/components/editor/MyPropertyEditor.tml, line 21, column 62
> 16 <t:checkbox t:id="showFragment1" t:mixins="triggerfragment" fragment="fragment1"/>
> 17 <t:label for="showFragment1"/>
> 18
> 19 <t:formfragment t:id="fragment1" visible="showFragment1">
> 20 <t:label for="t11"/> : <t:textfield t:id="t12"/>
> 21 <t:label for="t21"/> : <t:textfield t:id="t33" />
> 22 </t:formfragment>
> 23
> 24
> 25 </td></tr>
> 26 </table>
> * org.apache.tapestry5.ioc.internal.util.TapestryException
> Failure reading parameter 'propertyValue' of component AppPropertyEditBlocks:mypropertyeditor: No object of type org.apache.tapestry5.services.PropertyEditContext is available from the Environment. Available types are org.apache.tapestry5.ValidationTracker, org.apache.tapestry5.services.ComponentEventResultProcessor, org.apache.tapestry5.services.FormSupport, org.apache.tapestry5.services.Heartbeat.
> location
> classpath:org/.../webapp/pages/AppPropertyEditBlocks.tml, line 7, column 73
> 2
> 3 <t:block t:id="myproperty">
> 4 <t:editor.mypropertyeditor t:id="myPropertyEditor"
> 5 propertyvalue="prop:context.propertyValue"
> 6 propertyname="prop:context.label"
> 7 messages="prop:context.containerMessages"/>
> 8 </t:block>
> 9
> * java.lang.RuntimeException
> No object of type org.apache.tapestry5.services.PropertyEditContext is available from the Environment. Available types are org.apache.tapestry5.ValidationTracker, org.apache.tapestry5.services.ComponentEventResultProcessor, org.apache.tapestry5.services.FormSupport, org.apache.tapestry5.services.Heartbeat.
> Stack trace
> o org.apache.tapestry5.internal.services.EnvironmentImpl.peekRequired(EnvironmentImpl.java:73)
> o org.limc.webapp.pages.AppPropertyEditBlocks._$environment_read_context(AppPropertyEditBlocks.java)
> o org.limc.webapp.pages.AppPropertyEditBlocks.getContext(AppPropertyEditBlocks.java:97)
> o org.apache.tapestry5.internal.bindings.PropBinding.get(PropBinding.java:53)
> o org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.readParameter(InternalComponentResourcesImpl.java:237)
> o org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.readParameter(InternalComponentResourcesImpl.java:252)
> o org.limc.webapp.components.editor.MyPropertyEditor._$read_parameter_propertyValue(MyPropertyEditor.java)
> o org.limc.webapp.components.editor.MyPropertyEditor.addTextPair(MyPropertyEditor.java:111)
> o org.limc.webapp.components.editor.MyPropertyEditor.setContent2(MyPropertyEditor.java:220)
> o org.apache.tapestry5.internal.bindings.PropBinding.set(PropBinding.java:66)
> o org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.writeParameter(InternalComponentResourcesImpl.java:273)
> o org.apache.tapestry5.corelib.base.AbstractTextField._$update_parameter_value(AbstractTextField.java)
> o org.apache.tapestry5.corelib.base.AbstractTextField.processSubmission(AbstractTextField.java:211)
> o org.apache.tapestry5.corelib.base.AbstractField.processSubmission(AbstractField.java:196)
> o org.apache.tapestry5.corelib.base.AbstractField.access$100(AbstractField.java:33)
> o org.apache.tapestry5.corelib.base.AbstractField$ProcessSubmission.execute(AbstractField.java:103)
> o org.apache.tapestry5.corelib.base.AbstractField$ProcessSubmission.execute(AbstractField.java:97)
> o org.apache.tapestry5.corelib.components.Form.executeStoredActions(Form.java:396)
> o org.apache.tapestry5.corelib.components.Form._$advised$onAction(Form.java:315)
> o org.apache.tapestry5.corelib.components.Form$onAction$invocation_11a730bb10b.invokeAdvisedMethod(Form$onAction$invocation_11a730bb10b.java)
> o org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:71)
> o org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(LoggingAdvice.java:37)
> o org.apache.tapestry5.internal.transform.LogWorker$1.advise(LogWorker.java:54)
> o org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:80)
> o org.apache.tapestry5.corelib.components.Form.onAction(Form.java)
> o org.apache.tapestry5.corelib.components.Form.dispatchComponentEvent(Form.java)
> o org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:872)
> o org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1025)
> o org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:67)
> o org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42)
> o org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
> o org.apache.tapestry5.services.TapestryModule$37.handle(TapestryModule.java:1987)
> o org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:135)
> o org.apache.tapestry5.services.TapestryModule$12.service(TapestryModule.java:938)
> o org.limc.webapp.services.AppModule$3.service(AppModule.java:148)
> o org.limc.webapp.services.AppModule$1.service(AppModule.java:45)
> o org.apache.tapestry5.internal.services.LocalizationFilter.service(LocalizationFilter.java:42)
> o org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:586)
> o org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
> o org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79)
> o org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93)
> o org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84)
> o org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:75)
> o org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106)
> o org.apache.tapestry5.services.TapestryModule$11.service(TapestryModule.java:918)
> o org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
> o org.limc.webapp.services.AppModule$2.service(AppModule.java:58)
> o org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
> o org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:168)
> o org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821)
> o org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471)
> o org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
> o org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
> o org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
> o org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
> o org.mortbay.http.HttpServer.service(HttpServer.java:909)
> o org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
> o org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
> o org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
> o org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
> o org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
> o org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
For additional commands, e-mail: dev-help@tapestry.apache.org