luehe       2002/12/11 14:34:06

  Modified:    jasper2/src/share/org/apache/jasper/runtime
                        JspRuntimeLibrary.java
               jasper2/src/share/org/apache/jasper/compiler
                        ErrorDispatcher.java
  Log:
  Leverage ErrorDispatcher in JspRuntimeLibrary
  
  Revision  Changes    Path
  1.11      +42 -47    
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspRuntimeLibrary.java
  
  Index: JspRuntimeLibrary.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspRuntimeLibrary.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- JspRuntimeLibrary.java    11 Dec 2002 19:40:45 -0000      1.10
  +++ JspRuntimeLibrary.java    11 Dec 2002 22:34:06 -0000      1.11
  @@ -81,7 +81,7 @@
   import javax.servlet.jsp.tagext.BodyContent;
   
   import org.apache.jasper.JasperException;
  -import org.apache.jasper.Constants;
  +import org.apache.jasper.compiler.ErrorDispatcher;
   
   // for JSTL expression interpreter
   import javax.servlet.jsp.PageContext;
  @@ -100,6 +100,12 @@
    */
   public class JspRuntimeLibrary {
   
  +    private static ErrorDispatcher err;
  +
  +    static {
  +     err = new ErrorDispatcher();
  +    }
  +
       protected static class PrivilegedIntrospectHelper
        implements PrivilegedExceptionAction {
   
  @@ -130,15 +136,15 @@
       }
   
       public static Character getCharacter(String s) throws JasperException {
  -     if (s.length() > 0) {
  -         return new Character(s.charAt(0));
  -     } else {
  -         throw new 
JasperException(Constants.getString("jsp.error.bad_string_Character"));
  +     if (s.length() == 0) {
  +         err.jspError("jsp.error.bad_string_Character");
        }
  +     return new Character(s.charAt(0));
       }
   
      // __begin convertMethod
  -    public static Object convert(String propertyName, String s, Class t, Class 
propertyEditorClass) 
  +    public static Object convert(String propertyName, String s, Class t,
  +                              Class propertyEditorClass) 
          throws JasperException 
       {
           try {
  @@ -248,10 +254,8 @@
            if ( method != null ) {
                if (type.isArray()) {
                       if (request == null) {
  -                        throw new JasperException(Constants.getString(
  -                                "jsp.error.beans.setproperty.noindexset",
  -                                new Object[] {}));
  -                    };
  +                        err.jspError("jsp.error.beans.setproperty.noindexset");
  +                    }
                    Class t = type.getComponentType();
                    String[] values = request.getParameterValues(param);
                    //XXX Please check.
  @@ -275,14 +279,11 @@
        }
           if (!ignoreMethodNF && (method == null)) {
               if (type == null) {
  -                throw new JasperException(Constants.getString(
  -                        "jsp.error.beans.noproperty",
  -                        new Object[] {prop, bean.getClass().getName()}));
  +                err.jspError("jsp.error.beans.noproperty",
  +                          prop, bean.getClass().getName());
               } else {
  -                throw new JasperException(Constants.getString(
  -                        "jsp.error.beans.nomethod.setproperty",
  -                        new Object[] {prop, type.getName(),
  -                                   bean.getClass().getName()}));
  +             err.jspError("jsp.error.beans.nomethod.setproperty",
  +                          prop, type.getName(), bean.getClass().getName());
               }
           }
       }
  @@ -336,16 +337,19 @@
        * the request and the property is indexed.
        */
       public static void createTypedArray(String propertyName,
  -                                     Object bean, Method method, String []values, 
Class t,
  +                                     Object bean,
  +                                     Method method,
  +                                     String[] values,
  +                                     Class t,
                                        Class propertyEditorClass)
  -    throws JasperException {
  +             throws JasperException {
  +
        try {
            if (propertyEditorClass != null) {
                Object[] tmpval = new Integer[values.length];
                for (int i=0; i<values.length; i++) {
  -                 tmpval[i] =  
  -                     getValueFromBeanInfoPropertyEditor(
  -                                            t, propertyName, values[i], 
propertyEditorClass);
  +                 tmpval[i] = getValueFromBeanInfoPropertyEditor(
  +                            t, propertyName, values[i], propertyEditorClass);
                }
                method.invoke (bean, new Object[] {tmpval});
            } else if (t.equals(Integer.class)) {
  @@ -508,9 +512,7 @@
       public static Object handleGetProperty(Object o, String prop)
       throws JasperException {
           if (o == null)        {
  -            throw new JasperException(Constants.getString(
  -                    "jsp.error.beans.nullbean",
  -                    new Object[] {}));
  +            err.jspError("jsp.error.beans.nullbean");
           }
        Object value = null;
           try {
  @@ -692,23 +694,19 @@
                }
               } else {        
                   // just in case introspection silently fails.
  -                throw new JasperException(Constants.getString(
  -                        "jsp.error.beans.nobeaninfo",
  -                        new Object[] {beanClass.getName()}));
  +                err.jspError("jsp.error.beans.nobeaninfo",
  +                          beanClass.getName());
               }
           } catch (Exception ex) {
               throw new JasperException (ex);
           }
           if (method == null) {
               if (type == null) {
  -                throw new JasperException(Constants.getString(
  -                        "jsp.error.beans.noproperty",
  -                        new Object[] {prop, beanClass.getName()}));
  +                err.jspError("jsp.error.beans.noproperty",
  +                          prop, beanClass.getName());
               } else {
  -                throw new JasperException(Constants.getString(
  -                        "jsp.error.beans.nomethod.setproperty",
  -                        new Object[] {prop, type.getName(),
  -                                   beanClass.getName()}));
  +                err.jspError("jsp.error.beans.nomethod.setproperty",
  +                          prop, type.getName(), beanClass.getName());
               }
           }
           return method;
  @@ -734,22 +732,19 @@
                   }
               } else {        
                   // just in case introspection silently fails.
  -                throw new JasperException(Constants.getString(
  -                        "jsp.error.beans.nobeaninfo",
  -                        new Object[] {beanClass.getName()}));
  +                err.jspError("jsp.error.beans.nobeaninfo",
  +                          beanClass.getName());
            }
        } catch (Exception ex) {
            throw new JasperException (ex);
        }
           if (method == null) {
               if (type == null) {
  -                throw new JasperException(Constants.getString(
  -                        "jsp.error.beans.noproperty",
  -                        new Object[] {prop, beanClass.getName()}));
  +                err.jspError("jsp.error.beans.noproperty",
  +                          prop, beanClass.getName());
               } else {
  -                throw new JasperException(Constants.getString(
  -                        "jsp.error.beans.nomethod",
  -                        new Object[] {prop, beanClass.getName()}));
  +                err.jspError("jsp.error.beans.nomethod",
  +                          prop, beanClass.getName());
               }
           }
   
  
  
  
  1.8       +21 -4     
jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ErrorDispatcher.java
  
  Index: ErrorDispatcher.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/ErrorDispatcher.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ErrorDispatcher.java      6 Nov 2002 20:14:19 -0000       1.7
  +++ ErrorDispatcher.java      11 Dec 2002 22:34:06 -0000      1.8
  @@ -91,7 +91,7 @@
       /*
        * Constructor.
        */
  -    ErrorDispatcher() {
  +    public ErrorDispatcher() {
        // XXX check web.xml for custom error handler
        errHandler = new DefaultErrorHandler(this);
       }
  @@ -197,6 +197,23 @@
       public void jspError(String errCode, String arg1, String arg2)
                throws JasperException {
        dispatch(null, errCode, new Object[] {arg1, arg2}, null);
  +    }
  +
  +    /*
  +     * Dispatches the given JSP parse error to the configured error handler.
  +     *
  +     * The given error code is localized. If it is not found in the
  +     * resource bundle for localized error messages, it is used as the error
  +     * message.
  +     *
  +     * @param errCode Error code
  +     * @param arg1 First argument for parametric replacement
  +     * @param arg2 Second argument for parametric replacement
  +     * @param arg3 Third argument for parametric replacement
  +     */
  +    public void jspError(String errCode, String arg1, String arg2, String arg3)
  +             throws JasperException {
  +     dispatch(null, errCode, new Object[] {arg1, arg2, arg3}, null);
       }
   
       /*
  
  
  

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

Reply via email to