Re: cvs commit: jakarta-struts/src/share/org/apache/struts/utilRequestUtils.java

2003-03-01 Thread David Graham
How is it any different than the way it was implemented before?  If it 
doesn't find the 1.4 method it uses the 1.3 method.

David



From: "Craig R. McClanahan" <[EMAIL PROTECTED]>
Reply-To: "Struts Developers List" <[EMAIL PROTECTED]>
To: Struts Developers List <[EMAIL PROTECTED]>
Subject: Re: cvs commit: jakarta-struts/src/share/org/apache/struts/util 
RequestUtils.java
Date: Sat, 1 Mar 2003 16:42:21 -0800 (PST)



On Sat, 2 Mar 2003 [EMAIL PROTECTED] wrote:

> Date: 2 Mar 2003 00:22:40 -
> From: [EMAIL PROTECTED]
> Reply-To: Struts Developers List <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
> Subject: cvs commit: jakarta-struts/src/share/org/apache/struts/util
> RequestUtils.java
>
> dgraham 2003/03/01 16:22:40
>
>   Modified:src/share/org/apache/struts/util RequestUtils.java
>   Log:
>   Change encodeURL to not use reflection on every call.
>
Note that this change imposes a 1.4 dependency to build Struts.  That
would be OK with *me* (since I use 1.4 all the time), but may not be OK
with other folks.
Craig

>   Revision  ChangesPath
>   1.91  +26 -15
jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java
>
>   Index: RequestUtils.java
>   ===
>   RCS file: 
/home/cvs/jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java,v
>   retrieving revision 1.90
>   retrieving revision 1.91
>   diff -u -r1.90 -r1.91
>   --- RequestUtils.java	26 Feb 2003 04:48:56 -	1.90
>   +++ RequestUtils.java	2 Mar 2003 00:22:40 -	1.91
>   @@ -142,6 +142,24 @@
> * The context attribute under which we store our prefixes list.
> */
>private static final String PREFIXES_KEY = 
"org.apache.struts.util.PREFIXES";
>   +
>   +/**
>   + * Java 1.4 encode method to use instead of deprecated 1.3 
version.
>   + */
>   +private static Method encode = null;
>   +
>   +/**
>   + * Initialize the encode variable with the 1.4 method if 
available
>   + */
>   +static {
>   +try {
>   +// get version of encode method with two String args
>   +Class[] args = new Class[] { String.class, String.class 
};
>   +encode = URLEncoder.class.getMethod("encode", args);
>   +} catch (NoSuchMethodException e) {
>   +log.debug("Could not find Java 1.4 encode method.  Using 
deprecated version.", e);
>   +}
>   +}
>
>// - 
Public Methods
>
>   @@ -1904,27 +1922,20 @@
> * @return String - the encoded url.
> */
>public static String encodeURL(String url) {
>   -// default to old version
>   -String encodedURL = URLEncoder.encode(url);
>   -Class encoderClass = URLEncoder.class;
>   -
>try {
>   -// get version of encode method with two String args
>   -Class[] args = new Class[] { String.class, String.class 
};
>   -Method encode = encoderClass.getMethod("encode", args);
>
>// encode url with new 1.4 method and UTF-8 encoding
>   -encodedURL = (String) encode.invoke(null, new Object[] { 
url, "UTF-8" });
>   +if (encode != null) {
>   +return (String) encode.invoke(null, new Object[] { 
url, "UTF-8" });
>   +}
>
>} catch (IllegalAccessException e) {
>log.debug("Could not find Java 1.4 encode method.  Using 
deprecated version.", e);
>} catch (InvocationTargetException e) {
>log.debug("Could not find Java 1.4 encode method. Using 
deprecated version.", e);
>   -} catch (NoSuchMethodException e) {
>   -log.debug("Could not find Java 1.4 encode method.  Using 
deprecated version.", e);
>}
>
>   -return encodedURL;
>   +return URLEncoder.encode(url);
>}
>
>}
>
>
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


_
The new MSN 8: advanced junk mail protection and 2 months FREE*  
http://join.msn.com/?page=features/junkmail

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Re: cvs commit: jakarta-struts/src/share/org/apache/struts/utilRequestUtils.java

2003-03-01 Thread Craig R. McClanahan


On Sat, 2 Mar 2003 [EMAIL PROTECTED] wrote:

> Date: 2 Mar 2003 00:22:40 -
> From: [EMAIL PROTECTED]
> Reply-To: Struts Developers List <[EMAIL PROTECTED]>
> To: [EMAIL PROTECTED]
> Subject: cvs commit: jakarta-struts/src/share/org/apache/struts/util
> RequestUtils.java
>
> dgraham 2003/03/01 16:22:40
>
>   Modified:src/share/org/apache/struts/util RequestUtils.java
>   Log:
>   Change encodeURL to not use reflection on every call.
>

Note that this change imposes a 1.4 dependency to build Struts.  That
would be OK with *me* (since I use 1.4 all the time), but may not be OK
with other folks.

Craig


>   Revision  ChangesPath
>   1.91  +26 -15
> jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java
>
>   Index: RequestUtils.java
>   ===
>   RCS file: 
> /home/cvs/jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java,v
>   retrieving revision 1.90
>   retrieving revision 1.91
>   diff -u -r1.90 -r1.91
>   --- RequestUtils.java   26 Feb 2003 04:48:56 -  1.90
>   +++ RequestUtils.java   2 Mar 2003 00:22:40 -   1.91
>   @@ -142,6 +142,24 @@
> * The context attribute under which we store our prefixes list.
> */
>private static final String PREFIXES_KEY = "org.apache.struts.util.PREFIXES";
>   +
>   +/**
>   + * Java 1.4 encode method to use instead of deprecated 1.3 version.
>   + */
>   +private static Method encode = null;
>   +
>   +/**
>   + * Initialize the encode variable with the 1.4 method if available
>   + */
>   +static {
>   +try {
>   +// get version of encode method with two String args
>   +Class[] args = new Class[] { String.class, String.class };
>   +encode = URLEncoder.class.getMethod("encode", args);
>   +} catch (NoSuchMethodException e) {
>   +log.debug("Could not find Java 1.4 encode method.  Using deprecated 
> version.", e);
>   +}
>   +}
>
>// - Public Methods
>
>   @@ -1904,27 +1922,20 @@
> * @return String - the encoded url.
> */
>public static String encodeURL(String url) {
>   -// default to old version
>   -String encodedURL = URLEncoder.encode(url);
>   -Class encoderClass = URLEncoder.class;
>   -
>try {
>   -// get version of encode method with two String args
>   -Class[] args = new Class[] { String.class, String.class };
>   -Method encode = encoderClass.getMethod("encode", args);
>
>// encode url with new 1.4 method and UTF-8 encoding
>   -encodedURL = (String) encode.invoke(null, new Object[] { url, "UTF-8" 
> });
>   +if (encode != null) {
>   +return (String) encode.invoke(null, new Object[] { url, "UTF-8" 
> });
>   +}
>
>} catch (IllegalAccessException e) {
>log.debug("Could not find Java 1.4 encode method.  Using deprecated 
> version.", e);
>} catch (InvocationTargetException e) {
>log.debug("Could not find Java 1.4 encode method. Using deprecated 
> version.", e);
>   -} catch (NoSuchMethodException e) {
>   -log.debug("Could not find Java 1.4 encode method.  Using deprecated 
> version.", e);
>}
>
>   -return encodedURL;
>   +return URLEncoder.encode(url);
>}
>
>}
>
>
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: cvs commit: jakarta-struts/src/share/org/apache/struts/utilRequestUtils.java

2001-06-01 Thread Craig R. McClanahan



On Fri, 1 Jun 2001, Deadman, Hal wrote:

> Does this change mean that there will be a link generated that looks like
> this:
> 
> some.jsp?test=1&test=2
> instead of
> some.jsp?test=1&test=2
> 

Yes, in the generated HTML code of the page (i.e. when you do a view
source).

> If so, I don't think that will work. It doesn't work on Weblogic 6.0.
> Calling getParameterValues() only sees the first value.
> 

In my tests, both Netscape and IE would both send this hyperlink back in
with a '&' instead, so multiple parameter values would still be recognized
in the usual way.  Are there clients that don't do this?

> Hal
> 

Craig


> 
> > -Original Message-
> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> > Sent: Friday, June 01, 2001 4:22 PM
> > To: [EMAIL PROTECTED]
> > Subject: cvs commit: jakarta-struts/src/share/org/apache/struts/util
> > RequestUtils.java
> >
> >
> > craigmcc01/06/01 13:21:41
> >
> >   Modified:src/share/org/apache/struts/util Tag: STRUTS_1_0_BRANCH
> > RequestUtils.java
> >   Log:
> >   Generate "&" instead of "&" in request URIs so that the
> > output is still
> >   legal XML syntax in the value returned by computeURL().
> >
> >   PR:  Bugzilla #1938
> >   Submitted by :  Alessandro Vernet <[EMAIL PROTECTED]> (also supplied
> >   the patch - thanks!)
> >
> >   Revision  ChangesPath
> >   No   revision
> >
> >
> >   No   revision
> >
> >
> >   1.14.2.2  +7 -7
> > jakarta-struts/src/share/org/apache/struts/util/RequestUtils.java
> >
> >   Index: RequestUtils.java
> >   ===
> >   RCS file:
> > /home/cvs/jakarta-struts/src/share/org/apache/struts/util/Requ
> > estUtils.java,v
> >   retrieving revision 1.14.2.1
> >   retrieving revision 1.14.2.2
> >   diff -u -r1.14.2.1 -r1.14.2.2
> >   --- RequestUtils.java 2001/06/01 18:45:03 1.14.2.1
> >   +++ RequestUtils.java 2001/06/01 20:21:40 1.14.2.2
> >   @@ -1,7 +1,7 @@
> >/*
> >   - * $Header:
> > /home/cvs/jakarta-struts/src/share/org/apache/struts/util/Requ
> > estUtils.java,v 1.14.2.1 2001/06/01 18:45:03 craigmcc Exp $
> >   - * $Revision: 1.14.2.1 $
> >   - * $Date: 2001/06/01 18:45:03 $
> >   + * $Header:
> > /home/cvs/jakarta-struts/src/share/org/apache/struts/util/Requ
> > estUtils.java,v 1.14.2.2 2001/06/01 20:21:40 craigmcc Exp $
> >   + * $Revision: 1.14.2.2 $
> >   + * $Date: 2001/06/01 20:21:40 $
> > *
> > *
> > 
> > *
> >   @@ -95,7 +95,7 @@
> > * in the Struts controller framework.
> > *
> > * @author Craig R. McClanahan
> >   - * @version $Revision: 1.14.2.1 $ $Date: 2001/06/01 18:45:03 $
> >   + * @version $Revision: 1.14.2.2 $ $Date: 2001/06/01 20:21:40 $
> > */
> >
> >public class RequestUtils {
> >   @@ -364,7 +364,7 @@
> >url.append('?');
> >question = true;
> >} else
> >   -url.append('&');
> >   +url.append("&");
> >url.append(URLEncoder.encode(key));
> >url.append('='); // Interpret null as
> > "no value"
> >} else if (value instanceof String) {
> >   @@ -372,7 +372,7 @@
> >url.append('?');
> >question = true;
> >} else
> >   -url.append('&');
> >   +url.append("&");
> >url.append(URLEncoder.encode(key));
> >url.append('=');
> >url.append(URLEncoder.encode((String) value));
> >   @@ -383,7 +383,7 @@
> >url.append('?');
> >question = true;
> >} else
> >   -url.append('&');
> >   +url.append("&");
> >url.append(URLEncoder.encode(key));
> >url.append('=');
> >url.append(URLEncoder.encode(values[i]));
> >
> >
> >
> >
> 




Re: cvs commit: jakarta-struts/src/share/org/apache/struts/utilRequestUtils.java

2001-05-11 Thread Craig R. McClanahan



On Fri, 11 May 2001, Martin Cooper wrote:

> At 03:44 PM 5/11/01, Craig R. McClanahan wrote:
> 
> 
> >On 11 May 2001 [EMAIL PROTECTED] wrote:
> >
> > > mschachter01/05/11 15:33:38
> > >
> > >   Modified:src/share/org/apache/struts/action Action.java
> > > ActionServlet.java
> > >src/share/org/apache/struts/upload
> > > DiskMultipartRequestHandler.java
> > >src/share/org/apache/struts/util RequestUtils.java
> > >   Added:   src/share/org/apache/struts/upload
> > > MultipartRequestWrapper.java
> > >   Log:
> > >- Added the MultipartRequestWrapper class, which is a class that 
> > implements
> > >  HttpServletRequest and wraps a normal request.  All normal 
> > HttpServletRequest
> > >  methods will be called to the underlying request, except for 
> > methods involving
> > >  parameters, which were over-ridden to provide a transparent way of 
> > accessing
> > >  multipart elements.  The version of the HttpServletRequest is 
> > Servlet 2.2, however
> > >  the new methods from Servlet 2.3 are also included in this class 
> > with empty
> > >  implementations so that Struts will build against the servlet 2.2 
> > and 2.3 jars
> >
> >One thing to remember in 2.2 is that you cannot pass your wrapped request
> >object to a RequestDispatcher.forward() or RequestDispatcher.include()
> >call.  In Tomcat 3.x, for example, you'd get a ClassCastException error if
> >you tried to use this in an RD call.
> 
> You mean if I have an Action that is invoked via POST with a file upload, 
> and I try to forward from there using mapping.findForward("nextAction"), 
> where the forward has redirect="false, this will fail? This would be very 
> bad - in every case where we have a file upload, we subsequently forward to 
> another action.
> 

As long as you forward the *original* request object (and not the
wrapper), you're fine.  I'm fighting some security fires on Tomcat so I
haven't had time to look deeply into what Michael is changing, but wanted
to raise the flag in case some assumptions about this were being made
incorrectly.

> >Craig
> 
> --
> Martin Cooper
> 
> 
> 

Craig





Re: cvs commit: jakarta-struts/src/share/org/apache/struts/utilRequestUtils.java

2001-05-11 Thread Martin Cooper

At 03:44 PM 5/11/01, Craig R. McClanahan wrote:


>On 11 May 2001 [EMAIL PROTECTED] wrote:
>
> > mschachter01/05/11 15:33:38
> >
> >   Modified:src/share/org/apache/struts/action Action.java
> > ActionServlet.java
> >src/share/org/apache/struts/upload
> > DiskMultipartRequestHandler.java
> >src/share/org/apache/struts/util RequestUtils.java
> >   Added:   src/share/org/apache/struts/upload
> > MultipartRequestWrapper.java
> >   Log:
> >- Added the MultipartRequestWrapper class, which is a class that 
> implements
> >  HttpServletRequest and wraps a normal request.  All normal 
> HttpServletRequest
> >  methods will be called to the underlying request, except for 
> methods involving
> >  parameters, which were over-ridden to provide a transparent way of 
> accessing
> >  multipart elements.  The version of the HttpServletRequest is 
> Servlet 2.2, however
> >  the new methods from Servlet 2.3 are also included in this class 
> with empty
> >  implementations so that Struts will build against the servlet 2.2 
> and 2.3 jars
>
>One thing to remember in 2.2 is that you cannot pass your wrapped request
>object to a RequestDispatcher.forward() or RequestDispatcher.include()
>call.  In Tomcat 3.x, for example, you'd get a ClassCastException error if
>you tried to use this in an RD call.

You mean if I have an Action that is invoked via POST with a file upload, 
and I try to forward from there using mapping.findForward("nextAction"), 
where the forward has redirect="false, this will fail? This would be very 
bad - in every case where we have a file upload, we subsequently forward to 
another action.

>Craig

--
Martin Cooper





Re: cvs commit: jakarta-struts/src/share/org/apache/struts/utilRequestUtils.java

2001-05-11 Thread Craig R. McClanahan



On 11 May 2001 [EMAIL PROTECTED] wrote:

> mschachter01/05/11 15:33:38
> 
>   Modified:src/share/org/apache/struts/action Action.java
> ActionServlet.java
>src/share/org/apache/struts/upload
> DiskMultipartRequestHandler.java
>src/share/org/apache/struts/util RequestUtils.java
>   Added:   src/share/org/apache/struts/upload
> MultipartRequestWrapper.java
>   Log:
>- Added the MultipartRequestWrapper class, which is a class that implements
>  HttpServletRequest and wraps a normal request.  All normal HttpServletRequest
>  methods will be called to the underlying request, except for methods involving
>  parameters, which were over-ridden to provide a transparent way of accessing
>  multipart elements.  The version of the HttpServletRequest is Servlet 2.2, 
>however
>  the new methods from Servlet 2.3 are also included in this class with empty
>  implementations so that Struts will build against the servlet 2.2 and 2.3 jars

One thing to remember in 2.2 is that you cannot pass your wrapped request
object to a RequestDispatcher.forward() or RequestDispatcher.include()
call.  In Tomcat 3.x, for example, you'd get a ClassCastException error if
you tried to use this in an RD call.

Craig