Re: Struts on IBM WAS 4.0 - Error removing attributes from request sc ope!

2001-07-25 Thread Pravin George

you're right Websphere 4.0 is a pain to work with. I did get a struts
application running on 3.5.3 but not on any later version.



Calabrese, Jason" wrote:

> Why can't IBM keep up.  I don't think I'd ever recommended Websphere or
> any other IBM java application.
>
> -Original Message-
> From: Boulatian, Misak [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, July 25, 2001 8:07 AM
> To: [EMAIL PROTECTED]
> Subject: RE: Struts on IBM WAS 4.0 - Error removing attributes from
> reques t sc ope!
>
> It seems like you have the same problem as I was having with Powertier
> app
> server. The solution was that
> the powertier current release was coming with an older jasper libraries
> (jsp
> engine) but struts is using the newer
> ones. I hope this helps.
> Thanks
> Misak
>
> -Original Message-
> From: Pravin George [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, July 24, 2001 7:26 AM
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: RE: Struts on IBM WAS 4.0 - Error removing attributes from
> reques t sc ope!
>
> Hi everyone,
>
> I wanted to clarify the status of Struts and Websphere 4
> compatability. As a business partner to IBM, we are on the beta testing
> program for Websphere 4.0 . This particular issue was brought to their
> attention a couple of weeks ago.  Last week we received word that it has
> been fixed in the latest beta build and will not be an issue in the
> final GA release.
>
>  Pravin George,
>  Software Engineer,
>  eBuilt Inc. ,
>  Irvine, CA 92614.
>
>   RE: Struts on IBM WAS 4.0 - Error removing attributes from
> reques t sc ope!
>  Date:
>   Tue, 24 Jul 2001 13:16:48 -0700
> From:
>   "Calabrese, Jason" <[EMAIL PROTECTED]>
>  Reply-To:
>   [EMAIL PROTECTED]
>To:
>   "'[EMAIL PROTECTED]'"
> <[EMAIL PROTECTED]>
>
> I'm running struts on Websphere 3.5.4 and had similar problems.
>
> This is the response I got.
>
> > Check this out..
> >
> http://www.mail-archive.com/struts-user@jakarta.apache.org/msg10964.html
>
> > And..
> > Sure thing - I already sent it but the list refused it due to its file
>
> size.
> > As an alternative, I'll put it up on my personal FTP space and anyone
> who
> > wants it can download it from there! :)
>
> > Struts.jar with Form tag modifications:
> http://www.enfused.com/struts.jar
>
> -Original Message-
> From: Mark Wilson [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, July 24, 2001 1:07 PM
> To: '[EMAIL PROTECTED]'
> Subject: Struts on IBM WAS 4.0 - Error removing attributes from request
> sc ope!
>
> Hello, thanks for you're attention.
>
> I am deploying the struts-example app on IBM Websphere App Server 4.0
> and
> receive an IllegalArgumentException - Can't remove attribute from
> request
> scope.
>
> the situation:
>
> I have drilled into the problem and discovered that IBM is using a
> significantly different implementation of the class,
> org.apache.jasper.runtime.PageContextImpl.  Their class alters the logic
>
> of
> removing attributes using the methods removeAttribute(String s, int i)
> and
> removeAttribute(String s).
>
> I have included the code in the next section of the e-mail.  In summary,
>
> using WAS 4.0, attributes are not removed from request scope.
>
> This conflicts most directly with the struts framework class,
> org.apache.struts.taglib.html.FormTag.  FormTag calls
> pageContext.removeAttribute(Constants.BEAN_KEY,
> PageContext.REQUEST_SCOPE)
> and pageContext.removeAttribute(Constants.FORM_KEY,
> PageContext.REQUEST_SCOPE) within the doEndTag() method.
>
> Either of these method calls will generate an IllegalArgumentException
> on
> WAS 4.0.
>
> the code (more or less):
>
> org.apache.jasper.runtime.PageContextImpl (note:  not the same code as
> used
> in tomcat's implementation...)
>
> public void removeAttribute(String s, int i)
> {
> switch (i)
> {
> case PAGE_SCOPE:
> pageScopeAttributes.remove(s);
> break;
>
> case REQUEST_SCOPE:
> throw new IllegalArgumentException("Can't remove Attributes
> from
> request scope");
>
> case SESSION_SCOPE:
> if (session == null)
> throw new IllegalArgumentException("Can't access
> SESSION_SCOPE without an HttpSession");
> theSession.removeAttribute(s);
> break;
>
> case APPLICATION_SCOPE:
> t

RE: Struts on IBM WAS 4.0 - Error removing attributes from reques t sc ope!

2001-07-24 Thread Pravin George

Hi everyone,

I wanted to clarify the status of Struts and Websphere 4
compatability. As a business partner to IBM, we are on the beta testing
program for Websphere 4.0 . This particular issue was brought to their
attention a couple of weeks ago.  Last week we received word that it has
been fixed in the latest beta build and will not be an issue in the
final GA release.


 Pravin George,
 Software Engineer,
 eBuilt Inc. ,
 Irvine, CA 92614.





  RE: Struts on IBM WAS 4.0 - Error removing attributes from
reques t sc ope!
 Date:
  Tue, 24 Jul 2001 13:16:48 -0700
From:
  "Calabrese, Jason" <[EMAIL PROTECTED]>
 Reply-To:
  [EMAIL PROTECTED]
   To:
  "'[EMAIL PROTECTED]'"
<[EMAIL PROTECTED]>



I'm running struts on Websphere 3.5.4 and had similar problems.

This is the response I got.

> Check this out..
>
http://www.mail-archive.com/struts-user@jakarta.apache.org/msg10964.html

> And..
> Sure thing - I already sent it but the list refused it due to its file

size.
> As an alternative, I'll put it up on my personal FTP space and anyone
who
> wants it can download it from there! :)

> Struts.jar with Form tag modifications:
http://www.enfused.com/struts.jar


-Original Message-
From: Mark Wilson [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, July 24, 2001 1:07 PM
To: '[EMAIL PROTECTED]'
Subject: Struts on IBM WAS 4.0 - Error removing attributes from request
sc ope!


Hello, thanks for you're attention.

I am deploying the struts-example app on IBM Websphere App Server 4.0
and
receive an IllegalArgumentException - Can't remove attribute from
request
scope.


the situation:

I have drilled into the problem and discovered that IBM is using a
significantly different implementation of the class,
org.apache.jasper.runtime.PageContextImpl.  Their class alters the logic

of
removing attributes using the methods removeAttribute(String s, int i)
and
removeAttribute(String s).

I have included the code in the next section of the e-mail.  In summary,

using WAS 4.0, attributes are not removed from request scope.

This conflicts most directly with the struts framework class,
org.apache.struts.taglib.html.FormTag.  FormTag calls
pageContext.removeAttribute(Constants.BEAN_KEY,
PageContext.REQUEST_SCOPE)
and pageContext.removeAttribute(Constants.FORM_KEY,
PageContext.REQUEST_SCOPE) within the doEndTag() method.

Either of these method calls will generate an IllegalArgumentException
on
WAS 4.0.


the code (more or less):

org.apache.jasper.runtime.PageContextImpl (note:  not the same code as
used
in tomcat's implementation...)

public void removeAttribute(String s, int i)
{
switch (i)
{
case PAGE_SCOPE:
pageScopeAttributes.remove(s);
break;

case REQUEST_SCOPE:
throw new IllegalArgumentException("Can't remove Attributes
from
request scope");

case SESSION_SCOPE:
if (session == null)
throw new IllegalArgumentException("Can't access
SESSION_SCOPE without an HttpSession");
theSession.removeAttribute(s);
break;

case APPLICATION_SCOPE:
theContext.removeAttribute(s);
break;
}
}


// and ...

   public void removeAttribute(String s)
{
pageScopeAttributes.remove(s);
}

   // (pageScopeAttributes is a Hashtable of objects stored at Page
scope
only!)


a partial solution:

Replacing the removeAttribute(String s, int i) method calls with
removeAttribute(String s) within the struts class, FormTag.doEndTag()
relieves the exception, but on WAS 4.0, it will not remove the
attribute!
(in fact, only attributes found in page scope will be removed when the
method, removeAttribute(String s) is called.)


testing results:

Even though the attributes weren't removed from the request scope, those

attributes were replaced by new objects the next time.  This didn't seem

to
affect the observable behavior of the struts example application.


the question(s):

We really, really want to use struts on WAS 4.0.  There seems to be some

logic within struts that relates to "null" attributes.

What are the architectural implications of running an app built upon
struts
that will never have it's attributes removed from request scope?

If there are implications, are there ways to work around the problems?

Is it feasible to extend the struts framework to specifically target the

changes noted in WAS 4.0?  If so, do you have any recommendations how to

go
about doing this?


Thank you very much,
Mark