session expires in netscape 4.78, 4.79

hi,

while checking for browser compatiablilty of a site based on tamino/xapplication, i found this exception to occur while showing search results, the exception is

Exception is: < JspException >

Exception error message: <002: Parameter no longer meaningful. Either session expired or you have pressed the Back button.>
Stacktrace is:

<MinorEnvironmentException: 002: Parameter no longer meaningful. Either session expired or you have pressed the Back button.
com.softwareag.xtools.xapplication.jsp.NavigationException
null
at com.softwareag.xtools.xapplication.jsp.RequestContext.forRequest(RequestContext.java:249)
at com.softwareag.xtools.xapplication.jsp.JspTag.checkContext(JspTag.java:230)


This happens in Netscape 4.78, and netscape 4.79
, how ever the website works fine on 6.0,6.1,6.2 and all IE5.5+

Any directions on this.
regards and thanks for your time
Amit



X-Application Version: 3.1.2,
Tamino Version : 3.1.1
Platform : NT, Win2k, Solaris, …
WebContainer : Tomcat 3.3
JDK Version : 1.3.1

[This message was edited by Harald Wolf on 23 May 2002 at 14:58.]

Hi Amit,

would you please describe more detailed how you have tested your application with netscape, usually it should work.

Here are two possibilties, how your exception could occur:
1. The session timed out: test your settings in your tomcat environment.
2. You have copied an url containg parameters to a different browser (e.g.:http://localhost:8080/property/InstanceDemo .jsp?:coded=349370202).
In this case, you are trying to access information from a different session.

Every browser instance uses its own session.

Try to run the application from start with netscape than it should work.

Thorsten

Hi Thorsten Raab,
Thanks for your reply,
No i did not copy url from one browser on to another one. So the session should have been started correctly.
I have noticed though that the the problem with netscape 4.7? occurs if i use form input element for queries and that too with Xapplication 3.1.2. I am not sure if the attached jsp source will be of any help,
Also attached is a more detailed error message in error.txt.

please advice.

regards
amit
Desktop.zip (4.11 KB)

Hello amit,

some hints how to narrow down the Netscape 4.7 problem

  • do the X-Application JSP samples run properly?
  • does your Tomcat handles URLs case sensitive?
    Please check topic
    Tip: How to avoid missing client session when mixing upper/lower case in URL for more information.
    Which is your Operating System?
  • are your X-App Tags nested properly?
    E.g. in the index.jsp page there is at the end a bdm:form outside the module tag. But this should not cause your reported problem.
  • check in list_xx.java in the Tomcat working directory which tag causes the problem (stack trace reports line 80). It probably will be the module tag.
  • X-Applications Session handling uses standard jsp mechanisms (cookies). In your jsp page you have implemented some Cookie handling as Scriptlet. Does a small jsp page run with Cookies that uses such a scriptlet only (no X-Application tags)?



Regards, Harald

Hi Amit,

I tried to find out if there is something strange with Netscape 4.78.
I have tested several applications (e.g. the simple examples of X-Application) with different
Browsers like IE 6.0, Netscape 6.1 and Opera 6.01 and they worked fine, but with Netscape 4.78 indeed unexpected behavior occurred:

It seems, that Netscape 4.78 handles input fields contrary.
X-Application generates hidden fields in order to handle the application context.
IE6, Netscape 6.1 and Opera 6.01 send these fields with the request to the server either if their value is defined or not. Netscape 4.78 seem
to send only input fields with a defined value, what may cause irritations within the application.

In order to prevent these irritations, it must be ensured that all the input fields are sent back to the server.

I changed the code that way that the hidden fields will be set with an empty value. After this modification the applications show the same behavior with Netscape 4.78 as with the other browsers.

Here a simple guide:


  • 1. Replace the method ArgumentsCodec.writeHiddenFields with the following snippet:

    <BR>    public void writeHiddenFields(Writer dest) throws IOException {<BR>        if (enabled) {<BR>            dest.write("<input type=\"hidden\" name=\":coded\" value=\"\" />");<BR>        } else {<BR>            dest.write("<input type=\"hidden\" name=\":action\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":linkaction\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":document\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":docid\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":base\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":baseindex\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":basestruct\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":elementaction\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":pos\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":usecursorname\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":usecursorindex\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":select\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":extselect\" value=\"\"/>");<BR>            dest.write("<input type=\"hidden\" name=\":setchoice\" value=\"\"/>");<BR>        }<BR>    }<BR>


  • 2. Execute the command script build.cmd to rebuild Tamino X-Application.
  • 3. Execute the command script build examples.jsp to rebuild the JSP examples.
  • 4. Execute the command script build demos.jsp to rebuild the JSP demos.
  • 5. Execute the command script build generator to rebuild the Tamino X-Application Generator.
  • 6. Replace the file yourWebApplication\Web-Inf\lib\xapplication.jar with xapplication\lib\debug\xapplication.jar.
  • 7. Restart Tomcat.

Tip:
Delete the content of your Tomcat work directory to prevent irritations concerning Tomcat.

Now it should work, hopefully

We would appreciate testing it, please give us an
answer if it works or not with your application.

regards and thanx

Thorsten

[This message was edited by Harald Wolf on 23 May 2002 at 14:59.]

Thorsten Raab,
Thanks again, Yes the problem was as you suggested and modification in the ArgumentsCodec.java did the trick. It worked fine with my application. Attached is the built jar file. v3.1.2

regards,
Amit
xapplication.jar (314 KB)