On Sat, 2 Mar 2003 [EMAIL PROTECTED] wrote:
> Date: 2 Mar 2003 00:22:40 -0000 > 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 Changes Path > 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 -0000 1.90 > +++ RequestUtils.java 2 Mar 2003 00:22:40 -0000 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]