Unexpected portlet reinitialization in noscript mode

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Unexpected portlet reinitialization in noscript mode

Jeroen Hoffman
Hi,

I have discovered some unexpected behaviour in OrbeonFormsPortlet in noscript
mode, while developing an xforms switch/case construction. The behaviour is that
when a field in a case is left empty and one toggles to another case, all form
values disappear altogether and the initial case is shown, i.e. the portlet
seems to be reinitialized.

No warnings or errors appear in orbeon.log.

I've narrowed it down to a simple test case with three stages having each one
input. If values are filled in, all goes well, but if "Next" or "Previous" is
hit at any stage without having entered text, the initial portlet view is shown.

When directly accessing the app (http://localhost:8080/orbeon/portlet-test/) all
goes well.

This is my setup:
- Deployed the latest nightly build war in Jetspeed portal as portlet application
- Changed configuration:
set oxf.xforms.noscript to true
set oxf.epilogue.theme and oxf.epilogue.theme.portlet to oxf:/config/theme-plain.xsl
- Copied portlet-test to resources/apps
- Added standard OrbeonFormsPortlet to my portal page
- Made a link to /portlet-test/ in resources/apps/portlet-welcome/view.xhtml
to navigate from the initial welcome portlet to the test portlet.

Please have a look at this?

Thanks,
Jeroen




--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws

portlet-test.zip (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Unexpected portlet reinitialization in noscript mode

Jeroen Hoffman
Hi again,

I tested my portet-test application with the same setup on Liferay-5.2.2
/ Tomcat 6 combo and that also didn't work out: even when a value _was_
entered a toggle to the next stage failed, without any logging.

Jeroen


Jeroen Hoffman wrote:

> Hi,
>
> I have discovered some unexpected behaviour in OrbeonFormsPortlet in
> noscript mode, while developing an xforms switch/case construction.
> The behaviour is that when a field in a case is left empty and one
> toggles to another case, all form values disappear altogether and the
> initial case is shown, i.e. the portlet seems to be reinitialized.
>
> No warnings or errors appear in orbeon.log.
>
> I've narrowed it down to a simple test case with three stages having
> each one input. If values are filled in, all goes well, but if "Next"
> or "Previous" is hit at any stage without having entered text, the
> initial portlet view is shown.
>
> When directly accessing the app
> (http://localhost:8080/orbeon/portlet-test/) all goes well.
>
> This is my setup:
> - Deployed the latest nightly build war in Jetspeed portal as portlet
> application
> - Changed configuration:
> set oxf.xforms.noscript to true
> set oxf.epilogue.theme and oxf.epilogue.theme.portlet to
> oxf:/config/theme-plain.xsl
> - Copied portlet-test to resources/apps
> - Added standard OrbeonFormsPortlet to my portal page
> - Made a link to /portlet-test/ in
> resources/apps/portlet-welcome/view.xhtml
> to navigate from the initial welcome portlet to the test portlet.
>
> Please have a look at this?
>
> Thanks,
> Jeroen
>
>


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Unexpected portlet reinitialization in noscript mode

Alessandro Vernet
Administrator
Jeroen,

On Mar 27, 2009, at 2:37 AM, Jeroen Hoffman wrote:

> I tested my portet-test application with the same setup on  
> Liferay-5.2.2 / Tomcat 6 combo and that also didn't work out: even  
> when a value _was_ entered a toggle to the next stage failed,  
> without any logging.


Is this happening as well if the XForms is deployed outside of the  
portal server? I.e. on a straight Tomcat, say in the XForms sandbox?

Alex
--
Orbeon Forms - Web 2.0 Forms, open-source, for the Enterprise
Orbeon's Blog: http://www.orbeon.com/blog/
Personal Blog: http://avernet.blogspot.com/
Twitter - http://twitter.com/avernet



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Unexpected portlet reinitialization in noscript mode

Jeroen Hoffman
Alessandro Vernet wrote:
>> I tested my portet-test application with the same setup on
>> Liferay-5.2.2 / Tomcat 6 combo and that also didn't work out: even
>> when a value _was_ entered a toggle to the next stage failed, without
>> any logging.
> Is this happening as well if the XForms is deployed outside of the
> portal server? I.e. on a straight Tomcat, say in the XForms sandbox?
Well, running with oxf.xforms.noscript to true makes the sandbox
unusable as the button "Run XForms" won't enable.

However, when testing directly at
http://localhost:8080/orbeon/portlet-test/ this is not happening, so it
must be a portlet issue.

Jeroen




--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Unexpected portlet reinitialization in noscript mode

Alessandro Vernet
Administrator
Jeroen,

On Apr 3, 2009, at 12:38 AM, Jeroen Hoffman wrote:

> Well, running with oxf.xforms.noscript to true makes the sandbox  
> unusable as the button "Run XForms" won't enable.

Good point. This is now fixed. For reference, the bug is:

http://forge.ow2.org/tracker/index.php?func=detail&aid=313578&group_id=168&atid=350207

> However, when testing directly at http://localhost:8080/orbeon/portlet-test/ 
>  this is not happening, so it must be a portlet issue.

Thank you for checking this. I am sorry, but we won't be able to help  
you much with this on the list, but please let us know if you find a  
solution to this one.

Alex
--
Orbeon Forms - Web 2.0 Forms, open-source, for the Enterprise
Orbeon's Blog: http://www.orbeon.com/blog/
Personal Blog: http://avernet.blogspot.com/
Twitter - http://twitter.com/avernet



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Unexpected portlet reinitialization in noscript mode

Jeroen Hoffman


Alessandro Vernet wrote:
>
>> However, when testing directly at
>> http://localhost:8080/orbeon/portlet-test/ this is not happening, so
>> it must be a portlet issue.
>
> Thank you for checking this. I am sorry, but we won't be able to help
> you much with this on the list, but please let us know if you find a
> solution to this one.

It appears in our code (not the test-app) we have a workaround which is saving
the instance in xml-db just before toggling. We actually don't know why that
works.. maybe you have a clue?

However, as this workaround may raise a performance-issue, I really would like
to get it working without it. Could you give me some pointers on where to start
here?

And, would you say this is a confirmed bug now?

Thanks
Jeroen






--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Unexpected portlet reinitialization in noscript mode

Alessandro Vernet
Administrator
On Apr 13, 2009, at 12:51 PM, Jeroen Hoffman wrote:
> It appears in our code (not the test-app) we have a workaround  
> which is saving the instance in xml-db just before toggling. We  
> actually don't know why that works.. maybe you have a clue?
>
> However, as this workaround may raise a performance-issue, I really  
> would like to get it working without it. Could you give me some  
> pointers on where to start here?

I will bring Erik's attention to this thread; he should be able to  
give you some pointer of where to look in the Java code.

> And, would you say this is a confirmed bug now?

The behavior you describe certainly sounds like a bug.

Alex
--
Orbeon Forms - Web 2.0 Forms, open-source, for the Enterprise
Orbeon's Blog: http://www.orbeon.com/blog/
Personal Blog: http://avernet.blogspot.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Unexpected portlet reinitialization in noscript mode

Erik Bruchez
Administrator
In reply to this post by Jeroen Hoffman
> Alessandro Vernet wrote:
>>> However, when testing directly at http://localhost:8080/orbeon/portlet-test/ 
>>>  this is not happening, so it must be a portlet issue.
>> Thank you for checking this. I am sorry, but we won't be able to  
>> help you much with this on the list, but please let us know if you  
>> find a solution to this one.
>
> It appears in our code (not the test-app) we have a workaround which  
> is saving the instance in xml-db just before toggling. We actually  
> don't know why that works.. maybe you have a clue?

Without debugging the code, it is beyond me why the issue occurs in  
the first place, or why your workaround would work either!

You can try a few (unpleasant) things:

* Enable XForms logging and check what's happening
* Use a Java debugger and check if XFormsToggleAction.java is reached  
what happens after that

> However, as this workaround may raise a performance-issue, I really  
> would like to get it working without it. Could you give me some  
> pointers on where to start here?
> And, would you say this is a confirmed bug now?

We haven't had any time to reproduce it but if things are as you  
describe them, it is most certainly a bug!

-Erik

--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Unexpected portlet reinitialization in noscript mode

Jeroen Hoffman
> You can try a few (unpleasant) things:
>
> * Enable XForms logging and check what's happening
> * Use a Java debugger and check if XFormsToggleAction.java is reached what
> happens after that

So I finally got the chance to debug.

I got as far as the point where an XFormsSelectEvent is dispatched in method
XFormsSwitchControl.setSelectedCase(), called from
XFormsCaseControl.toggle(), called from
XFormsToggleAction.execute().

This flow is the same for both the case where input is entered and all
goes well, and the case where input is not entered and all instance
data disappears.

I don't know where to look next.

Could you have a look at this please? Or raise an issue?

Thanks
Jeroen


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Unexpected portlet reinitialization in noscript mode

Erik Bruchez
Administrator
Jeroen,

> So I finally got the chance to debug.
>
> I got as far as the point where an XFormsSelectEvent is dispatched  
> in method
> XFormsSwitchControl.setSelectedCase(), called from
> XFormsCaseControl.toggle(), called from
> XFormsToggleAction.execute().
>
> This flow is the same for both the case where input is entered and all
> goes well, and the case where input is not entered and all instance
> data disappears.
>
> I don't know where to look next.
>
> Could you have a look at this please? Or raise an issue?

So I assume the action returns just fine?

Is this occurring in response to an Ajax request, or to a portlet  
submission? You should be able to tell with Firebug. If Ajax, what  
does the Ajax response look like?

-Erik

--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Unexpected portlet reinitialization in noscript mode

Jeroen Hoffman

Erik Bruchez wrote:

> Jeroen,
>
>> So I finally got the chance to debug.
>>
>> I got as far as the point where an XFormsSelectEvent is dispatched in
>> method
>> XFormsSwitchControl.setSelectedCase(), called from
>> XFormsCaseControl.toggle(), called from
>> XFormsToggleAction.execute().
>>
>> This flow is the same for both the case where input is entered and all
>> goes well, and the case where input is not entered and all instance
>> data disappears.
>>
>> I don't know where to look next.
>>
>> Could you have a look at this please? Or raise an issue?
>
>
> So I assume the action returns just fine?
>
> Is this occurring in response to an Ajax request, or to a portlet
> submission? You should be able to tell with Firebug. If Ajax, what does
> the Ajax response look like?
>
We're in noscript mode so there's no Ajax involved. I described the set up in
the first post of this thread.

As I interpret things, the action itself seems to return fine but the view makes
the portlet return to initial state. This happens only when a field is left
empty and a toggle is used towards a next or previous case.

Jeroen



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Unexpected portlet reinitialization in noscript mode

Erik Bruchez
Administrator
>> So I assume the action returns just fine?

>> Is this occurring in response to an Ajax request, or to a portlet  
>> submission? You should be able to tell with Firebug. If Ajax, what  
>> does the Ajax response look like?
>
> We're in noscript mode so there's no Ajax involved. I described the  
> set up in the first post of this thread.
>
> As I interpret things, the action itself seems to return fine but  
> the view makes the portlet return to initial state. This happens  
> only when a field is left empty and a toggle is used towards a next  
> or previous case.
The next step would be to look at XFormsServer.java. In there, around  
line 418 ("if (contentHandler != null)"), a decision is made as to  
what the response should look like.

I am not sure I am helping much because this is obviously  a bit  
tricky to debug.

-Erik

--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Unexpected portlet reinitialization in noscript mode

Jeroen Hoffman
On Fri, May 15, 2009 at 5:38 AM, Erik Bruchez <[hidden email]> wrote:

>>> So I assume the action returns just fine?
>>> Is this occurring in response to an Ajax request, or to a portlet
>>> submission? You should be able to tell with Firebug. If Ajax, what does the
>>> Ajax response look like?
>>
>> We're in noscript mode so there's no Ajax involved. I described the set up
>> in the first post of this thread.
>>
>> As I interpret things, the action itself seems to return fine but the view
>> makes the portlet return to initial state. This happens only when a field is
>> left empty and a toggle is used towards a next or previous case.
>
> The next step would be to look at XFormsServer.java. In there, around line
> 418 ("if (contentHandler != null)"), a decision is made as to what the
> response should look like.
>
> I am not sure I am helping much because this is obviously  a bit tricky to
> debug.
Well, I debugged there and on that level it seems fine IFAICS, the
outputNoscriptResponse is called always which can be expected.
However, I lack the knowledge to determine where it goes wrong.. is
the data behind the rendering already wrong or is the rendering itself
wrong?

I won't be able to work much in this subject, could you create an
issue for this?

Thanks
Jeroen


--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Unexpected portlet reinitialization in noscript mode

Erik Bruchez
Administrator
> Well, I debugged there and on that level it seems fine IFAICS, the
> outputNoscriptResponse is called always which can be expected.
> However, I lack the knowledge to determine where it goes wrong.. is
> the data behind the rendering already wrong or is the rendering itself
> wrong?

It's hard to tell without investigating. Thanks for looking that far  
into it!

> I won't be able to work much in this subject, could you create an
> issue for this?

Just did:

http://forge.ow2.org/tracker/index.php?func=detail&aid=313796&group_id=168&atid=350207

-Erik

--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws