Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
Hi all, I just removed this label tag from LoginComponent.tml, which was causing an exception, just to see if the page comes up. ${msg:common.formElement.EnterValidEmail} Now I get blank page, and no exceptions in the log. Can some one tell me whats going on here?.. Please help.. Thanks, Rukmini On Thu, Sep 5, 2013 at 11:43 AM, rukmini n wrote: > Hi All, > > Please help. I'm stuck with same exception > > Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException: > Component Signin:logincomponent_0.fieldvalidationerrormsg has rendered > unbalanced elements; either it has started an element with > MarkupWriter.element() and not followed up with MarkupWriter.end(), or it > has invoked MarkupWriter.end() without first invoking > MarkupWriter.element(). [at > classpath:com/stubhub/ui/components/sh/common/LoginComponent.tml, line 44] > at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$PostRenderCleanupPhase.render(ComponentPageElementImpl.java:475) > > Thanks, > Rukmini > > > On Sat, Aug 31, 2013 at 2:57 PM, rukmini n wrote: > >> Hi Thiago, >> I did follow what, you have suggested, but dint help. I'm still getting >> the same exception. Any other suggestions, will be really appreciated. >> >> Thanks, >> Rukmini >> >> >> On Fri, Aug 30, 2013 at 4:54 PM, Thiago H de Paula Figueiredo < >> thiag...@gmail.com> wrote: >> >>> On Fri, 30 Aug 2013 19:49:38 -0300, rukmini n >>> wrote: >>> >>> msgEle.removeChildren(); msgEle.pop(); >>> >>> I had already suggested you to replace the code above, both lines, to >>> msgEle.remove(), but you left the call to pop(), which is quite probably >>> the source of your problem. Please pay more attention to the suggestions >>> the list gives you. ;) >>> >>> >>> -- >>> Thiago H. de Paula Figueiredo >>> >>> --**--** >>> - >>> To unsubscribe, e-mail: >>> users-unsubscribe@tapestry.**apache.org >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >> >
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
Hi All, Please help. I'm stuck with same exception Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException: Component Signin:logincomponent_0.fieldvalidationerrormsg has rendered unbalanced elements; either it has started an element with MarkupWriter.element() and not followed up with MarkupWriter.end(), or it has invoked MarkupWriter.end() without first invoking MarkupWriter.element(). [at classpath:com/stubhub/ui/components/sh/common/LoginComponent.tml, line 44] at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$PostRenderCleanupPhase.render(ComponentPageElementImpl.java:475) Thanks, Rukmini On Sat, Aug 31, 2013 at 2:57 PM, rukmini n wrote: > Hi Thiago, > I did follow what, you have suggested, but dint help. I'm still getting > the same exception. Any other suggestions, will be really appreciated. > > Thanks, > Rukmini > > > On Fri, Aug 30, 2013 at 4:54 PM, Thiago H de Paula Figueiredo < > thiag...@gmail.com> wrote: > >> On Fri, 30 Aug 2013 19:49:38 -0300, rukmini n >> wrote: >> >> msgEle.removeChildren(); >>> msgEle.pop(); >>> >> >> I had already suggested you to replace the code above, both lines, to >> msgEle.remove(), but you left the call to pop(), which is quite probably >> the source of your problem. Please pay more attention to the suggestions >> the list gives you. ;) >> >> >> -- >> Thiago H. de Paula Figueiredo >> >> --**--**- >> To unsubscribe, e-mail: >> users-unsubscribe@tapestry.**apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> >
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
Hi Thiago, I did follow what, you have suggested, but dint help. I'm still getting the same exception. Any other suggestions, will be really appreciated. Thanks, Rukmini On Fri, Aug 30, 2013 at 4:54 PM, Thiago H de Paula Figueiredo < thiag...@gmail.com> wrote: > On Fri, 30 Aug 2013 19:49:38 -0300, rukmini n > wrote: > > msgEle.removeChildren(); >> msgEle.pop(); >> > > I had already suggested you to replace the code above, both lines, to > msgEle.remove(), but you left the call to pop(), which is quite probably > the source of your problem. Please pay more attention to the suggestions > the list gives you. ;) > > > -- > Thiago H. de Paula Figueiredo > > --**--**- > To unsubscribe, e-mail: > users-unsubscribe@tapestry.**apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
On Fri, 30 Aug 2013 19:49:38 -0300, rukmini n wrote: msgEle.removeChildren(); msgEle.pop(); I had already suggested you to replace the code above, both lines, to msgEle.remove(), but you left the call to pop(), which is quite probably the source of your problem. Please pay more attention to the suggestions the list gives you. ;) -- Thiago H. de Paula Figueiredo - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
Thiago thanks for reponding. Here is the java code public class FieldValidationErrorMsg { @Parameter(required = true, defaultPrefix="literal") private String fieldId; @Parameter private Form form; @Parameter private Boolean leaveMessage; @Parameter (defaultPrefix="literal") private String errorId; @Parameter (defaultPrefix="literal") private String labelId; @Environmental(false) private ValidationTracker tracker; public void setFieldId(String fieldId) { this.fieldId = fieldId; } public String getFieldId() { return this.fieldId; } public String getLabelId() { return this.labelId; } public void setForm(Form form) { this.form = form; } public void afterRenderBody(MarkupWriter writer) { final String _fieldId = this.fieldId; Field f = new Field() { public String getLabel() { return null; } public boolean isDisabled() { return false; } public String getClientId() { return _fieldId; } public String getControlName() { return _fieldId; } public boolean isRequired() { return false; } }; // grab the FieldValidationErrorMsg component Element msgEle = writer.getElement(); ValidationTracker tracker; if ( this.form != null ) { tracker = this.form.getDefaultTracker(); } else { tracker = this.tracker; } if ( (this.errorId != null && tracker.getError(f) != null && tracker.getError(f).contains(this.errorId)) || (this.errorId == null && tracker.inError(f)) ) { // we need to display the error message, so do nothing, leave it as is } else { // remove the error message, unless there's an instruction to leave it in place if (this.leaveMessage==null || !this.leaveMessage) { msgEle.removeChildren(); msgEle.pop(); } else { // we're leaving it in place, but will hide it on page load by adding a class "hidden" String curClassValue = msgEle.getAttribute("class"); String[] classValues = {"class","hidden "+curClassValue}; msgEle.forceAttributes(classValues); } } } } and FieldValidationErrorMsg tml is http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";> >From whers its being called is Login.tml ${msg:common.formElement.Email} ${msg:common.formElement.EnterValidEmail} Thanks, Rukmini On Fri, Aug 30, 2013 at 2:28 PM, Thiago H de Paula Figueiredo < thiag...@gmail.com> wrote: > On Fri, 30 Aug 2013 18:05:33 -0300, rukmini n > wrote: > > Hi All, >> > > Hi! > > > Any one knows, what might be issue here. I'm still stuck. Please help.. >> > > The error itself happens at com.test.ui.components.sh.**common.** > FieldValidationErrorMsg.**afterRenderBody, so we need its source to help > you. > > > -- > Thiago H. de Paula Figueiredo > > --**--**- > To unsubscribe, e-mail: > users-unsubscribe@tapestry.**apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
On Fri, 30 Aug 2013 18:05:33 -0300, rukmini n wrote: Hi All, Hi! Any one knows, what might be issue here. I'm still stuck. Please help.. The error itself happens at com.test.ui.components.sh.common.FieldValidationErrorMsg.afterRenderBody, so we need its source to help you. -- Thiago H. de Paula Figueiredo - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
Hi All, Any one knows, what might be issue here. I'm still stuck. Please help.. On Tue, Aug 13, 2013 at 2:08 PM, Lenny Primak wrote: > Yup. Things change. Bugs get exposed etc. that's just the way it is > unfortunately. > > > > On Aug 13, 2013, at 5:02 PM, rukmini n wrote: > > > OK.. But this was working fine, earlier.. We upgraded tapestry from > 5.0.15 > > to 5.2.5. Since then we are seeing this issue. > > > > > > Thanks, > > Rukmini > > > > On Tue, Aug 13, 2013 at 12:48 PM, Lenny Primak >wrote: > > > >> I would suggest you crack open the debugger, and debug the code that > >> throws NPE. > >> Even if it's inside Tapestry, it'll shine the light on what's causing it > >> in your code. > >> You will learn the mistake immediately, and learn something new in the > >> process. > >> > >> On Aug 13, 2013, at 3:45 PM, rukmini n wrote: > >> > >>> Hi Thiago.. > >>> > >>> I tried, what you suggested.. But I got the exception. Please help.. > >>> > >>> > >>> Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException [at > >>> classpath:com/test/ui/components/sh/common/LoginComponent.tml, line 44] > >>> at > >> > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:194) > >>> at > >> > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderBodyPhase.render(ComponentPageElementImpl.java:371) > >>> at > >> > org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72) > >>> ... 110 more > >>> Caused by: java.lang.NullPointerException > >>> at org.apache.tapestry5.dom.Node.moveBefore(Node.java:106) > >>> at org.apache.tapestry5.dom.Element.pop(Element.java:657) > >>> at > >> > com.test.ui.components.sh.common.FieldValidationErrorMsg.afterRenderBody(FieldValidationErrorMsg.java:104) > >>> at > >> > com.test.ui.components.sh.common.FieldValidationErrorMsg$MethodAccess_afterRenderBody_1407932bda2.invoke(FieldValidationErrorMsg$MethodAccess_afterRenderBody_1407932bda2.java) > >>> at > >> > org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$Invoker.invoke(RenderPhaseMethodWorker.java:117) > >>> at > >> > org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$RenderPhaseMethodAdvice.advise(RenderPhaseMethodWorker.java:86) > >>> at > >> > org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) > >>> at > >> > com.test.ui.components.sh.common.FieldValidationErrorMsg.afterRenderBody(FieldValidationErrorMsg.java) > >>> at > >> > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderBodyPhase.invokeComponent(ComponentPageElementImpl.java:364) > >>> at > >> > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:176) > >>> ... 112 more > >>> > >>> > >>> Thanks, > >>> Rukmini > >>> > >>> On Tue, Aug 13, 2013 at 12:18 PM, Thiago H de Paula Figueiredo < > >>> thiag...@gmail.com> wrote: > >>> > On Tue, 13 Aug 2013 15:04:54 -0300, rukmini n > wrote: > > Hi Thiago, > > Hi! > > I think the problem is here: > > msgEle.removeChildren(); > > msgEle.pop(); > > Have you tried just using msgEle.remove(), as you seem to want to > remove > the element completely? > > > -- > Thiago H. de Paula Figueiredo > >> > --**--**- > To unsubscribe, e-mail: users-unsubscribe@tapestry.**apache.org< > >> users-unsubscr...@tapestry.apache.org> > For additional commands, e-mail: users-h...@tapestry.apache.org > >> > >> > >> - > >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >> For additional commands, e-mail: users-h...@tapestry.apache.org > >> > >> > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
Yup. Things change. Bugs get exposed etc. that's just the way it is unfortunately. On Aug 13, 2013, at 5:02 PM, rukmini n wrote: > OK.. But this was working fine, earlier.. We upgraded tapestry from 5.0.15 > to 5.2.5. Since then we are seeing this issue. > > > Thanks, > Rukmini > > On Tue, Aug 13, 2013 at 12:48 PM, Lenny Primak wrote: > >> I would suggest you crack open the debugger, and debug the code that >> throws NPE. >> Even if it's inside Tapestry, it'll shine the light on what's causing it >> in your code. >> You will learn the mistake immediately, and learn something new in the >> process. >> >> On Aug 13, 2013, at 3:45 PM, rukmini n wrote: >> >>> Hi Thiago.. >>> >>> I tried, what you suggested.. But I got the exception. Please help.. >>> >>> >>> Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException [at >>> classpath:com/test/ui/components/sh/common/LoginComponent.tml, line 44] >>> at >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:194) >>> at >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderBodyPhase.render(ComponentPageElementImpl.java:371) >>> at >> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72) >>> ... 110 more >>> Caused by: java.lang.NullPointerException >>> at org.apache.tapestry5.dom.Node.moveBefore(Node.java:106) >>> at org.apache.tapestry5.dom.Element.pop(Element.java:657) >>> at >> com.test.ui.components.sh.common.FieldValidationErrorMsg.afterRenderBody(FieldValidationErrorMsg.java:104) >>> at >> com.test.ui.components.sh.common.FieldValidationErrorMsg$MethodAccess_afterRenderBody_1407932bda2.invoke(FieldValidationErrorMsg$MethodAccess_afterRenderBody_1407932bda2.java) >>> at >> org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$Invoker.invoke(RenderPhaseMethodWorker.java:117) >>> at >> org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$RenderPhaseMethodAdvice.advise(RenderPhaseMethodWorker.java:86) >>> at >> org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) >>> at >> com.test.ui.components.sh.common.FieldValidationErrorMsg.afterRenderBody(FieldValidationErrorMsg.java) >>> at >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderBodyPhase.invokeComponent(ComponentPageElementImpl.java:364) >>> at >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:176) >>> ... 112 more >>> >>> >>> Thanks, >>> Rukmini >>> >>> On Tue, Aug 13, 2013 at 12:18 PM, Thiago H de Paula Figueiredo < >>> thiag...@gmail.com> wrote: >>> On Tue, 13 Aug 2013 15:04:54 -0300, rukmini n wrote: Hi Thiago, Hi! I think the problem is here: msgEle.removeChildren(); > msgEle.pop(); Have you tried just using msgEle.remove(), as you seem to want to remove the element completely? -- Thiago H. de Paula Figueiredo >> --**--**- To unsubscribe, e-mail: users-unsubscribe@tapestry.**apache.org< >> users-unsubscr...@tapestry.apache.org> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> >> - >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
OK.. But this was working fine, earlier.. We upgraded tapestry from 5.0.15 to 5.2.5. Since then we are seeing this issue. Thanks, Rukmini On Tue, Aug 13, 2013 at 12:48 PM, Lenny Primak wrote: > I would suggest you crack open the debugger, and debug the code that > throws NPE. > Even if it's inside Tapestry, it'll shine the light on what's causing it > in your code. > You will learn the mistake immediately, and learn something new in the > process. > > On Aug 13, 2013, at 3:45 PM, rukmini n wrote: > > > Hi Thiago.. > > > > I tried, what you suggested.. But I got the exception. Please help.. > > > > > > Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException [at > > classpath:com/test/ui/components/sh/common/LoginComponent.tml, line 44] > >at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:194) > >at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderBodyPhase.render(ComponentPageElementImpl.java:371) > >at > > > org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72) > >... 110 more > > Caused by: java.lang.NullPointerException > >at org.apache.tapestry5.dom.Node.moveBefore(Node.java:106) > >at org.apache.tapestry5.dom.Element.pop(Element.java:657) > >at > > > com.test.ui.components.sh.common.FieldValidationErrorMsg.afterRenderBody(FieldValidationErrorMsg.java:104) > >at > > > com.test.ui.components.sh.common.FieldValidationErrorMsg$MethodAccess_afterRenderBody_1407932bda2.invoke(FieldValidationErrorMsg$MethodAccess_afterRenderBody_1407932bda2.java) > >at > > > org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$Invoker.invoke(RenderPhaseMethodWorker.java:117) > >at > > > org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$RenderPhaseMethodAdvice.advise(RenderPhaseMethodWorker.java:86) > >at > > > org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) > >at > > > com.test.ui.components.sh.common.FieldValidationErrorMsg.afterRenderBody(FieldValidationErrorMsg.java) > >at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderBodyPhase.invokeComponent(ComponentPageElementImpl.java:364) > >at > > > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:176) > >... 112 more > > > > > > Thanks, > > Rukmini > > > > On Tue, Aug 13, 2013 at 12:18 PM, Thiago H de Paula Figueiredo < > > thiag...@gmail.com> wrote: > > > >> On Tue, 13 Aug 2013 15:04:54 -0300, rukmini n > >> wrote: > >> > >> Hi Thiago, > >>> > >> > >> Hi! > >> > >> I think the problem is here: > >> > >> msgEle.removeChildren(); > >>>msgEle.pop(); > >>> > >> > >> Have you tried just using msgEle.remove(), as you seem to want to remove > >> the element completely? > >> > >> > >> -- > >> Thiago H. de Paula Figueiredo > >> > >> > --**--**- > >> To unsubscribe, e-mail: users-unsubscribe@tapestry.**apache.org< > users-unsubscr...@tapestry.apache.org> > >> For additional commands, e-mail: users-h...@tapestry.apache.org > >> > >> > > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
I would suggest you crack open the debugger, and debug the code that throws NPE. Even if it's inside Tapestry, it'll shine the light on what's causing it in your code. You will learn the mistake immediately, and learn something new in the process. On Aug 13, 2013, at 3:45 PM, rukmini n wrote: > Hi Thiago.. > > I tried, what you suggested.. But I got the exception. Please help.. > > > Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException [at > classpath:com/test/ui/components/sh/common/LoginComponent.tml, line 44] >at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:194) >at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderBodyPhase.render(ComponentPageElementImpl.java:371) >at > org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72) >... 110 more > Caused by: java.lang.NullPointerException >at org.apache.tapestry5.dom.Node.moveBefore(Node.java:106) >at org.apache.tapestry5.dom.Element.pop(Element.java:657) >at > com.test.ui.components.sh.common.FieldValidationErrorMsg.afterRenderBody(FieldValidationErrorMsg.java:104) >at > com.test.ui.components.sh.common.FieldValidationErrorMsg$MethodAccess_afterRenderBody_1407932bda2.invoke(FieldValidationErrorMsg$MethodAccess_afterRenderBody_1407932bda2.java) >at > org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$Invoker.invoke(RenderPhaseMethodWorker.java:117) >at > org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$RenderPhaseMethodAdvice.advise(RenderPhaseMethodWorker.java:86) >at > org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) >at > com.test.ui.components.sh.common.FieldValidationErrorMsg.afterRenderBody(FieldValidationErrorMsg.java) >at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderBodyPhase.invokeComponent(ComponentPageElementImpl.java:364) >at > org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:176) >... 112 more > > > Thanks, > Rukmini > > On Tue, Aug 13, 2013 at 12:18 PM, Thiago H de Paula Figueiredo < > thiag...@gmail.com> wrote: > >> On Tue, 13 Aug 2013 15:04:54 -0300, rukmini n >> wrote: >> >> Hi Thiago, >>> >> >> Hi! >> >> I think the problem is here: >> >> msgEle.removeChildren(); >>>msgEle.pop(); >>> >> >> Have you tried just using msgEle.remove(), as you seem to want to remove >> the element completely? >> >> >> -- >> Thiago H. de Paula Figueiredo >> >> --**--**- >> To unsubscribe, e-mail: >> users-unsubscribe@tapestry.**apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
Hi Thiago.. I tried, what you suggested.. But I got the exception. Please help.. Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException [at classpath:com/test/ui/components/sh/common/LoginComponent.tml, line 44] at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:194) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderBodyPhase.render(ComponentPageElementImpl.java:371) at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72) ... 110 more Caused by: java.lang.NullPointerException at org.apache.tapestry5.dom.Node.moveBefore(Node.java:106) at org.apache.tapestry5.dom.Element.pop(Element.java:657) at com.test.ui.components.sh.common.FieldValidationErrorMsg.afterRenderBody(FieldValidationErrorMsg.java:104) at com.test.ui.components.sh.common.FieldValidationErrorMsg$MethodAccess_afterRenderBody_1407932bda2.invoke(FieldValidationErrorMsg$MethodAccess_afterRenderBody_1407932bda2.java) at org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$Invoker.invoke(RenderPhaseMethodWorker.java:117) at org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$RenderPhaseMethodAdvice.advise(RenderPhaseMethodWorker.java:86) at org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) at com.test.ui.components.sh.common.FieldValidationErrorMsg.afterRenderBody(FieldValidationErrorMsg.java) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderBodyPhase.invokeComponent(ComponentPageElementImpl.java:364) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:176) ... 112 more Thanks, Rukmini On Tue, Aug 13, 2013 at 12:18 PM, Thiago H de Paula Figueiredo < thiag...@gmail.com> wrote: > On Tue, 13 Aug 2013 15:04:54 -0300, rukmini n > wrote: > > Hi Thiago, >> > > Hi! > > I think the problem is here: > > msgEle.removeChildren(); >> msgEle.pop(); >> > > Have you tried just using msgEle.remove(), as you seem to want to remove > the element completely? > > > -- > Thiago H. de Paula Figueiredo > > --**--**- > To unsubscribe, e-mail: > users-unsubscribe@tapestry.**apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
On Tue, 13 Aug 2013 15:04:54 -0300, rukmini n wrote: Hi Thiago, Hi! I think the problem is here: msgEle.removeChildren(); msgEle.pop(); Have you tried just using msgEle.remove(), as you seem to want to remove the element completely? -- Thiago H. de Paula Figueiredo - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
Hi Thiago, Did you find any problem with the code? Please respond, thanks in advance.. Thanks, Rukmini On Tue, Aug 13, 2013 at 11:04 AM, rukmini n wrote: > Hi Thiago, > > Thanks for the response: Here is the code; > > import org.apache.tapestry5.Field; > import org.apache.tapestry5.MarkupWriter; > import org.apache.tapestry5.ValidationTracker; > import org.apache.tapestry5.annotations.BeginRender; > import org.apache.tapestry5.annotations.Environmental; > import org.apache.tapestry5.annotations.Parameter; > import org.apache.tapestry5.corelib.components.Form; > import org.apache.tapestry5.dom.Element; > > /** > * test implementation to allow for custom validation error messages below > an input field. > * > * Within a tml file, place something like: > * > * Please enter a valid date > * > * in the vicinity of an input element with matching field id: > *t:value="inHandDate" > * t:translate="string"/> > * > * The component will add attributes for="[fieldId]" and class="error" > (defined > * in the corresponding tml file), and (in case the field had an error) > style="display:block" > * to this label (CSS class error will by default hide the div). > * > * If parameter leaveMessage is omitted or false, the whole error div will > be removed > * from the rendered page if the corresponding input field had no > validation error. > * Otherwise it will be left in place (hidden through CSS) so that > client-side validation > * may use these messages to show if so desired. > * > * If parameter errorId is present, the error message will only show if > the field's > * tracker errorId matches the value of parameter errorId (so you can > define multiple > * messages for the same field: each targeted at a specific validation > error). > * > * If parameter form is present, it will be used as the identifier of the > form that > * contained the input element (so it's only relevant if there are > multiple forms > * on a page). Otherwise, the form will be derived from the environmental > information. > * If parameter form is used, the page's java class will need to have the > proper get > * method for the form: public Form getMyForm() {return this.myForm;} > * > * If parameter labelId is present, the value will be used as id on the > label element. > */ > public class FieldValidationErrorMsg { > > @Parameter(required = true, defaultPrefix="literal") > private String fieldId; > > @Parameter > private Form form; > > @Parameter > private Boolean leaveMessage; //TODO: this should ideally be a > page/flow configuration in stead of a parameter so that we can choose to > leave all error messages in place (but hidden) if those could be used for > client-side validation purposes. > > @Parameter (defaultPrefix="literal") > private String errorId; > > @Parameter (defaultPrefix="literal") > private String labelId; > > @Environmental(false) > private ValidationTracker tracker; > > public void setFieldId(String fieldId) { > this.fieldId = fieldId; > } > public String getFieldId() { > return this.fieldId; > } > public String getLabelId() { > return this.labelId; > } > public void setForm(Form form) { > this.form = form; > } > > public void afterRenderBody(MarkupWriter writer) { > final String _fieldId = this.fieldId; > Field f = new Field() { > public String getLabel() { return null; } > public boolean isDisabled() { return false; } > public String getClientId() { return _fieldId; } > public String getControlName() { return _fieldId; } > public boolean isRequired() { return false; } > }; > > // grab the FieldValidationErrorMsg component > Element msgEle = writer.getElement(); > > ValidationTracker tracker; > if ( this.form != null ) { > tracker = this.form.getDefaultTracker(); > } else { > tracker = this.tracker; > } > > if ( (this.errorId != null && tracker.getError(f) != null && > tracker.getError(f).contains(this.errorId)) > || (this.errorId == null && tracker.inError(f)) ) { > // we need to display the error message, so do nothing, leave > it as is > } else { > // remove the error message, unless there's an instruction to > leave it in place > if (this.leaveMessage==null || !this.leaveMessage) { > msgEle.removeChildren(); > msgEle.pop(); > } else { > // we're leaving it in place, but will hide it on page > load by adding a class "hidden" > String curClassValue = msgEle.getAttribute("class"); > String[] classValues = {"class","hidden "+curClassValue}; > msgEle.forceAttributes(classValues); > } > } > } > > } > > > and
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
Hi Thiago, Thanks for the response: Here is the code; import org.apache.tapestry5.Field; import org.apache.tapestry5.MarkupWriter; import org.apache.tapestry5.ValidationTracker; import org.apache.tapestry5.annotations.BeginRender; import org.apache.tapestry5.annotations.Environmental; import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.corelib.components.Form; import org.apache.tapestry5.dom.Element; /** * test implementation to allow for custom validation error messages below an input field. * * Within a tml file, place something like: * * Please enter a valid date * * in the vicinity of an input element with matching field id: * * * The component will add attributes for="[fieldId]" and class="error" (defined * in the corresponding tml file), and (in case the field had an error) style="display:block" * to this label (CSS class error will by default hide the div). * * If parameter leaveMessage is omitted or false, the whole error div will be removed * from the rendered page if the corresponding input field had no validation error. * Otherwise it will be left in place (hidden through CSS) so that client-side validation * may use these messages to show if so desired. * * If parameter errorId is present, the error message will only show if the field's * tracker errorId matches the value of parameter errorId (so you can define multiple * messages for the same field: each targeted at a specific validation error). * * If parameter form is present, it will be used as the identifier of the form that * contained the input element (so it's only relevant if there are multiple forms * on a page). Otherwise, the form will be derived from the environmental information. * If parameter form is used, the page's java class will need to have the proper get * method for the form: public Form getMyForm() {return this.myForm;} * * If parameter labelId is present, the value will be used as id on the label element. */ public class FieldValidationErrorMsg { @Parameter(required = true, defaultPrefix="literal") private String fieldId; @Parameter private Form form; @Parameter private Boolean leaveMessage; //TODO: this should ideally be a page/flow configuration in stead of a parameter so that we can choose to leave all error messages in place (but hidden) if those could be used for client-side validation purposes. @Parameter (defaultPrefix="literal") private String errorId; @Parameter (defaultPrefix="literal") private String labelId; @Environmental(false) private ValidationTracker tracker; public void setFieldId(String fieldId) { this.fieldId = fieldId; } public String getFieldId() { return this.fieldId; } public String getLabelId() { return this.labelId; } public void setForm(Form form) { this.form = form; } public void afterRenderBody(MarkupWriter writer) { final String _fieldId = this.fieldId; Field f = new Field() { public String getLabel() { return null; } public boolean isDisabled() { return false; } public String getClientId() { return _fieldId; } public String getControlName() { return _fieldId; } public boolean isRequired() { return false; } }; // grab the FieldValidationErrorMsg component Element msgEle = writer.getElement(); ValidationTracker tracker; if ( this.form != null ) { tracker = this.form.getDefaultTracker(); } else { tracker = this.tracker; } if ( (this.errorId != null && tracker.getError(f) != null && tracker.getError(f).contains(this.errorId)) || (this.errorId == null && tracker.inError(f)) ) { // we need to display the error message, so do nothing, leave it as is } else { // remove the error message, unless there's an instruction to leave it in place if (this.leaveMessage==null || !this.leaveMessage) { msgEle.removeChildren(); msgEle.pop(); } else { // we're leaving it in place, but will hide it on page load by adding a class "hidden" String curClassValue = msgEle.getAttribute("class"); String[] classValues = {"class","hidden "+curClassValue}; msgEle.forceAttributes(classValues); } } } } and FieldValidationErrorMsg.tml for the same: http://tapestry.apache.org/schema/tapestry_5_1_0.xsd";> Thanks, Rukmini On Tue, Aug 13, 2013 at 9:55 AM, Thiago H de Paula Figueiredo < thiag...@gmail.com> wrote: > On Tue, 13 Aug 2013 13:48:29 -0300, rukmini n > wrote: > > Hi all, >> > > Hi! > > > I get the below exception while rendering tml file. >> > > What's the Java source code for FieldValidationErrorMsg? > > -- > Thiago H. de Paula Figueired
Re: Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
On Tue, 13 Aug 2013 13:48:29 -0300, rukmini n wrote: Hi all, Hi! I get the below exception while rendering tml file. What's the Java source code for FieldValidationErrorMsg? -- Thiago H. de Paula Figueiredo - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Tapestry 5.2.5: Tapestry Exception "MarkupWriter.element() and not followed up with MarkupWriter.end()"
Hi all, I get the below exception while rendering tml file. 2013-08-12 17:22:12,525 [d701#8/https://myaccount.srwd00.com/login/Signin] priority=ERROR app_name=testapps thread=ajp-127.0.0.3-8009-1 location=RequestExceptionHandler line=40 Unexpected exception: Render queue error in PostRenderCleanup[Signin:logincomponent_0.fieldvalidationerrormsg]: Component Signin:logincomponent_0.fieldvalidationerrormsg has rendered unbalanced elements; either it has started an element with MarkupWriter.element() and not followed up with MarkupWriter.end(), or it has invoked MarkupWriter.end() without first invoking MarkupWriter.element().: org.apache.tapestry5.internal.services.RenderQueueException: Render queue error in PostRenderCleanup[Signin:logincomponent_0.fieldvalidationerrormsg]: Component Signin:logincomponent_0.fieldvalidationerrormsg has rendered unbalanced elements; either it has started an element with MarkupWriter.element() and not followed up with MarkupWriter.end(), or it has invoked MarkupWriter.end() without first invoking MarkupWriter.element(). [at classpath:com/test/ui/components/sh/common/LoginComponent.tml, line 44] at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:84) at org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:127) at $PageRenderQueue_140750a7709.render($PageRenderQueue_140750a7709.java) at $PageRenderQueue_140750a7700.render($PageRenderQueue_140750a7700.java) at org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37) at com.test.ui.services.testModule$4.renderMarkup(testModule.java:267) at $MarkupRenderer_140750a770c.renderMarkup($MarkupRenderer_140750a770c.java) at com.test.ui.services.testModule$5.renderMarkup(testModule.java:281) at $MarkupRenderer_140750a770c.renderMarkup($MarkupRenderer_140750a770c.java) at org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:2089) at $MarkupRenderer_140750a770c.renderMarkup($MarkupRenderer_140750a770c.java) at org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:2073) at $MarkupRenderer_140750a770c.renderMarkup($MarkupRenderer_140750a770c.java) at org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:2055) at $MarkupRenderer_140750a770c.renderMarkup($MarkupRenderer_140750a770c.java) at org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:2040) at $MarkupRenderer_140750a770c.renderMarkup($MarkupRenderer_140750a770c.java) at org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:2026) at $MarkupRenderer_140750a770c.renderMarkup($MarkupRenderer_140750a770c.java) at org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:2008) at $MarkupRenderer_140750a770c.renderMarkup($MarkupRenderer_140750a770c.java) at org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1989) at $MarkupRenderer_140750a770c.renderMarkup($MarkupRenderer_140750a770c.java) at $MarkupRenderer_140750a7708.renderMarkup($MarkupRenderer_140750a7708.java) at org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:47) at $PageMarkupRenderer_140750a7706.renderPageMarkup($PageMarkupRenderer_140750a7706.java) at com.test.ui.services.common.impl.PageJSonResponseRendererDecorator.renderPageResponse(PageJSonResponseRendererDecorator.java:57) at $PageResponseRenderer_140750a75c8.renderPageResponse($PageResponseRenderer_140750a75c8.java) at org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:64) at org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2326) at $PageRenderRequestHandler_140750a75ca.handle($PageRenderRequestHandler_140750a75ca.java) at com.test.ui.services.impl.ClientCacheHandler.handle(ClientCacheHandler.java:60) at $PageRenderRequestHandler_140750a75ca.handle($PageRenderRequestHandler_140750a75ca.java) at com.test.ui.services.impl.testAccessControlHandler.handle(testAccessControlHandler.java:134) at $PageRenderRequestHandler_140750a75ca.handle($PageRenderRequestHandler_140750a75ca.java) at $PageRenderRequestHandler_140750a75c0.handle($PageRenderRequestHandler_140750a75c0.java) at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) at org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47) at $ComponentRequestHandler_140750a75c1.handlePageRender($ComponentRequestHandler_140750a75c1.java) at $ComponentRequestHandler_140750a75a6.handlePageRender($ComponentRequestHandler_140750a75a6.java) at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispa