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]

Reply via email to