[jbossweb-commits] JBossWeb SVN: r2083 - in trunk/src/main/java/org: apache/jasper/compiler and 5 other directories.

jbossweb-commits at lists.jboss.org jbossweb-commits at lists.jboss.org
Fri Sep 21 10:14:08 EDT 2012


Author: remy.maucherat at jboss.com
Date: 2012-09-21 10:14:07 -0400 (Fri, 21 Sep 2012)
New Revision: 2083

Removed:
   trunk/src/main/java/org/apache/jasper/compiler/Localizer.java
   trunk/src/main/java/org/apache/jasper/resources/LocalStrings.properties
   trunk/src/main/java/org/apache/jasper/resources/LocalStrings_es.properties
   trunk/src/main/java/org/apache/jasper/resources/LocalStrings_fr.properties
   trunk/src/main/java/org/apache/jasper/resources/LocalStrings_ja.properties
Modified:
   trunk/src/main/java/org/apache/jasper/EmbeddedServletOptions.java
   trunk/src/main/java/org/apache/jasper/JspCompilationContext.java
   trunk/src/main/java/org/apache/jasper/compiler/AttributeParser.java
   trunk/src/main/java/org/apache/jasper/compiler/BeanRepository.java
   trunk/src/main/java/org/apache/jasper/compiler/Compiler.java
   trunk/src/main/java/org/apache/jasper/compiler/DefaultErrorHandler.java
   trunk/src/main/java/org/apache/jasper/compiler/ErrorDispatcher.java
   trunk/src/main/java/org/apache/jasper/compiler/Generator.java
   trunk/src/main/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java
   trunk/src/main/java/org/apache/jasper/compiler/JavacErrorDetail.java
   trunk/src/main/java/org/apache/jasper/compiler/JspConfig.java
   trunk/src/main/java/org/apache/jasper/compiler/JspDocumentParser.java
   trunk/src/main/java/org/apache/jasper/compiler/JspReader.java
   trunk/src/main/java/org/apache/jasper/compiler/JspRuntimeContext.java
   trunk/src/main/java/org/apache/jasper/compiler/JspUtil.java
   trunk/src/main/java/org/apache/jasper/compiler/PageInfo.java
   trunk/src/main/java/org/apache/jasper/compiler/Parser.java
   trunk/src/main/java/org/apache/jasper/compiler/ParserController.java
   trunk/src/main/java/org/apache/jasper/compiler/ScriptingVariabler.java
   trunk/src/main/java/org/apache/jasper/compiler/TagFileProcessor.java
   trunk/src/main/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java
   trunk/src/main/java/org/apache/jasper/compiler/TagPluginManager.java
   trunk/src/main/java/org/apache/jasper/compiler/Validator.java
   trunk/src/main/java/org/apache/jasper/runtime/HttpJspBase.java
   trunk/src/main/java/org/apache/jasper/runtime/JspContextWrapper.java
   trunk/src/main/java/org/apache/jasper/runtime/JspRuntimeLibrary.java
   trunk/src/main/java/org/apache/jasper/runtime/JspWriterImpl.java
   trunk/src/main/java/org/apache/jasper/runtime/PageContextImpl.java
   trunk/src/main/java/org/apache/jasper/servlet/JspServlet.java
   trunk/src/main/java/org/apache/jasper/servlet/JspServletWrapper.java
   trunk/src/main/java/org/apache/jasper/xmlparser/ASCIIReader.java
   trunk/src/main/java/org/apache/jasper/xmlparser/UTF8Reader.java
   trunk/src/main/java/org/apache/jasper/xmlparser/XMLEncodingDetector.java
   trunk/src/main/java/org/jboss/web/JasperLogger.java
   trunk/src/main/java/org/jboss/web/JasperMessages.java
Log:
New i18n for Jasper

Modified: trunk/src/main/java/org/apache/jasper/EmbeddedServletOptions.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/EmbeddedServletOptions.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/EmbeddedServletOptions.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -26,9 +26,8 @@
 import javax.servlet.ServletContext;
 
 import org.apache.jasper.compiler.JspConfig;
-import org.apache.jasper.compiler.Localizer;
 import org.apache.jasper.compiler.TagPluginManager;
-import org.jboss.logging.Logger;
+import org.jboss.web.JasperLogger;
 
 /**
  * A class to hold all init parameters specific to the JSP engine. 
@@ -39,9 +38,6 @@
  */
 public final class EmbeddedServletOptions implements Options {
     
-    // Logger
-    private Logger log = Logger.getLogger(EmbeddedServletOptions.class);
-    
     private Properties settings = new Properties();
     
     /**
@@ -413,7 +409,7 @@
             } else if (keepgen.equalsIgnoreCase("false")) {
                 this.keepGenerated = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.keepgen"));
+                JasperLogger.ROOT_LOGGER.invalidKeepGeneratedValue(keepgen);
             }
         }
         
@@ -425,7 +421,7 @@
             } else if (trimsp.equalsIgnoreCase("false")) {
                 trimSpaces = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.trimspaces"));
+                JasperLogger.ROOT_LOGGER.invalidTrimSpacesValue(trimsp);
             }
         }
         
@@ -437,7 +433,7 @@
             if (poolingEnabledParam.equalsIgnoreCase("false")) {
                 this.isPoolingEnabled = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.enablePooling"));
+                JasperLogger.ROOT_LOGGER.invalidEnablePoolingValue(poolingEnabledParam);
             }
         }
         
@@ -448,7 +444,7 @@
             } else if (mapFile.equalsIgnoreCase("false")) {
                 this.mappedFile = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.mappedFile"));
+                JasperLogger.ROOT_LOGGER.invalidMappedFileValue(mapFile);
             }
         }
         
@@ -459,7 +455,7 @@
             } else if (senderr.equalsIgnoreCase("false")) {
                 this.sendErrorToClient = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.sendErrToClient"));
+                JasperLogger.ROOT_LOGGER.invalidSendErrToClientValue(senderr);
             }
         }
         
@@ -470,7 +466,7 @@
             } else if (debugInfo.equalsIgnoreCase("false")) {
                 this.classDebugInfo  = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.classDebugInfo"));
+                JasperLogger.ROOT_LOGGER.invalidClassDebugInfoValue(debugInfo);
             }
         }
         
@@ -479,7 +475,7 @@
             try {
                 this.checkInterval = Integer.parseInt(checkInterval);
             } catch(NumberFormatException ex) {
-                log.warn(Localizer.getMessage("jsp.warning.checkInterval"));
+                JasperLogger.ROOT_LOGGER.invalidCheckIntervalValue(checkInterval);
             }
         }
         
@@ -488,7 +484,7 @@
             try {
                 this.modificationTestInterval = Integer.parseInt(modificationTestInterval);
             } catch(NumberFormatException ex) {
-                log.warn(Localizer.getMessage("jsp.warning.modificationTestInterval"));
+                JasperLogger.ROOT_LOGGER.invalidModificationTestIntervalValue(modificationTestInterval);
             }
         }
         
@@ -499,7 +495,7 @@
             } else if (recompileOnFail.equalsIgnoreCase("false")) {
                 this.recompileOnFail = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.recompileOnFail"));
+                JasperLogger.ROOT_LOGGER.invalidRecompileOnFailValue(recompileOnFail);
             }
         }
         String development = config.getInitParameter("development");
@@ -509,7 +505,7 @@
             } else if (development.equalsIgnoreCase("false")) {
                 this.development = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.development"));
+                JasperLogger.ROOT_LOGGER.invalidDevelopmentValue(development);
             }
         }
         
@@ -520,7 +516,7 @@
             } else if (suppressSmap.equalsIgnoreCase("false")) {
                 isSmapSuppressed = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.suppressSmap"));
+                JasperLogger.ROOT_LOGGER.invalidSuppressSmapValue(suppressSmap);
             }
         }
         
@@ -531,7 +527,7 @@
             } else if (dumpSmap.equalsIgnoreCase("false")) {
                 isSmapDumped = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.dumpSmap"));
+                JasperLogger.ROOT_LOGGER.invalidDumpSmapValue(dumpSmap);
             }
         }
         
@@ -542,7 +538,7 @@
             } else if (genCharArray.equalsIgnoreCase("false")) {
                 genStringAsCharArray = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.genchararray"));
+                JasperLogger.ROOT_LOGGER.invalidGenStrAsCharArrayValue(genCharArray);
             }
         }
         
@@ -554,7 +550,7 @@
             } else if (errBeanClass.equalsIgnoreCase("false")) {
                 errorOnUseBeanInvalidClassAttribute = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.errBean"));
+                JasperLogger.ROOT_LOGGER.invalidErrorOnUseBeanInvalidClassAttributeValue(errBeanClass);
             }
         }
         
@@ -584,14 +580,13 @@
             }
         }      
         if (this.scratchDir == null) {
-            log.fatal(Localizer.getMessage("jsp.error.no.scratch.dir"));
+            JasperLogger.ROOT_LOGGER.missingWorkDirectory();
             return;
         }
         
         if (!(scratchDir.exists() && scratchDir.canRead() &&
                 scratchDir.canWrite() && scratchDir.isDirectory()))
-            log.fatal(Localizer.getMessage("jsp.error.bad.scratch.dir",
-                    scratchDir.getAbsolutePath()));
+            JasperLogger.ROOT_LOGGER.missingWorkDirectory(scratchDir.getAbsolutePath());
         
         this.compiler = config.getInitParameter("compiler");
         
@@ -622,7 +617,7 @@
             } else if (fork.equalsIgnoreCase("false")) {
                 this.fork = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.fork"));
+                JasperLogger.ROOT_LOGGER.invalidForkValue(fork);
             }
         }
         
@@ -633,7 +628,7 @@
             } else if (xpoweredBy.equalsIgnoreCase("false")) {
                 this.xpoweredBy = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.xpoweredBy"));
+                JasperLogger.ROOT_LOGGER.invalidXpoweredByValue(xpoweredBy);
             }
         }
         
@@ -644,7 +639,7 @@
             } else if (displaySourceFragment.equalsIgnoreCase("false")) {
                 this.displaySourceFragment = false;
             } else {
-                log.warn(Localizer.getMessage("jsp.warning.displaySourceFragment"));
+                JasperLogger.ROOT_LOGGER.invalidDisplaySourceFragmentValue(displaySourceFragment);
             }
         }
         

Modified: trunk/src/main/java/org/apache/jasper/JspCompilationContext.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/JspCompilationContext.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/JspCompilationContext.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.net.MalformedURLException;
@@ -33,10 +35,10 @@
 import org.apache.jasper.compiler.Compiler;
 import org.apache.jasper.compiler.JspRuntimeContext;
 import org.apache.jasper.compiler.JspUtil;
-import org.apache.jasper.compiler.Localizer;
 import org.apache.jasper.compiler.ServletWriter;
 import org.apache.jasper.servlet.JasperLoader;
 import org.apache.jasper.servlet.JspServletWrapper;
+import org.jboss.web.JasperLogger;
 
 /**
  * A place holder for various things that are used through out the JSP
@@ -54,9 +56,6 @@
  */
 public class JspCompilationContext {
 
-    protected org.jboss.logging.Logger log =
-        org.jboss.logging.Logger.getLogger(JspCompilationContext.class);
-
     protected Map<String, URL> tagFileJarUrls;
     protected boolean isPackagedTagFile;
 
@@ -240,7 +239,7 @@
             }
         }
         if (jspCompiler == null) {
-            throw new IllegalStateException(Localizer.getMessage("jsp.error.compiler"));
+            throw MESSAGES.noJavaCompiler();
         }
         jspCompiler.init(this, jsw);
         return jspCompiler;
@@ -251,13 +250,13 @@
         try {
             compiler = (Compiler) Class.forName(className).newInstance();
         } catch (InstantiationException e) {
-            log.warn(Localizer.getMessage("jsp.error.compiler"), e);
+            JasperLogger.ROOT_LOGGER.failedLoadingJavaCompiler(className, e);
         } catch (IllegalAccessException e) {
-            log.warn(Localizer.getMessage("jsp.error.compiler"), e);
+            JasperLogger.ROOT_LOGGER.failedLoadingJavaCompiler(className, e);
         } catch (NoClassDefFoundError e) {
-            log.info(Localizer.getMessage("jsp.error.compiler"), e);
+            JasperLogger.ROOT_LOGGER.failedLoadingJavaCompiler(className, e);
         } catch (ClassNotFoundException e) {
-            log.info(Localizer.getMessage("jsp.error.compiler"), e);
+            JasperLogger.ROOT_LOGGER.failedLoadingJavaCompiler(className, e);
         }
         return compiler;
     }
@@ -616,8 +615,7 @@
                 }
                 throw ex;
             } catch (Exception ex) {
-                JasperException je = new JasperException(
-                            Localizer.getMessage("jsp.error.unable.compile"),
+                JasperException je = new JasperException(MESSAGES.failedClassCompilation(),
                             ex);
                 // Cache compilation exception
                 jsw.setCompilationException(je);
@@ -637,10 +635,10 @@
             String name = getFQCN();
             servletClass = jspLoader.loadClass(name);
         } catch (ClassNotFoundException cex) {
-            throw new JasperException(Localizer.getMessage("jsp.error.unable.load"),
+            throw new JasperException(MESSAGES.failedClassLoading(),
                                       cex);
         } catch (Exception ex) {
-            throw new JasperException(Localizer.getMessage("jsp.error.unable.compile"),
+            throw new JasperException(MESSAGES.failedClassCompilation(),
                                       ex);
         }
         removed = 0;
@@ -694,10 +692,10 @@
                 baseUrl = base.toURI().toURL();
                 outputDir = base.getAbsolutePath() + File.separator + path + File.separator;
                 if (!makeOutputDir()) {
-                    throw new IllegalStateException(Localizer.getMessage("jsp.error.outputfolder"));
+                    throw new IllegalStateException(MESSAGES.noOutputFolder());
                 }
             } catch (MalformedURLException e) {
-                throw new IllegalStateException(Localizer.getMessage("jsp.error.outputfolder"), e);
+                throw new IllegalStateException(MESSAGES.badOutputFolderUrl(e));
             }
     }
     

Modified: trunk/src/main/java/org/apache/jasper/compiler/AttributeParser.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/AttributeParser.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/AttributeParser.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 /**
  * Converts a JSP attribute value into the unquoted equivalent. The attribute
  * may contain EL expressions, in which case care needs to be taken to avoid any
@@ -303,9 +305,7 @@
             i+=3;
             return '>';
         } else if (ch == quote && strict) {
-            String msg = Localizer.getMessage("jsp.error.attribute.noescape",
-                    input, ""+ quote);
-            throw new IllegalArgumentException(msg);
+            throw MESSAGES.missingEscaping(input, "" + quote);
         } else {
             ++i;
         }

Modified: trunk/src/main/java/org/apache/jasper/compiler/BeanRepository.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/BeanRepository.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/BeanRepository.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 package org.apache.jasper.compiler;
 
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.util.HashMap;
 
 import org.apache.jasper.JasperException;
@@ -47,7 +49,7 @@
 
         if (!(scope == null || scope.equals("page") || scope.equals("request") 
                 || scope.equals("session") || scope.equals("application"))) {
-            errDispatcher.jspError(n, "jsp.error.usebean.badScope");
+            errDispatcher.jspError(n.getStart(), MESSAGES.badScopeForUseBean());
         }
 
         beanTypes.put(s, type);

Modified: trunk/src/main/java/org/apache/jasper/compiler/Compiler.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/Compiler.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/Compiler.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
@@ -159,7 +161,7 @@
                             errDispatcher, true);
                 }
             } catch (NumberFormatException ex) {
-                errDispatcher.jspError(ex);
+                errDispatcher.jspError(MESSAGES.malformedLibraryVersionNumber(), ex);
             }
         }
 
@@ -304,8 +306,7 @@
 		    osw = new OutputStreamWriter(
 		            new FileOutputStream(javaFileName), javaEncoding);
 		} catch (UnsupportedEncodingException ex) {
-		    errDispatcher.jspError("jsp.error.needAlternateJavaEncoding",
-		            javaEncoding);
+		    errDispatcher.jspError(MESSAGES.needAlternateEncoding(javaEncoding));
 		}
 
 		writer = new ServletWriter(new PrintWriter(osw));

Modified: trunk/src/main/java/org/apache/jasper/compiler/DefaultErrorHandler.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/DefaultErrorHandler.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/DefaultErrorHandler.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import org.apache.jasper.JasperException;
 
 /**
@@ -63,34 +65,24 @@
             return;
         }
         
-        Object[] args = null;
         StringBuilder buf = new StringBuilder();
-        
         for (int i=0; i < details.length; i++) {
             if (details[i].getJspBeginLineNumber() >= 0) {
-                args = new Object[] {
-                        new Integer(details[i].getJspBeginLineNumber()), 
-                        details[i].getJspFileName() };
                 buf.append("\n\n");
-                buf.append(Localizer.getMessage("jsp.error.single.line.number",
-                        args));
+                buf.append(MESSAGES.errorInJspFile(details[i].getJspBeginLineNumber(), details[i].getJspFileName()));
                 buf.append("\n");
                 buf.append(details[i].getErrorMessage());
                 buf.append("\n");
                 buf.append(details[i].getJspExtract());
             } else {
-                args = new Object[] {
-                        new Integer(details[i].getJavaLineNumber()) };
                 buf.append("\n\n");
-                buf.append(Localizer.getMessage("jsp.error.java.line.number",
-                        args));
+                buf.append(MESSAGES.errorInJavaFile(details[i].getJavaLineNumber()));
                 buf.append("\n");
                 buf.append(details[i].getErrorMessage());
             }
         }
         buf.append("\n\nStacktrace:");
-        throw new JasperException(
-                Localizer.getMessage("jsp.error.unable.compile") + ": " + buf);
+        throw new JasperException(MESSAGES.failedClassCompilation(buf.toString()));
     }
     
     /**
@@ -101,9 +93,7 @@
      */
     public void javacError(String errorReport, Exception exception)
     throws JasperException {
-        
-        throw new JasperException(
-                Localizer.getMessage("jsp.error.unable.compile"), exception);
+        throw new JasperException(MESSAGES.failedClassCompilation(), exception);
     }
     
 }

Modified: trunk/src/main/java/org/apache/jasper/compiler/ErrorDispatcher.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/ErrorDispatcher.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/ErrorDispatcher.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -16,11 +16,7 @@
  */
 package org.apache.jasper.compiler;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.StringReader;
 import java.net.MalformedURLException;
-import java.util.ArrayList;
 
 import org.apache.jasper.JasperException;
 import org.apache.jasper.JspCompilationContext;
@@ -62,263 +58,6 @@
     }
 
     /*
-     * 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
-     */
-    public void jspError(String errCode) throws JasperException {
-	dispatch(null, errCode, null, 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 where Error location
-     * @param errCode Error code
-     */
-    public void jspError(Mark where, String errCode) throws JasperException {
-	dispatch(where, errCode, null, 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 n Node that caused the error
-     * @param errCode Error code
-     */
-    public void jspError(Node n, String errCode) throws JasperException {
-	dispatch(n.getStart(), errCode, null, 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 arg Argument for parametric replacement
-     */
-    public void jspError(String errCode, String arg) throws JasperException {
-	dispatch(null, errCode, new Object[] {arg}, 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 where Error location
-     * @param errCode Error code
-     * @param arg Argument for parametric replacement
-     */
-    public void jspError(Mark where, String errCode, String arg)
-	        throws JasperException {
-	dispatch(where, errCode, new Object[] {arg}, 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 n Node that caused the error
-     * @param errCode Error code
-     * @param arg Argument for parametric replacement
-     */
-    public void jspError(Node n, String errCode, String arg)
-	        throws JasperException {
-	dispatch(n.getStart(), errCode, new Object[] {arg}, 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
-     */
-    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);
-    }
-
-    /*
-     * 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 where Error location
-     * @param errCode Error code
-     * @param arg1 First argument for parametric replacement
-     * @param arg2 Second argument for parametric replacement
-     */
-    public void jspError(Mark where, String errCode, String arg1, String arg2)
-	        throws JasperException {
-	dispatch(where, 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 where Error location
-     * @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(Mark where, String errCode, String arg1, String arg2,
-                         String arg3)
-                throws JasperException {
-        dispatch(where, errCode, new Object[] {arg1, arg2, arg3}, 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 n Node that caused the error
-     * @param errCode Error code
-     * @param arg1 First argument for parametric replacement
-     * @param arg2 Second argument for parametric replacement
-     */
-
-    public void jspError(Node n, String errCode, String arg1, String arg2)
-	        throws JasperException {
-	dispatch(n.getStart(), 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 n Node that caused the error
-     * @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(Node n, String errCode, String arg1, String arg2,
-                         String arg3)
-	        throws JasperException {
-	dispatch(n.getStart(), errCode, new Object[] {arg1, arg2, arg3}, null);
-    }
-
-    /*
-     * Dispatches the given parsing exception to the configured error handler.
-     *
-     * @param e Parsing exception
-     */
-    public void jspError(Exception e) throws JasperException {
-	dispatch(null, null, null, e);
-    }
-
-    /*
-     * 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 arg Argument for parametric replacement
-     * @param e Parsing exception
-     */
-    public void jspError(String errCode, String arg, Exception e)
-	        throws JasperException {
-	dispatch(null, errCode, new Object[] {arg}, e);
-    }
-
-    /*
-     * 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 n Node that caused the error
-     * @param errCode Error code
-     * @param arg Argument for parametric replacement
-     * @param e Parsing exception
-     */
-    public void jspError(Node n, String errCode, String arg, Exception e)
-	        throws JasperException {
-	dispatch(n.getStart(), errCode, new Object[] {arg}, e);
-    }
-
-    /**
-     * Parses the given error message into an array of javac compilation error
-     * messages (one per javac compilation error line number).
-     *
-     * @param errMsg Error message
-     * @param fname Name of Java source file whose compilation failed
-     * @param page Node representation of JSP page from which the Java source
-     * file was generated
-     *
-     * @return Array of javac compilation errors, or null if the given error
-     * message does not contain any compilation error line numbers
-     */
-    public static JavacErrorDetail[] parseJavacErrors(String errMsg,
-                                                      String fname,
-                                                      Node.Nodes page)
-            throws JasperException, IOException {
-
-	return parseJavacMessage(errMsg, fname, page);
-    }
-
-    /*
      * Dispatches the given javac compilation errors to the configured error
      * handler.
      *
@@ -345,10 +84,19 @@
     }
 
 
-    //*********************************************************************
-    // Private utility methods
+    public void jspError(String errorMessage) throws JasperException {
+        jspError(null, errorMessage, null);
+    }
 
-    /*
+    public void jspError(String errorMessage, Exception e) throws JasperException {
+        jspError(null, errorMessage, e);
+    }
+
+    public void jspError(Mark where, String errorMessage) throws JasperException {
+        jspError(where, errorMessage, 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
@@ -356,28 +104,18 @@
      * message.
      *
      * @param where Error location
-     * @param errCode Error code
+     * @param errorMessage The error message
      * @param args Arguments for parametric replacement
      * @param e Parsing exception
      */
-    private void dispatch(Mark where, String errCode, Object[] args,
-			  Exception e) throws JasperException {
-	String file = null;
-	String errMsg = null;
-	int line = -1;
-	int column = -1;
-	boolean hasLocation = false;
+    public void jspError(Mark where, String errorMessage, Exception e) throws JasperException {
+        String file = null;
+        int line = -1;
+        int column = -1;
+        boolean hasLocation = false;
 
-	// Localize
-	if (errCode != null) {
-	    errMsg = Localizer.getMessage(errCode, args);
-	} else if (e != null) {
-	    // give a hint about what's wrong
-	    errMsg = e.getMessage();
-	}
-
-	// Get error location
-	if (where != null) {
+        // Get error location
+        if (where != null) {
             if (jspcMode) {
                 // Get the full URL of the resource that caused the error
                 try {
@@ -391,109 +129,25 @@
                 // disclose any local filesystem details
                 file = where.getFile();
             }
-	    line = where.getLineNumber();
-	    column = where.getColumnNumber();
-	    hasLocation = true;
-	}
+            line = where.getLineNumber();
+            column = where.getColumnNumber();
+            hasLocation = true;
+        }
 
-	// Get nested exception
-	Exception nestedEx = e;
-	if ((e instanceof SAXException)
-	        && (((SAXException) e).getException() != null)) {
-	    nestedEx = ((SAXException) e).getException();
-	}
+        // Get nested exception
+        Exception nestedEx = e;
+        if ((e instanceof SAXException)
+                && (((SAXException) e).getException() != null)) {
+            nestedEx = ((SAXException) e).getException();
+        }
 
-	if (hasLocation) {
-	    errHandler.jspError(file, line, column, errMsg, nestedEx);
-	} else {
-	    errHandler.jspError(errMsg, nestedEx);
-	}
-    }
-
-    /*
-     * Parses the given Java compilation error message, which may contain one
-     * or more compilation errors, into an array of JavacErrorDetail instances.
-     *
-     * Each JavacErrorDetail instance contains the information about a single
-     * compilation error.
-     *
-     * @param errMsg Compilation error message that was generated by the
-     * javac compiler
-     * @param fname Name of Java source file whose compilation failed
-     * @param page Node representation of JSP page from which the Java source
-     * file was generated
-     *
-     * @return Array of JavacErrorDetail instances corresponding to the
-     * compilation errors
-     */
-    private static JavacErrorDetail[] parseJavacMessage(
-                                String errMsg, String fname, Node.Nodes page)
-	        throws IOException, JasperException {
-
-        ArrayList<JavacErrorDetail> errors = new ArrayList<JavacErrorDetail>();
-        StringBuilder errMsgBuf = null;
-        int lineNum = -1;
-        JavacErrorDetail javacError = null;
-        
-        BufferedReader reader = new BufferedReader(new StringReader(errMsg));
-        
-        /*
-         * Parse compilation errors. Each compilation error consists of a file
-         * path and error line number, followed by a number of lines describing
-         * the error.
-         */
-        String line = null;
-        while ((line = reader.readLine()) != null) {
-            
-            /*
-             * Error line number is delimited by set of colons.
-             * Ignore colon following drive letter on Windows (fromIndex = 2).
-             * XXX Handle deprecation warnings that don't have line info
-             */
-            int beginColon = line.indexOf(':', 2); 
-            int endColon = line.indexOf(':', beginColon + 1);
-            if ((beginColon >= 0) && (endColon >= 0)) {
-                if (javacError != null) {
-                    // add previous error to error vector
-                    errors.add(javacError);
-                }
-                
-                String lineNumStr = line.substring(beginColon + 1, endColon);
-                try {
-                    lineNum = Integer.parseInt(lineNumStr);
-                } catch (NumberFormatException e) {
-                    lineNum = -1;
-                }
-                
-                errMsgBuf = new StringBuilder();
-                
-                javacError = createJavacError(fname, page, errMsgBuf, lineNum);
-            }
-            
-            // Ignore messages preceding first error
-            if (errMsgBuf != null) {
-                errMsgBuf.append(line);
-                errMsgBuf.append("\n");
-            }
+        if (hasLocation) {
+            errHandler.jspError(file, line, column, errorMessage, nestedEx);
+        } else {
+            errHandler.jspError(errorMessage, nestedEx);
         }
-        
-        // Add last error to error vector
-        if (javacError != null) {
-            errors.add(javacError);
-        } 
-        
-        reader.close();
-        
-        JavacErrorDetail[] errDetails = null;
-        if (errors.size() > 0) {
-            errDetails = new JavacErrorDetail[errors.size()];
-            errors.toArray(errDetails);
-        }
-        
-        return errDetails;
     }
 
-
     /**
      * @param fname
      * @param page
@@ -504,7 +158,7 @@
      */
     public static JavacErrorDetail createJavacError(String fname,
             Node.Nodes page, StringBuilder errMsgBuf, int lineNum)
-    throws JasperException {
+                    throws JasperException {
         return createJavacError(fname, page, errMsgBuf, lineNum, null);
     }
     

Modified: trunk/src/main/java/org/apache/jasper/compiler/Generator.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/Generator.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/Generator.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.beans.BeanInfo;
 import java.beans.IntrospectionException;
 import java.beans.Introspector;
@@ -1226,7 +1228,7 @@
                     // depending on a compiler flag.
                     if (ctxt.getOptions()
                             .getErrorOnUseBeanInvalidClassAttribute()) {
-                        err.jspError(n, "jsp.error.invalid.bean", klass);
+                        err.jspError(n.getStart(), MESSAGES.invalidUseBeanAttributeClass(klass));
                     }
                     if (canonicalName == null) {
                         // Doing our best here to get a canonical name
@@ -2829,8 +2831,8 @@
             } else {
                 m = handlerInfo.getSetterMethod(localName);
                 if (m == null) {
-                    err.jspError(n, "jsp.error.unable.to_find_method", attr
-                            .getName());
+                    err.jspError(n.getStart(), MESSAGES.cannotFindSetterMethod(attr
+                            .getName()));
                 }
                 c = m.getParameterTypes();
                 // XXX assert(c.length > 0)
@@ -3924,8 +3926,7 @@
                                 .getPropertyEditorClass());
                 }
             } catch (IntrospectionException ie) {
-                err.jspError(n, "jsp.error.introspect.taghandler",
-                        tagHandlerClass.getName(), ie);
+                err.jspError(n.getStart(), MESSAGES.errorIntrospectingTagHandler(tagHandlerClass.getName()), ie);
             }
         }
 

Modified: trunk/src/main/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/ImplicitTagLibraryInfo.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.InputStream;
 import java.util.Collection;
 import java.util.Hashtable;
@@ -82,7 +84,7 @@
         jspversion = JSP_VERSION;
 
         if (!tagdir.startsWith(WEB_INF_TAGS)) {
-            err.jspError("jsp.error.invalid.tagdir", tagdir);
+            err.jspError(MESSAGES.invalidTagFileDirectory(tagdir));
         }
 
         // Determine the value of the <short-name> subelement of the
@@ -151,21 +153,21 @@
                                     reader.getElementText();
                                 } else {
                                     // All other elements are invalid
-                                    err.jspError("jsp.error.invalid.implicit", path);
+                                    err.jspError(MESSAGES.invalidImplicitTld(path));
                                 }
                             }
 
                             try {
                                 double version = Double.parseDouble(this.jspversion);
                                 if (version < 2.0) {
-                                    err.jspError("jsp.error.invalid.implicit.version", path);
+                                    err.jspError(MESSAGES.invalidImplicitTldVersion(path));
                                 }
                             } catch (NumberFormatException e) {
-                                err.jspError("jsp.error.invalid.implicit.version", path);
+                                err.jspError(MESSAGES.invalidImplicitTldVersion(path));
                             }
                         }
                     } catch (XMLStreamException e) {
-                        err.jspError("jsp.error.invalid.implicit", path, e);
+                        err.jspError(MESSAGES.invalidImplicitTld(path), e);
                     } finally {
                         if (is != null) {
                             try {

Modified: trunk/src/main/java/org/apache/jasper/compiler/JavacErrorDetail.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/JavacErrorDetail.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/JavacErrorDetail.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.BufferedReader;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -99,7 +101,7 @@
                 if (jspLines.length < jspBeginLineNum) {
                     // Avoid ArrayIndexOutOfBoundsException
                     // Probably bug 48494 but could be some other cause
-                    jspExtract = Localizer.getMessage("jsp.error.bug48494");
+                    jspExtract = MESSAGES.errorDisplayingJspExtract();
                     return;
                 }
                 

Modified: trunk/src/main/java/org/apache/jasper/compiler/JspConfig.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/JspConfig.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/JspConfig.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -55,6 +55,7 @@
 import org.apache.catalina.Globals;
 import org.apache.jasper.JasperException;
 import org.jboss.logging.Logger;
+import org.jboss.web.JasperLogger;
 
 /**
  * Handles the jsp-config element in WEB_INF/web.xml.  This is used
@@ -149,9 +150,7 @@
                             boolean isStar = "*".equals(extension);
                             if ((path == null && (extension == null || isStar))
                                     || (path != null && !isStar)) {
-                                log.warn(Localizer.getMessage(
-                                        "jsp.warning.bad.urlpattern.propertygroup",
-                                        urlPattern));
+                                JasperLogger.COMPILER_LOGGER.invalidJspPropertyGroupsUrlPattern(urlPattern);
                                 continue;
                             }
                         }

Modified: trunk/src/main/java/org/apache/jasper/compiler/JspDocumentParser.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/JspDocumentParser.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/JspDocumentParser.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -16,6 +16,8 @@
  */
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.CharArrayWriter;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -204,14 +206,14 @@
             pageNodes = new Node.Nodes(dummyRoot);
 
         } catch (IOException ioe) {
-            jspDocParser.err.jspError("jsp.error.data.file.read", path, ioe);
+            jspDocParser.err.jspError(MESSAGES.errorReadingFile(path), ioe);
         } catch (SAXParseException e) {
             jspDocParser.err.jspError
                 (new Mark(jspDocParser.ctxt, path, e.getLineNumber(),
                           e.getColumnNumber()),
-                 e.getMessage());
+                          MESSAGES.errorParsingFile(path), e);
         } catch (Exception e) {
-            jspDocParser.err.jspError(e);
+            jspDocParser.err.jspError(MESSAGES.errorParsingFile(path), e);
         }
 
         return pageNodes;
@@ -279,7 +281,7 @@
         if (JSP_URI.equals(uri) && TEXT_ACTION.equals(current.getLocalName())
                                 && "jsp".equals(currentPrefix)) {
             throw new SAXParseException(
-                Localizer.getMessage("jsp.error.text.has_subelement"),
+                MESSAGES.invalidJspTextSubelements(),
                 locator);
         }
 
@@ -537,10 +539,7 @@
                     lastCh = 0;
                     for (;; i++) {
                         if (i >= charBuffer.length()) {
-                            throw new SAXParseException(
-                                Localizer.getMessage(
-                                    "jsp.error.unterminated",
-                                    (char) elType + "{"),
+                            throw new SAXParseException(MESSAGES.unterminatedTag((char) elType + "{"),
                                 locator);
 
                         }
@@ -668,9 +667,7 @@
                     for (int i = 0; i < children.size(); i++) {
                         Node child = children.getNode(i);
                         if (!(child instanceof Node.NamedAttribute)) {
-                            throw new SAXParseException(Localizer.getMessage(
-                                    "jasper.error.emptybodycontent.nonempty",
-                                    current.qName), locator); 
+                            throw new SAXParseException(MESSAGES.invalidEmptyTagSubelements(current.qName), locator); 
                         }
                     }
                 }
@@ -787,8 +784,7 @@
         try {
             taglibInfo = getTaglibInfo(prefix, uri);
         } catch (JasperException je) {
-            throw new SAXParseException(
-                Localizer.getMessage("jsp.error.could.not.add.taglibraries", je.getMessage()),
+            throw new SAXParseException(MESSAGES.errorAddingTagLibraries(je.getMessage()),
                 locator,
                 je);
         }
@@ -835,8 +831,7 @@
 
         if (localName.equals(ROOT_ACTION)) {
             if (!(current instanceof Node.Root)) {
-                throw new SAXParseException(
-                    Localizer.getMessage("jsp.error.nested_jsproot"),
+                throw new SAXParseException(MESSAGES.nestedJspRoot(),
                     locator);
             }
             node =
@@ -852,10 +847,7 @@
             }
         } else if (localName.equals(PAGE_DIRECTIVE_ACTION)) {
             if (isTagFile) {
-                throw new SAXParseException(
-                    Localizer.getMessage(
-                        "jsp.error.action.istagfile",
-                        localName),
+                throw new SAXParseException(MESSAGES.invalidDirectiveInTagFile(localName),
                     locator);
             }
             node =
@@ -885,10 +877,7 @@
             if (scriptlessBodyNode != null) {
                 // We're nested inside a node whose body is
                 // declared to be scriptless
-                throw new SAXParseException(
-                    Localizer.getMessage(
-                        "jsp.error.no.scriptlets",
-                        localName),
+                throw new SAXParseException(MESSAGES.invalidScriptingElement(),
                     locator);
             }
             node =
@@ -902,10 +891,7 @@
             if (scriptlessBodyNode != null) {
                 // We're nested inside a node whose body is
                 // declared to be scriptless
-                throw new SAXParseException(
-                    Localizer.getMessage(
-                        "jsp.error.no.scriptlets",
-                        localName),
+                throw new SAXParseException(MESSAGES.invalidScriptingElement(),
                     locator);
             }
             node =
@@ -919,10 +905,7 @@
             if (scriptlessBodyNode != null) {
                 // We're nested inside a node whose body is
                 // declared to be scriptless
-                throw new SAXParseException(
-                    Localizer.getMessage(
-                        "jsp.error.no.scriptlets",
-                        localName),
+                throw new SAXParseException(MESSAGES.invalidScriptingElement(),
                     locator);
             }
             node =
@@ -1039,10 +1022,7 @@
                     current);
         } else if (localName.equals(TAG_DIRECTIVE_ACTION)) {
             if (!isTagFile) {
-                throw new SAXParseException(
-                    Localizer.getMessage(
-                        "jsp.error.action.isnottagfile",
-                        localName),
+                throw new SAXParseException(MESSAGES.invalidDirectiveInTagFile(localName),
                     locator);
             }
             node =
@@ -1060,10 +1040,7 @@
             }
         } else if (localName.equals(ATTRIBUTE_DIRECTIVE_ACTION)) {
             if (!isTagFile) {
-                throw new SAXParseException(
-                    Localizer.getMessage(
-                        "jsp.error.action.isnottagfile",
-                        localName),
+                throw new SAXParseException(MESSAGES.invalidDirectiveInTagFile(localName),
                     locator);
             }
             node =
@@ -1076,10 +1053,7 @@
                     current);
         } else if (localName.equals(VARIABLE_DIRECTIVE_ACTION)) {
             if (!isTagFile) {
-                throw new SAXParseException(
-                    Localizer.getMessage(
-                        "jsp.error.action.isnottagfile",
-                        localName),
+                throw new SAXParseException(MESSAGES.invalidDirectiveInTagFile(localName),
                     locator);
             }
             node =
@@ -1092,10 +1066,7 @@
                     current);
         } else if (localName.equals(INVOKE_ACTION)) {
             if (!isTagFile) {
-                throw new SAXParseException(
-                    Localizer.getMessage(
-                        "jsp.error.action.isnottagfile",
-                        localName),
+                throw new SAXParseException(MESSAGES.invalidActionInTagFile(localName),
                     locator);
             }
             node =
@@ -1108,10 +1079,7 @@
                     current);
         } else if (localName.equals(DOBODY_ACTION)) {
             if (!isTagFile) {
-                throw new SAXParseException(
-                    Localizer.getMessage(
-                        "jsp.error.action.isnottagfile",
-                        localName),
+                throw new SAXParseException(MESSAGES.invalidActionInTagFile(localName),
                     locator);
             }
             node =
@@ -1140,10 +1108,7 @@
                     start,
                     current);
         } else {
-            throw new SAXParseException(
-                Localizer.getMessage(
-                    "jsp.error.xml.badStandardAction",
-                    localName),
+            throw new SAXParseException(MESSAGES.invalidStandardAction(localName),
                 locator);
         }
 
@@ -1174,8 +1139,7 @@
         TagInfo tagInfo = tagLibInfo.getTag(localName);
         TagFileInfo tagFileInfo = tagLibInfo.getTagFile(localName);
         if (tagInfo == null && tagFileInfo == null) {
-            throw new SAXException(
-                Localizer.getMessage("jsp.error.xml.bad_tag", localName, uri));
+            throw new SAXException(MESSAGES.unknownTag(localName, uri));
         }
         Class tagHandlerClass = null;
         if (tagInfo != null) {
@@ -1184,10 +1148,7 @@
                 tagHandlerClass =
                     ctxt.getClassLoader().loadClass(handlerClassName);
             } catch (Exception e) {
-                throw new SAXException(
-                    Localizer.getMessage("jsp.error.loadclass.taghandler",
-                                         handlerClassName,
-                                         qName),
+                throw new SAXException(MESSAGES.errorLoadingTagHandler(handlerClassName, qName),
                     e);
             }
         }
@@ -1318,11 +1279,7 @@
                         elemType = DECLARATION_ACTION;
                     if (scriptingElem instanceof Node.Expression)
                         elemType = EXPRESSION_ACTION;
-                    String msg =
-                        Localizer.getMessage(
-                            "jsp.error.parse.xml.scripting.invalid.body",
-                            elemType);
-                    throw new SAXException(msg);
+                    throw new SAXException(MESSAGES.invalidScriptingBody(elemType));
                 }
             }
         }
@@ -1345,12 +1302,11 @@
         try {
             parserController.parse(fname, parent, null);
         } catch (FileNotFoundException fnfe) {
-            throw new SAXParseException(
-                Localizer.getMessage("jsp.error.file.not.found", fname),
+            throw new SAXParseException(MESSAGES.fileNotFound(fname),
                 locator,
                 fnfe);
         } catch (Exception e) {
-            throw new SAXException(e);
+            throw new SAXException(MESSAGES.errorParsingFile(fname), e);
         }
     }
 

Modified: trunk/src/main/java/org/apache/jasper/compiler/JspReader.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/JspReader.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/JspReader.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.CharArrayWriter;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -29,8 +31,7 @@
 
 import org.apache.jasper.JasperException;
 import org.apache.jasper.JspCompilationContext;
-import org.jboss.logging.Logger;
-import org.jboss.logging.Logger;
+import org.jboss.web.JasperLogger;
 
 /**
  * JspReader is an input buffer for the JSP parser. It should allow
@@ -51,11 +52,6 @@
 class JspReader {
 
     /**
-     * Logger.
-     */
-    private Logger log = Logger.getLogger(JspReader.class);
-
-    /**
      * The current spot in the file.
      */
     private Mark current;
@@ -444,10 +440,10 @@
                 }
                 // Check end of quote, skip closing quote:
                 if (ch == -1) {
-                    err.jspError(mark(), "jsp.error.quotes.unterminated");
+                    err.jspError(mark(), MESSAGES.unterminatedQuotes());
                 }
             } else {
-                err.jspError(mark(), "jsp.error.attr.quoted");
+                err.jspError(mark(), MESSAGES.unquotedAttributeValue());
             }
         } else {
             if (!isDelimiter()) {
@@ -578,13 +574,11 @@
                 try {
                     reader.close();
                 } catch (Exception any) {
-                    if(log.isDebugEnabled()) {
-                        log.debug("Exception closing reader: ", any);
-                    }
+                    JasperLogger.COMPILER_LOGGER.errorClosingReader(any);
                 }
             }
 
-            err.jspError("jsp.error.file.already.registered", file);
+            err.jspError(MESSAGES.invalidRecursiveInclude(file));
         }
 
         currFileId = fileid;
@@ -603,18 +597,15 @@
                                    longName, encoding);
             }
         } catch (Throwable ex) {
-            log.error("Exception parsing file ", ex);
             // Pop state being constructed:
             popFile();
-            err.jspError("jsp.error.file.cannot.read", file);
+            err.jspError(MESSAGES.errorReadingFile(file));
         } finally {
             if (reader != null) {
                 try {
                     reader.close();
                 } catch (Exception any) {
-                    if(log.isDebugEnabled()) {
-                        log.debug("Exception closing reader: ", any);
-                    }
+                    JasperLogger.COMPILER_LOGGER.errorClosingReader(any);
                 }
             }
         }
@@ -639,7 +630,7 @@
         String fName = getFile(currFileId);
         currFileId = unregisterSourceFile(fName);
         if (currFileId < -1) {
-            err.jspError("jsp.error.file.not.registered", fName);
+            err.jspError(MESSAGES.invalidInclude(fName));
         }
 
         Mark previous = current.popStream();

Modified: trunk/src/main/java/org/apache/jasper/compiler/JspRuntimeContext.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/JspRuntimeContext.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/JspRuntimeContext.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -39,8 +39,7 @@
 import org.apache.jasper.runtime.JspFactoryImpl;
 import org.apache.jasper.security.SecurityClassLoad;
 import org.apache.jasper.servlet.JspServletWrapper;
-import org.jboss.logging.Logger;
-import org.jboss.logging.Logger;
+import org.jboss.web.JasperLogger;
 
 /**
  * Class for tracking JSP compile time file dependencies when the
@@ -57,9 +56,6 @@
  */
 public final class JspRuntimeContext {
 
-    // Logger
-    private Logger log = Logger.getLogger(JspRuntimeContext.class);
-
     /*
      * Counts how many times the webapp's JSPs have been reloaded.
      */
@@ -115,15 +111,8 @@
             parentClassLoader = this.getClass().getClassLoader();
         }
 
-	if (log.isDebugEnabled()) {
-	    if (parentClassLoader != null) {
-		log.debug(Localizer.getMessage("jsp.message.parent_class_loader_is",
-					       parentClassLoader.toString()));
-	    } else {
-		log.debug(Localizer.getMessage("jsp.message.parent_class_loader_is",
-					       "<none>"));
-	    }
-        }
+        JasperLogger.COMPILER_LOGGER.logParentClassLoader((parentClassLoader != null) 
+                ? parentClassLoader.toString() : "[none]");
 
         initClassPath();
 
@@ -347,9 +336,7 @@
 
         classpath = cpath.toString() + cp;
 
-        if(log.isDebugEnabled()) {
-            log.debug("Compilation classpath initialized: " + getClassPath());
-        }
+        JasperLogger.COMPILER_LOGGER.logCompilationClasspath(getClassPath());
     }
 
     /**

Modified: trunk/src/main/java/org/apache/jasper/compiler/JspUtil.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/JspUtil.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/JspUtil.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.CharArrayWriter;
 import java.io.IOException;
 import java.io.InputStream;
@@ -205,7 +207,7 @@
             throws JasperException {
     if (scope != null && !scope.equals("page") && !scope.equals("request")
         && !scope.equals("session") && !scope.equals("application")) {
-        err.jspError(n, "jsp.error.invalid.scope", scope);
+        err.jspError(n.getStart(), MESSAGES.invalidScope(scope));
     }
     }
 
@@ -244,8 +246,7 @@
                     temp.addElement( attrName );
             // Check if this value appear in the attribute of the node
             if (n.getAttributeValue(attrName) != null) {
-            err.jspError(n, "jsp.error.duplicate.name.jspattribute",
-                    attrName);
+            err.jspError(n.getStart(), MESSAGES.duplicateAttribute(attrName));
             }
                 }
                 else {
@@ -280,8 +281,7 @@
 
     // If mandatory attribute is missing then the exception is thrown
     if (!valid)
-        err.jspError(start, "jsp.error.mandatory.attribute", typeOfTag,
-             missingAttribute);
+        err.jspError(start, MESSAGES.missingMandatoryAttribute(typeOfTag, missingAttribute));
 
     // Check to see if there are any more attributes for the specified tag.
         int attrLeftLength = temp.size();
@@ -301,8 +301,7 @@
         }
         }
         if (!valid)
-        err.jspError(start, "jsp.error.invalid.attribute", typeOfTag,
-                 attribute);
+        err.jspError(start, MESSAGES.invalidAttribute(typeOfTag, attribute));
     }
     // XXX *could* move EL-syntax validation here... (sb)
     }
@@ -815,7 +814,7 @@
         String jarEntryName = fname.substring(1, fname.length());
         ZipEntry jarEntry = jarFile.getEntry(jarEntryName);
         if (jarEntry == null) {
-        err.jspError("jsp.error.file.not.found", fname);
+        err.jspError(MESSAGES.fileNotFound(fname));
         }
         in = jarFile.getInputStream(jarEntry);
     } else {
@@ -823,7 +822,7 @@
     }
 
     if (in == null) {
-        err.jspError("jsp.error.file.not.found", fname);
+        err.jspError(MESSAGES.fileNotFound(fname));
     }
 
     return in;
@@ -871,7 +870,7 @@
         
         index = path.lastIndexOf(".tag");
         if (index == -1) {
-            err.jspError("jsp.error.tagfile.badSuffix", path);
+            err.jspError(MESSAGES.invalidTagFileName(path));
         }
 
         //It's tempting to remove the ".tag" suffix here, but we can't.
@@ -894,7 +893,7 @@
         className = getClassNameBase(urn);
         begin = index + META_INF_TAGS.length();
         } else {
-        err.jspError("jsp.error.tagfile.illegalPath", path);
+        err.jspError(MESSAGES.invalidTagFileDirectory(path));
         }
     }
 
@@ -1066,7 +1065,7 @@
         try {
             reader = new InputStreamReader(in, encoding);
         } catch (UnsupportedEncodingException ex) {
-            err.jspError("jsp.error.unsupported.encoding", encoding);
+            err.jspError(MESSAGES.unsupportedEncoding(encoding));
         }
 
         return reader;

Deleted: trunk/src/main/java/org/apache/jasper/compiler/Localizer.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/Localizer.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/Localizer.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -1,166 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jasper.compiler;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Class responsible for converting error codes to corresponding localized
- * error messages.
- *
- * @author Jan Luehe
- */
-public class Localizer {
-
-    private static ResourceBundle bundle = null;
-    
-    static {
-        try {
-        bundle = ResourceBundle.getBundle(
-            "org.apache.jasper.resources.LocalStrings");
-        } catch (Throwable t) {
-            t.printStackTrace();
-        }
-    }
-
-    /*
-     * Returns the localized error message corresponding to the given error
-     * code.
-     *
-     * If the given error code is not defined in the resource bundle for
-     * localized error messages, it is used as the error message.
-     *
-     * @param errCode Error code to localize
-     * 
-     * @return Localized error message
-     */
-    public static String getMessage(String errCode) {
-        if (bundle == null) {
-            return errCode;
-        }
-	String errMsg = errCode;
-	try {
-	    errMsg = bundle.getString(errCode);
-	} catch (MissingResourceException e) {
-	}
-	return errMsg;
-    }
-
-    /* 
-     * Returns the localized error message corresponding to the given error
-     * code.
-     *
-     * If the given error code is not defined in the resource bundle for
-     * localized error messages, it is used as the error message.
-     *
-     * @param errCode Error code to localize
-     * @param arg Argument for parametric replacement
-     *
-     * @return Localized error message
-     */
-    public static String getMessage(String errCode, String arg) {
-	return getMessage(errCode, new Object[] {arg});
-    }
-
-    /* 
-     * Returns the localized error message corresponding to the given error
-     * code.
-     *
-     * If the given error code is not defined in the resource bundle for
-     * localized error messages, it is used as the error message.
-     *
-     * @param errCode Error code to localize
-     * @param arg1 First argument for parametric replacement
-     * @param arg2 Second argument for parametric replacement
-     *
-     * @return Localized error message
-     */
-    public static String getMessage(String errCode, String arg1, String arg2) {
-	return getMessage(errCode, new Object[] {arg1, arg2});
-    }
-    
-    /* 
-     * Returns the localized error message corresponding to the given error
-     * code.
-     *
-     * If the given error code is not defined in the resource bundle for
-     * localized error messages, it is used as the error message.
-     *
-     * @param errCode Error code to localize
-     * @param arg1 First argument for parametric replacement
-     * @param arg2 Second argument for parametric replacement
-     * @param arg3 Third argument for parametric replacement
-     *
-     * @return Localized error message
-     */
-    public static String getMessage(String errCode, String arg1, String arg2,
-				    String arg3) {
-	return getMessage(errCode, new Object[] {arg1, arg2, arg3});
-    }
-
-    /* 
-     * Returns the localized error message corresponding to the given error
-     * code.
-     *
-     * If the given error code is not defined in the resource bundle for
-     * localized error messages, it is used as the error message.
-     *
-     * @param errCode Error code to localize
-     * @param arg1 First argument for parametric replacement
-     * @param arg2 Second argument for parametric replacement
-     * @param arg3 Third argument for parametric replacement
-     * @param arg4 Fourth argument for parametric replacement
-     *
-     * @return Localized error message
-     */
-    public static String getMessage(String errCode, String arg1, String arg2,
-				    String arg3, String arg4) {
-	return getMessage(errCode, new Object[] {arg1, arg2, arg3, arg4});
-    }
-
-    /*
-     * Returns the localized error message corresponding to the given error
-     * code.
-     *
-     * If the given error code is not defined in the resource bundle for
-     * localized error messages, it is used as the error message.
-     *
-     * @param errCode Error code to localize
-     * @param args Arguments for parametric replacement
-     *
-     * @return Localized error message
-     */
-    public static String getMessage(String errCode, Object[] args) {
-        if (bundle == null) {
-            return errCode;
-        }
-	String errMsg = errCode;
-	try {
-	    errMsg = bundle.getString(errCode);
-	    if (args != null) {
-		MessageFormat formatter = new MessageFormat(errMsg);
-		errMsg = formatter.format(args);
-	    }
-	} catch (MissingResourceException e) {
-	}
-	
-	return errMsg;
-    }
-}

Modified: trunk/src/main/java/org/apache/jasper/compiler/PageInfo.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/PageInfo.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/PageInfo.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -16,6 +16,8 @@
  */
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -377,9 +379,9 @@
 
         if (!"java".equalsIgnoreCase(value)) {
             if (pagedir)
-                err.jspError(n, "jsp.error.page.language.nonjava");
+                err.jspError(n.getStart(), MESSAGES.unsupportedPageDirectiveLanguage());
             else
-                err.jspError(n, "jsp.error.tag.language.nonjava");
+                err.jspError(n.getStart(), MESSAGES.unsupportedTagDirectiveLanguage());
         }
 
         language = value;
@@ -459,12 +461,12 @@
             buffer = 0;
         else {
             if (value == null || !value.endsWith("kb"))
-                err.jspError(n, "jsp.error.page.invalid.buffer");
+                err.jspError(n.getStart(), MESSAGES.invalidPageDirectiveBufferSize());
             try {
                 Integer k = new Integer(value.substring(0, value.length()-2));
                 buffer = k.intValue() * 1024;
             } catch (NumberFormatException e) {
-                err.jspError(n, "jsp.error.page.invalid.buffer");
+                err.jspError(n.getStart(), MESSAGES.invalidPageDirectiveBufferSize());
             }
         }
 
@@ -478,12 +480,12 @@
             buffer = 0;
         else {
             if (value == null || !value.endsWith("kb"))
-                err.jspError("jsp.error.page.invalid.buffer");
+                err.jspError(MESSAGES.invalidPageDirectiveBufferSize());
             try {
                 Integer k = new Integer(value.substring(0, value.length()-2));
                 buffer = k.intValue() * 1024;
             } catch (NumberFormatException e) {
-                err.jspError("jsp.error.page.invalid.buffer");
+                err.jspError(MESSAGES.invalidPageDirectiveBufferSize());
             }
         }
 
@@ -510,7 +512,7 @@
         else if ("false".equalsIgnoreCase(value))
             isSession = false;
         else
-            err.jspError(n, "jsp.error.page.invalid.session");
+            err.jspError(n.getStart(), MESSAGES.invalidPageDirectiveSession());
 
         session = value;
     }
@@ -535,7 +537,7 @@
         else if ("false".equalsIgnoreCase(value))
             isAutoFlush = false;
         else
-            err.jspError(n, "jsp.error.autoFlush.invalid");
+            err.jspError(n.getStart(), MESSAGES.invalidPageDirectiveAutoFlush());
 
         autoFlush = value;
     }
@@ -560,7 +562,7 @@
         else if ("false".equalsIgnoreCase(value))
             isThreadSafe = false;
         else
-            err.jspError(n, "jsp.error.page.invalid.isthreadsafe");
+            err.jspError(n.getStart(), MESSAGES.invalidPageDirectiveIsThreadSafe());
 
         isThreadSafeValue = value;
     }
@@ -609,7 +611,7 @@
         else if ("false".equalsIgnoreCase(value))
             isErrorPage = false;
         else
-            err.jspError(n, "jsp.error.page.invalid.iserrorpage");
+            err.jspError(n.getStart(), MESSAGES.invalidPageDirectiveIsErrorPage());
 
         isErrorPageValue = value;
     }
@@ -636,9 +638,9 @@
             isELIgnored = false;
         else {
             if (pagedir)
-                err.jspError(n, "jsp.error.page.invalid.iselignored");
+                err.jspError(n.getStart(), MESSAGES.invalidPageDirectiveIsElIgnored());
             else
-                err.jspError(n, "jsp.error.tag.invalid.iselignored");
+                err.jspError(n.getStart(), MESSAGES.invalidTagDirectiveIsElIgnored());
         }
 
         isELIgnoredValue = value;
@@ -657,9 +659,9 @@
             deferredSyntaxAllowedAsLiteral = false;
         else {
             if (pagedir)
-                err.jspError(n, "jsp.error.page.invalid.deferredsyntaxallowedasliteral");
+                err.jspError(n.getStart(), MESSAGES.invalidPageDirectiveDeferredSyntaxAllowedAsLiteral());
             else
-                err.jspError(n, "jsp.error.tag.invalid.deferredsyntaxallowedasliteral");
+                err.jspError(n.getStart(), MESSAGES.invalidTagDirectiveDeferredSyntaxAllowedAsLiteral());
         }
 
         deferredSyntaxAllowedAsLiteralValue = value;
@@ -678,9 +680,9 @@
             trimDirectiveWhitespaces = false;
         else {
             if (pagedir)
-                err.jspError(n, "jsp.error.page.invalid.trimdirectivewhitespaces");
+                err.jspError(n.getStart(), MESSAGES.invalidPageDirectiveTrimDirectiveWhitespaces());
             else
-                err.jspError(n, "jsp.error.tag.invalid.trimdirectivewhitespaces");
+                err.jspError(n.getStart(), MESSAGES.invalidTagDirectiveTrimDirectiveWhitespaces());
         }
 
         trimDirectiveWhitespacesValue = value;

Modified: trunk/src/main/java/org/apache/jasper/compiler/Parser.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/Parser.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/Parser.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -16,6 +16,8 @@
  */
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.CharArrayWriter;
 import java.io.FileNotFoundException;
 import java.net.URL;
@@ -182,20 +184,19 @@
             String prefix = qName.substring(0, index);
             uri = pageInfo.getURI(prefix);
             if (uri == null) {
-                err.jspError(reader.mark(),
-                        "jsp.error.attribute.invalidPrefix", prefix);
+                err.jspError(reader.mark(), MESSAGES.invalidAttributePrefix(prefix));
             }
             localName = qName.substring(index + 1);
         }
 
         reader.skipSpaces();
         if (!reader.matches("="))
-            err.jspError(reader.mark(), "jsp.error.attribute.noequal");
+            err.jspError(reader.mark(), MESSAGES.missingEqual());
 
         reader.skipSpaces();
         char quote = (char) reader.nextChar();
         if (quote != '\'' && quote != '"')
-            err.jspError(reader.mark(), "jsp.error.attribute.noquote");
+            err.jspError(reader.mark(), MESSAGES.missingQuote());
 
         String watchString = "";
         if (reader.matches("<%="))
@@ -237,7 +238,7 @@
         Mark start = reader.mark();
         Mark stop = reader.skipUntilIgnoreEsc(watch);
         if (stop == null) {
-            err.jspError(start, "jsp.error.attribute.unterminated", watch);
+            err.jspError(start, MESSAGES.unterminatedAttribute(watch));
         }
 
         String ret = null;
@@ -295,9 +296,9 @@
         try {
             parserController.parse(file, parent, jarFileUrl);
         } catch (FileNotFoundException ex) {
-            err.jspError(start, "jsp.error.file.not.found", file);
+            err.jspError(start, MESSAGES.fileNotFound(file));
         } catch (Exception ex) {
-            err.jspError(parent, "jsp.error.include.exception", file, ex);
+            err.jspError(parent.getStart(), MESSAGES.errorIncluding(file), ex);
         }
     }
 
@@ -365,15 +366,13 @@
         if (prefix != null) {
             Mark prevMark = pageInfo.getNonCustomTagPrefix(prefix);
             if (prevMark != null) {
-                err.jspError(reader.mark(), "jsp.error.prefix.use_before_dcl",
-                        prefix, prevMark.getFile(), ""
-                                + prevMark.getLineNumber());
+                err.jspError(reader.mark(), MESSAGES.prefixAlreadyInUse
+                        (prefix, prevMark.getFile(), prevMark.getLineNumber()));
             }
             if (uri != null) {
                 String uriPrev = pageInfo.getURI(prefix);
                 if (uriPrev != null && !uriPrev.equals(uri)) {
-                    err.jspError(reader.mark(), "jsp.error.prefix.refined",
-                            prefix, uri, uriPrev);
+                    err.jspError(reader.mark(), MESSAGES.prefixRedefinition(prefix, uri, uriPrev));
                 }
                 if (pageInfo.getTaglib(uri) == null) {
                     TagLibraryInfoImpl impl = null;
@@ -431,8 +430,7 @@
         if (reader.matches("page")) {
             directive = "&lt;%@ page";
             if (isTagFile) {
-                err.jspError(reader.mark(), "jsp.error.directive.istagfile",
-                        directive);
+                err.jspError(reader.mark(), MESSAGES.invalidDirectiveInTagFile(directive));
             }
             parsePageDirective(parent);
         } else if (reader.matches("include")) {
@@ -449,31 +447,28 @@
         } else if (reader.matches("tag")) {
             directive = "&lt;%@ tag";
             if (!isTagFile) {
-                err.jspError(reader.mark(), "jsp.error.directive.isnottagfile",
-                        directive);
+                err.jspError(reader.mark(), MESSAGES.invalidDirectiveInPage(directive));
             }
             parseTagDirective(parent);
         } else if (reader.matches("attribute")) {
             directive = "&lt;%@ attribute";
             if (!isTagFile) {
-                err.jspError(reader.mark(), "jsp.error.directive.isnottagfile",
-                        directive);
+                err.jspError(reader.mark(), MESSAGES.invalidDirectiveInPage(directive));
             }
             parseAttributeDirective(parent);
         } else if (reader.matches("variable")) {
             directive = "&lt;%@ variable";
             if (!isTagFile) {
-                err.jspError(reader.mark(), "jsp.error.directive.isnottagfile",
-                        directive);
+                err.jspError(reader.mark(), MESSAGES.invalidDirectiveInPage(directive));
             }
             parseVariableDirective(parent);
         } else {
-            err.jspError(reader.mark(), "jsp.error.invalid.directive");
+            err.jspError(reader.mark(), MESSAGES.invalidDirective());
         }
 
         reader.skipSpaces();
         if (!reader.matches("%>")) {
-            err.jspError(start, "jsp.error.unterminated", directive);
+            err.jspError(start, MESSAGES.unterminatedTag(directive));
         }
     }
 
@@ -497,8 +492,7 @@
         if (reader.matches("page")) {
             eTag = "jsp:directive.page";
             if (isTagFile) {
-                err.jspError(reader.mark(), "jsp.error.directive.istagfile",
-                        "&lt;" + eTag);
+                err.jspError(reader.mark(), MESSAGES.invalidDirectiveInTagFile("&lt;" + eTag));
             }
             parsePageDirective(parent);
         } else if (reader.matches("include")) {
@@ -507,36 +501,33 @@
         } else if (reader.matches("tag")) {
             eTag = "jsp:directive.tag";
             if (!isTagFile) {
-                err.jspError(reader.mark(), "jsp.error.directive.isnottagfile",
-                        "&lt;" + eTag);
+                err.jspError(reader.mark(), MESSAGES.invalidDirectiveInPage("&lt;" + eTag));
             }
             parseTagDirective(parent);
         } else if (reader.matches("attribute")) {
             eTag = "jsp:directive.attribute";
             if (!isTagFile) {
-                err.jspError(reader.mark(), "jsp.error.directive.isnottagfile",
-                        "&lt;" + eTag);
+                err.jspError(reader.mark(), MESSAGES.invalidDirectiveInPage("&lt;" + eTag));
             }
             parseAttributeDirective(parent);
         } else if (reader.matches("variable")) {
             eTag = "jsp:directive.variable";
             if (!isTagFile) {
-                err.jspError(reader.mark(), "jsp.error.directive.isnottagfile",
-                        "&lt;" + eTag);
+                err.jspError(reader.mark(), MESSAGES.invalidDirectiveInPage("&lt;" + eTag));
             }
             parseVariableDirective(parent);
         } else {
-            err.jspError(reader.mark(), "jsp.error.invalid.directive");
+            err.jspError(reader.mark(), MESSAGES.invalidDirective());
         }
 
         reader.skipSpaces();
         if (reader.matches(">")) {
             reader.skipSpaces();
             if (!reader.matchesETag(eTag)) {
-                err.jspError(start, "jsp.error.unterminated", "&lt;" + eTag);
+                err.jspError(start, MESSAGES.unterminatedTag("&lt;" + eTag));
             }
         } else if (!reader.matches("/>")) {
-            err.jspError(start, "jsp.error.unterminated", "&lt;" + eTag);
+            err.jspError(start, MESSAGES.unterminatedTag("&lt;" + eTag));
         }
     }
 
@@ -587,7 +578,7 @@
         start = reader.mark();
         Mark stop = reader.skipUntil("--%>");
         if (stop == null) {
-            err.jspError(start, "jsp.error.unterminated", "&lt;%--");
+            err.jspError(start, MESSAGES.unterminatedTag("&lt;%--"));
         }
 
         new Node.Comment(reader.getText(start, stop), start, parent);
@@ -600,7 +591,7 @@
         start = reader.mark();
         Mark stop = reader.skipUntil("%>");
         if (stop == null) {
-            err.jspError(start, "jsp.error.unterminated", "&lt;%!");
+            err.jspError(start, MESSAGES.unterminatedTag("&lt;%!"));
         }
 
         new Node.Declaration(parseScriptText(reader.getText(start, stop)),
@@ -617,8 +608,7 @@
         reader.skipSpaces();
         if (!reader.matches("/>")) {
             if (!reader.matches(">")) {
-                err.jspError(start, "jsp.error.unterminated",
-                        "&lt;jsp:declaration&gt;");
+                err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:declaration&gt;"));
             }
             Mark stop;
             String text;
@@ -626,8 +616,7 @@
                 start = reader.mark();
                 stop = reader.skipUntil("<");
                 if (stop == null) {
-                    err.jspError(start, "jsp.error.unterminated",
-                            "&lt;jsp:declaration&gt;");
+                    err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:declaration&gt;"));
                 }
                 text = parseScriptText(reader.getText(start, stop));
                 new Node.Declaration(text, start, parent);
@@ -635,7 +624,7 @@
                     start = reader.mark();
                     stop = reader.skipUntil("]]>");
                     if (stop == null) {
-                        err.jspError(start, "jsp.error.unterminated", "CDATA");
+                        err.jspError(start, MESSAGES.unterminatedTag("CDATA"));
                     }
                     text = parseScriptText(reader.getText(start, stop));
                     new Node.Declaration(text, start, parent);
@@ -645,8 +634,7 @@
             }
 
             if (!reader.matchesETagWithoutLessThan("jsp:declaration")) {
-                err.jspError(start, "jsp.error.unterminated",
-                        "&lt;jsp:declaration&gt;");
+                err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:declaration&gt;"));
             }
         }
     }
@@ -658,7 +646,7 @@
         start = reader.mark();
         Mark stop = reader.skipUntil("%>");
         if (stop == null) {
-            err.jspError(start, "jsp.error.unterminated", "&lt;%=");
+            err.jspError(start, MESSAGES.unterminatedTag("&lt;%="));
         }
 
         new Node.Expression(parseScriptText(reader.getText(start, stop)),
@@ -673,8 +661,7 @@
         reader.skipSpaces();
         if (!reader.matches("/>")) {
             if (!reader.matches(">")) {
-                err.jspError(start, "jsp.error.unterminated",
-                        "&lt;jsp:expression&gt;");
+                err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:expression&gt;"));
             }
             Mark stop;
             String text;
@@ -682,8 +669,7 @@
                 start = reader.mark();
                 stop = reader.skipUntil("<");
                 if (stop == null) {
-                    err.jspError(start, "jsp.error.unterminated",
-                            "&lt;jsp:expression&gt;");
+                    err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:expression&gt;"));
                 }
                 text = parseScriptText(reader.getText(start, stop));
                 new Node.Expression(text, start, parent);
@@ -691,7 +677,7 @@
                     start = reader.mark();
                     stop = reader.skipUntil("]]>");
                     if (stop == null) {
-                        err.jspError(start, "jsp.error.unterminated", "CDATA");
+                        err.jspError(start, MESSAGES.unterminatedTag("CDATA"));
                     }
                     text = parseScriptText(reader.getText(start, stop));
                     new Node.Expression(text, start, parent);
@@ -700,8 +686,7 @@
                 }
             }
             if (!reader.matchesETagWithoutLessThan("jsp:expression")) {
-                err.jspError(start, "jsp.error.unterminated",
-                        "&lt;jsp:expression&gt;");
+                err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:expression&gt;"));
             }
         }
     }
@@ -725,7 +710,7 @@
                 currentChar = reader.nextChar();
             }
             if (currentChar == -1)
-                err.jspError(start, "jsp.error.unterminated", type + "{");
+                err.jspError(start, MESSAGES.unterminatedTag(type + "{"));
             if (currentChar == '"' && !singleQuoted)
                 doubleQuoted = !doubleQuoted;
             if (currentChar == '\'' && !doubleQuoted)
@@ -742,7 +727,7 @@
         start = reader.mark();
         Mark stop = reader.skipUntil("%>");
         if (stop == null) {
-            err.jspError(start, "jsp.error.unterminated", "&lt;%");
+            err.jspError(start, MESSAGES.unterminatedTag("&lt;%"));
         }
 
         new Node.Scriptlet(parseScriptText(reader.getText(start, stop)), start,
@@ -757,8 +742,7 @@
         reader.skipSpaces();
         if (!reader.matches("/>")) {
             if (!reader.matches(">")) {
-                err.jspError(start, "jsp.error.unterminated",
-                        "&lt;jsp:scriptlet&gt;");
+                err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:scriptlet&gt;"));
             }
             Mark stop;
             String text;
@@ -766,8 +750,7 @@
                 start = reader.mark();
                 stop = reader.skipUntil("<");
                 if (stop == null) {
-                    err.jspError(start, "jsp.error.unterminated",
-                            "&lt;jsp:scriptlet&gt;");
+                    err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:scriptlet&gt;"));
                 }
                 text = parseScriptText(reader.getText(start, stop));
                 new Node.Scriptlet(text, start, parent);
@@ -775,7 +758,7 @@
                     start = reader.mark();
                     stop = reader.skipUntil("]]>");
                     if (stop == null) {
-                        err.jspError(start, "jsp.error.unterminated", "CDATA");
+                        err.jspError(start, MESSAGES.unterminatedTag("CDATA"));
                     }
                     text = parseScriptText(reader.getText(start, stop));
                     new Node.Scriptlet(text, start, parent);
@@ -785,8 +768,7 @@
             }
 
             if (!reader.matchesETagWithoutLessThan("jsp:scriptlet")) {
-                err.jspError(start, "jsp.error.unterminated",
-                        "&lt;jsp:scriptlet&gt;");
+                err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:scriptlet&gt;"));
             }
         }
     }
@@ -796,7 +778,7 @@
      */
     private void parseParam(Node parent) throws JasperException {
         if (!reader.matches("<jsp:param")) {
-            err.jspError(reader.mark(), "jsp.error.paramexpected");
+            err.jspError(reader.mark(), MESSAGES.missingParamAction());
         }
         Attributes attrs = parseAttributes();
         reader.skipSpaces();
@@ -909,14 +891,13 @@
                 if (!reader.matchesETag(tag)) {
                     // Body not allowed
                     err.jspError(reader.mark(),
-                            "jsp.error.jspbody.emptybody.only", "&lt;" + tag);
+                            MESSAGES.invalidEmptyBodyTag("&lt;" + tag));
                 }
             } else {
-                err.jspError(reader.mark(), "jsp.error.jspbody.emptybody.only",
-                        "&lt;" + tag);
+                err.jspError(reader.mark(), MESSAGES.invalidEmptyBodyTag("&lt;" + tag));
             }
         } else {
-            err.jspError(reader.mark(), "jsp.error.unterminated", "&lt;" + tag);
+            err.jspError(reader.mark(), MESSAGES.unterminatedTag("&lt;" + tag));
         }
     }
 
@@ -963,7 +944,7 @@
         }
 
         if (!reader.matches(">")) {
-            err.jspError(reader.mark(), "jsp.error.unterminated", "&lt;" + tag);
+            err.jspError(reader.mark(), MESSAGES.unterminatedTag("&lt;" + tag));
         }
 
         if (reader.matchesETag(tag)) {
@@ -1003,16 +984,14 @@
             parseJspBody(parent, bodyType);
             reader.skipSpaces();
             if (!reader.matchesETag(tag)) {
-                err.jspError(reader.mark(), "jsp.error.unterminated", "&lt;"
-                        + tag);
+                err.jspError(reader.mark(), MESSAGES.unterminatedTag("&lt;" + tag));
             }
 
             result = true;
         } else if (result && !reader.matchesETag(tag)) {
             // If we have <jsp:attribute> but something other than
             // <jsp:body> or the end tag, translation error.
-            err.jspError(reader.mark(), "jsp.error.jspbody.required", "&lt;"
-                    + tag);
+            err.jspError(reader.mark(), MESSAGES.invalidTagBody("&lt;" + tag));
         }
 
         return result;
@@ -1092,14 +1071,12 @@
             parseForward(parent);
         } else if (reader.matches(INVOKE_ACTION)) {
             if (!isTagFile) {
-                err.jspError(reader.mark(), "jsp.error.action.isnottagfile",
-                        "&lt;jsp:invoke");
+                err.jspError(reader.mark(), MESSAGES.invalidDirectiveInPage("&lt;jsp:invoke"));
             }
             parseInvoke(parent);
         } else if (reader.matches(DOBODY_ACTION)) {
             if (!isTagFile) {
-                err.jspError(reader.mark(), "jsp.error.action.isnottagfile",
-                        "&lt;jsp:doBody");
+                err.jspError(reader.mark(), MESSAGES.invalidDirectiveInPage("&lt;jsp:doBody"));
             }
             parseDoBody(parent);
         } else if (reader.matches(GET_PROPERTY_ACTION)) {
@@ -1113,19 +1090,19 @@
         } else if (reader.matches(ELEMENT_ACTION)) {
             parseElement(parent);
         } else if (reader.matches(ATTRIBUTE_ACTION)) {
-            err.jspError(start, "jsp.error.namedAttribute.invalidUse");
+            err.jspError(start, MESSAGES.invalidJspAttribute());
         } else if (reader.matches(BODY_ACTION)) {
-            err.jspError(start, "jsp.error.jspbody.invalidUse");
+            err.jspError(start, MESSAGES.invalidJspBody());
         } else if (reader.matches(FALLBACK_ACTION)) {
-            err.jspError(start, "jsp.error.fallback.invalidUse");
+            err.jspError(start, MESSAGES.invalidJspFallback());
         } else if (reader.matches(PARAMS_ACTION)) {
-            err.jspError(start, "jsp.error.params.invalidUse");
+            err.jspError(start, MESSAGES.invalidJspParams());
         } else if (reader.matches(PARAM_ACTION)) {
-            err.jspError(start, "jsp.error.param.invalidUse");
+            err.jspError(start, MESSAGES.invalidJspParam());
         } else if (reader.matches(OUTPUT_ACTION)) {
-            err.jspError(start, "jsp.error.jspoutput.invalidUse");
+            err.jspError(start, MESSAGES.invalidJspOutput());
         } else {
-            err.jspError(start, "jsp.error.badStandardAction");
+            err.jspError(start, MESSAGES.invalidStandardAction());
         }
     }
 
@@ -1173,7 +1150,7 @@
         String uri = pageInfo.getURI(prefix);
         if (uri == null) {
             if (pageInfo.isErrorOnUndeclaredNamespace()) {
-                err.jspError(start, "jsp.error.bad_tag", shortTagName, prefix);
+                err.jspError(start, MESSAGES.unknownTagPrefix(shortTagName, prefix));
             }
             reader.reset(start);
             // Remember the prefix for later error checking
@@ -1185,7 +1162,7 @@
         TagInfo tagInfo = tagLibInfo.getTag(shortTagName);
         TagFileInfo tagFileInfo = tagLibInfo.getTagFile(shortTagName);
         if (tagInfo == null && tagFileInfo == null) {
-            err.jspError(start, "jsp.error.bad_tag", shortTagName, prefix);
+            err.jspError(start, MESSAGES.unknownTagPrefix(shortTagName, prefix));
         }
         Class tagHandlerClass = null;
         if (tagInfo != null) {
@@ -1196,8 +1173,7 @@
                 tagHandlerClass = ctxt.getClassLoader().loadClass(
                         handlerClassName);
             } catch (Exception e) {
-                err.jspError(start, "jsp.error.loadclass.taghandler",
-                        handlerClassName, tagName);
+                err.jspError(start, MESSAGES.errorLoadingTagHandler(handlerClassName, tagName));
             }
         }
 
@@ -1311,8 +1287,7 @@
         reader.skipSpaces();
         if (!reader.matches("/>")) {
             if (!reader.matches(">")) {
-                err.jspError(start, "jsp.error.unterminated",
-                        "&lt;jsp:text&gt;");
+                err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:text&gt;"));
             }
             CharArrayWriter ttext = new CharArrayWriter();
             while (reader.hasMoreInput()) {
@@ -1325,7 +1300,7 @@
                     start = reader.mark();
                     Mark stop = reader.skipUntil("]]>");
                     if (stop == null) {
-                        err.jspError(start, "jsp.error.unterminated", "CDATA");
+                        err.jspError(start, MESSAGES.unterminatedTag("CDATA"));
                     }
                     String text = reader.getText(start, stop);
                     ttext.write(text, 0, text.length());
@@ -1366,10 +1341,9 @@
             new Node.TemplateText(ttext.toString(), start, parent);
 
             if (!reader.hasMoreInput()) {
-                err.jspError(start, "jsp.error.unterminated",
-                        "&lt;jsp:text&gt;");
+                err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:text&gt;"));
             } else if (!reader.matchesETagWithoutLessThan("jsp:text")) {
-                err.jspError(start, "jsp.error.jsptext.badcontent");
+                err.jspError(start, MESSAGES.badContent());
             }
         }
     }
@@ -1446,17 +1420,17 @@
         } else if (reader.matches("<jsp:directive.")) {
             parseXMLDirective(parent);
         } else if (reader.matches("<%!")) {
-            err.jspError(reader.mark(), "jsp.error.no.scriptlets");
+            err.jspError(reader.mark(), MESSAGES.invalidScriptingElement());
         } else if (reader.matches("<jsp:declaration")) {
-            err.jspError(reader.mark(), "jsp.error.no.scriptlets");
+            err.jspError(reader.mark(), MESSAGES.invalidScriptingElement());
         } else if (reader.matches("<%=")) {
-            err.jspError(reader.mark(), "jsp.error.no.scriptlets");
+            err.jspError(reader.mark(), MESSAGES.invalidScriptingElement());
         } else if (reader.matches("<jsp:expression")) {
-            err.jspError(reader.mark(), "jsp.error.no.scriptlets");
+            err.jspError(reader.mark(), MESSAGES.invalidScriptingElement());
         } else if (reader.matches("<%")) {
-            err.jspError(reader.mark(), "jsp.error.no.scriptlets");
+            err.jspError(reader.mark(), MESSAGES.invalidScriptingElement());
         } else if (reader.matches("<jsp:scriptlet")) {
-            err.jspError(reader.mark(), "jsp.error.no.scriptlets");
+            err.jspError(reader.mark(), MESSAGES.invalidScriptingElement());
         } else if (reader.matches("<jsp:text")) {
             parseXMLTemplateText(parent);
         } else if (!pageInfo.isELIgnored() && reader.matches("${")) {
@@ -1492,40 +1466,29 @@
         } else if (reader.matches("<jsp:directive.")) {
             parseXMLDirective(parent);
         } else if (reader.matches("<%!")) {
-            err.jspError(reader.mark(), "jsp.error.not.in.template",
-                    "Declarations");
+            err.jspError(reader.mark(), MESSAGES.invalidTemplateTextBody("&lt;%!"));
         } else if (reader.matches("<jsp:declaration")) {
-            err.jspError(reader.mark(), "jsp.error.not.in.template",
-                    "Declarations");
+            err.jspError(reader.mark(), MESSAGES.invalidTemplateTextBody("&lt;jsp:declaration"));
         } else if (reader.matches("<%=")) {
-            err.jspError(reader.mark(), "jsp.error.not.in.template",
-                    "Expressions");
+            err.jspError(reader.mark(), MESSAGES.invalidTemplateTextBody("&lt;%="));
         } else if (reader.matches("<jsp:expression")) {
-            err.jspError(reader.mark(), "jsp.error.not.in.template",
-                    "Expressions");
+            err.jspError(reader.mark(), MESSAGES.invalidTemplateTextBody("&lt;jsp:expression"));
         } else if (reader.matches("<%")) {
-            err.jspError(reader.mark(), "jsp.error.not.in.template",
-                    "Scriptlets");
+            err.jspError(reader.mark(), MESSAGES.invalidTemplateTextBody("&lt;%"));
         } else if (reader.matches("<jsp:scriptlet")) {
-            err.jspError(reader.mark(), "jsp.error.not.in.template",
-                    "Scriptlets");
+            err.jspError(reader.mark(), MESSAGES.invalidTemplateTextBody("&lt;jsp:scriptlet"));
         } else if (reader.matches("<jsp:text")) {
-            err.jspError(reader.mark(), "jsp.error.not.in.template",
-                    "&lt;jsp:text");
+            err.jspError(reader.mark(), MESSAGES.invalidTemplateTextBody("&lt;jsp:text"));
         } else if (!pageInfo.isELIgnored() && reader.matches("${")) {
-            err.jspError(reader.mark(), "jsp.error.not.in.template",
-                    "Expression language");
+            err.jspError(reader.mark(), MESSAGES.invalidTemplateTextBody("${"));
         } else if (!pageInfo.isELIgnored()
                 && !pageInfo.isDeferredSyntaxAllowedAsLiteral()
                 && reader.matches("#{")) {
-            err.jspError(reader.mark(), "jsp.error.not.in.template",
-                    "Expression language");
+            err.jspError(reader.mark(), MESSAGES.invalidTemplateTextBody("#{"));
         } else if (reader.matches("<jsp:")) {
-            err.jspError(reader.mark(), "jsp.error.not.in.template",
-                    "Standard actions");
+            err.jspError(reader.mark(), MESSAGES.invalidTemplateTextBody("&lt;jsp:"));
         } else if (parseCustomTag(parent)) {
-            err.jspError(reader.mark(), "jsp.error.not.in.template",
-                    "Custom actions");
+            err.jspError(reader.mark(), MESSAGES.invalidTagInTemplateTextBody());
         } else {
             checkUnbalancedEndTag();
             parseTemplateText(parent);
@@ -1543,7 +1506,7 @@
 
         // Check for unbalanced standard actions
         if (reader.matches("jsp:")) {
-            err.jspError(start, "jsp.error.unbalanced.endtag", "jsp:");
+            err.jspError(start, MESSAGES.unbalancedEndTag("jsp:"));
         }
 
         // Check for unbalanced custom actions
@@ -1554,7 +1517,7 @@
             return;
         }
 
-        err.jspError(start, "jsp.error.unbalanced.endtag", tagName);
+        err.jspError(start, MESSAGES.unbalancedEndTag(tagName));
     }
 
     /**
@@ -1565,7 +1528,7 @@
         Mark bodyStart = reader.mark();
         Mark bodyEnd = reader.skipUntilETag(tag);
         if (bodyEnd == null) {
-            err.jspError(start, "jsp.error.unterminated", "&lt;" + tag);
+            err.jspError(start, MESSAGES.unterminatedTag("&lt;" + tag));
         }
         new Node.TemplateText(reader.getText(bodyStart, bodyEnd), bodyStart,
                 parent);
@@ -1582,7 +1545,7 @@
         reader.skipSpaces();
         if (!reader.matches("/>")) {
             if (!reader.matches(">")) {
-                err.jspError(start, "jsp.error.unterminated", "&lt;jsp:body");
+                err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:body"));
             }
             parseBody(bodyNode, "jsp:body", bodyType);
         }
@@ -1599,16 +1562,14 @@
             parseTagDependentBody(parent, tag);
         } else if (bodyType.equalsIgnoreCase(TagInfo.BODY_CONTENT_EMPTY)) {
             if (!reader.matchesETag(tag)) {
-                err.jspError(start, "jasper.error.emptybodycontent.nonempty",
-                        tag);
+                err.jspError(start, MESSAGES.invalidEmptyTagSubelements(tag));
             }
         } else if (bodyType == JAVAX_BODY_CONTENT_PLUGIN) {
             // (note the == since we won't recognize JAVAX_*
             // from outside this module).
             parsePluginTags(parent);
             if (!reader.matchesETag(tag)) {
-                err.jspError(reader.mark(), "jsp.error.unterminated", "&lt;"
-                        + tag);
+                err.jspError(reader.mark(), MESSAGES.unterminatedTag("&lt;" + tag));
             }
         } else if (bodyType.equalsIgnoreCase(TagInfo.BODY_CONTENT_JSP)
                 || bodyType.equalsIgnoreCase(TagInfo.BODY_CONTENT_SCRIPTLESS)
@@ -1622,10 +1583,9 @@
                 // Check for nested jsp:body or jsp:attribute
                 if (tag.equals("jsp:body") || tag.equals("jsp:attribute")) {
                     if (reader.matches("<jsp:attribute")) {
-                        err.jspError(reader.mark(),
-                                "jsp.error.nested.jspattribute");
+                        err.jspError(reader.mark(), MESSAGES.invalidJspAttributeNesting());
                     } else if (reader.matches("<jsp:body")) {
-                        err.jspError(reader.mark(), "jsp.error.nested.jspbody");
+                        err.jspError(reader.mark(), MESSAGES.invalidJspBodyNesting());
                     }
                 }
 
@@ -1643,9 +1603,9 @@
                     parseElementsTemplateText(parent);
                 }
             }
-            err.jspError(start, "jsp.error.unterminated", "&lt;" + tag);
+            err.jspError(start, MESSAGES.unterminatedTag("&lt;" + tag));
         } else {
-            err.jspError(start, "jasper.error.bad.bodycontent.type");
+            err.jspError(start, MESSAGES.invalidBodyContentType());
         }
     }
 
@@ -1662,8 +1622,7 @@
             reader.skipSpaces();
             if (!reader.matches("/>")) {
                 if (!reader.matches(">")) {
-                    err.jspError(start, "jsp.error.unterminated",
-                            "&lt;jsp:attribute");
+                    err.jspError(start, MESSAGES.unterminatedTag("&lt;jsp:attribute"));
                 }
                 if (namedAttributeNode.isTrim()) {
                     reader.skipSpaces();

Modified: trunk/src/main/java/org/apache/jasper/compiler/ParserController.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/ParserController.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/ParserController.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStreamReader;
@@ -226,8 +228,7 @@
             if (jspConfigPageEnc != null && !jspConfigPageEnc.equals(sourceEnc)
                     && (!jspConfigPageEnc.startsWith("UTF-16")
                             || !sourceEnc.startsWith("UTF-16"))) {
-                err.jspError("jsp.error.prolog_config_encoding_mismatch",
-                        sourceEnc, jspConfigPageEnc);
+                err.jspError(MESSAGES.encodingConflict(sourceEnc, jspConfigPageEnc));
             }
         }
 

Modified: trunk/src/main/java/org/apache/jasper/compiler/ScriptingVariabler.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/ScriptingVariabler.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/ScriptingVariabler.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,8 +17,16 @@
 
 package org.apache.jasper.compiler;
 
-import java.util.*;
-import javax.servlet.jsp.tagext.*;
+import static org.jboss.web.JasperMessages.MESSAGES;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.jsp.tagext.TagVariableInfo;
+import javax.servlet.jsp.tagext.VariableInfo;
+
 import org.apache.jasper.JasperException;
 
 /**
@@ -122,8 +130,8 @@
                         varName = n.getTagData().getAttributeString(
                                 tagVarInfos[i].getNameFromAttribute());
                         if (varName == null) {
-                            err.jspError(n, "jsp.error.scripting.variable.missing_name",
-                                    tagVarInfos[i].getNameFromAttribute());
+                            err.jspError(n.getStart(), MESSAGES.cannotFindVariableNameFromAttribute
+                                    (tagVarInfos[i].getNameFromAttribute()));
                         }
                     }
 

Modified: trunk/src/main/java/org/apache/jasper/compiler/TagFileProcessor.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/TagFileProcessor.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/TagFileProcessor.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.net.MalformedURLException;
@@ -147,7 +149,7 @@
 
         public void visit(Node.TagDirective n) throws JasperException {
 
-            JspUtil.checkAttributes("Tag directive", n, tagDirectiveAttrs, err);
+            JspUtil.checkAttributes(TagConstants.TAG_DIRECTIVE_ACTION, n, tagDirectiveAttrs, err);
 
             bodycontent = checkConflict(n, bodycontent, "body-content");
             if (bodycontent != null
@@ -157,8 +159,7 @@
                             .equalsIgnoreCase(TagInfo.BODY_CONTENT_TAG_DEPENDENT)
                     && !bodycontent
                             .equalsIgnoreCase(TagInfo.BODY_CONTENT_SCRIPTLESS)) {
-                err.jspError(n, "jsp.error.tagdirective.badbodycontent",
-                        bodycontent);
+                err.jspError(n.getStart(), MESSAGES.invalidBodyContentInTagDirective(bodycontent));
             }
             dynamicAttrsMapName = checkConflict(n, dynamicAttrsMapName,
                     "dynamic-attributes");
@@ -179,8 +180,8 @@
             String attrValue = n.getAttributeValue(attr);
             if (attrValue != null) {
                 if (oldAttrValue != null && !oldAttrValue.equals(attrValue)) {
-                    err.jspError(n, "jsp.error.tag.conflict.attr", attr,
-                            oldAttrValue, attrValue);
+                    err.jspError(n.getStart(), MESSAGES.invalidConflictingTagDirectiveAttributeValues(attr,
+                            oldAttrValue, attrValue));
                 }
                 result = attrValue;
             }
@@ -189,7 +190,7 @@
 
         public void visit(Node.AttributeDirective n) throws JasperException {
 
-            JspUtil.checkAttributes("Attribute directive", n,
+            JspUtil.checkAttributes(TagConstants.ATTRIBUTE_DIRECTIVE_ACTION, n,
                     attributeDirectiveAttrs, err);
 
             // JSP 2.1 Table JSP.8-3
@@ -204,7 +205,7 @@
             String deferredValueType = n.getAttributeValue("deferredValueType");
             if (deferredValueType != null) {
                 if (deferredValueSpecified && !deferredValue) {
-                    err.jspError(n, "jsp.error.deferredvaluetypewithoutdeferredvalue");
+                    err.jspError(n.getStart(), MESSAGES.cannotUseValueTypeWithoutDeferredValue());
                 } else {
                     deferredValue = true;
                 }
@@ -227,7 +228,7 @@
                     .getAttributeValue("deferredMethodSignature");
             if (deferredMethodSignature != null) {
                 if (deferredMethodSpecified && !deferredMethod) {
-                    err.jspError(n, "jsp.error.deferredmethodsignaturewithoutdeferredmethod");
+                    err.jspError(n.getStart(), MESSAGES.cannotUseMethodSignatureWithoutDeferredMethod());
                 } else {
                     deferredMethod = true;
                 }
@@ -236,7 +237,7 @@
             }
 
             if (deferredMethod && deferredValue) {
-                err.jspError(n, "jsp.error.deferredmethodandvalue");
+                err.jspError(n.getStart(), MESSAGES.cannotUseBothDeferredValueAndMethod());
             }
             
             String attrName = n.getAttributeValue("name");
@@ -254,13 +255,13 @@
                 // type is fixed to "JspFragment" and a translation error
                 // must occur if specified.
                 if (type != null) {
-                    err.jspError(n, "jsp.error.fragmentwithtype");
+                    err.jspError(n.getStart(), MESSAGES.cannotUseFragmentWithType());
                 }
                 // rtexprvalue is fixed to "true" and a translation error
                 // must occur if specified.
                 rtexprvalue = true;
                 if (rtexprvalueString != null) {
-                    err.jspError(n, "jsp.error.frgmentwithrtexprvalue");
+                    err.jspError(n.getStart(), MESSAGES.cannotUseFragmentWithRtexprValue());
                 }
             } else {
                 if (type == null)
@@ -276,7 +277,7 @@
             if (("2.0".equals(tagLibInfo.getRequiredVersion()) || ("1.2".equals(tagLibInfo.getRequiredVersion())))
                     && (deferredMethodSpecified || deferredMethod
                             || deferredValueSpecified || deferredValue)) {
-                err.jspError("jsp.error.invalid.version", path);
+                err.jspError(MESSAGES.invalidTagFileJspVersion(path));
             }
             
             TagAttributeInfo tagAttributeInfo = new TagAttributeInfo(attrName,
@@ -288,24 +289,24 @@
 
         public void visit(Node.VariableDirective n) throws JasperException {
 
-            JspUtil.checkAttributes("Variable directive", n,
+            JspUtil.checkAttributes(TagConstants.VARIABLE_DIRECTIVE_ACTION, n,
                     variableDirectiveAttrs, err);
 
             String nameGiven = n.getAttributeValue("name-given");
             String nameFromAttribute = n
                     .getAttributeValue("name-from-attribute");
             if (nameGiven == null && nameFromAttribute == null) {
-                err.jspError("jsp.error.variable.either.name");
+                err.jspError(MESSAGES.mustSpecifyVariableDirectiveEitherName());
             }
 
             if (nameGiven != null && nameFromAttribute != null) {
-                err.jspError("jsp.error.variable.both.name");
+                err.jspError(MESSAGES.mustNotSpecifyVariableDirectiveBothName());
             }
 
             String alias = n.getAttributeValue("alias");
             if (nameFromAttribute != null && alias == null
                     || nameFromAttribute == null && alias != null) {
-                err.jspError("jsp.error.variable.alias");
+                err.jspError(MESSAGES.mustNotSpecifyVariableDirectiveBothOrNoneName());
             }
 
             String className = n.getAttributeValue("variable-class");
@@ -450,8 +451,8 @@
             if (nameEntry != null) {
                 if (type != TAG_DYNAMIC || nameEntry.getType() != TAG_DYNAMIC) {
                     int line = nameEntry.getNode().getStart().getLineNumber();
-                    err.jspError(n, "jsp.error.tagfile.nameNotUnique", type,
-                            nameEntry.getType(), Integer.toString(line));
+                    err.jspError(n.getStart(), MESSAGES.invalidDuplicateNames(type,
+                            nameEntry.getType(), line));
                 }
             } else {
                 table.put(name, new NameEntry(type, n, attr));
@@ -471,18 +472,16 @@
                         .get(nameFrom);
                 Node nameFromNode = nameFromEntry.getNode();
                 if (nameEntry == null) {
-                    err.jspError(nameFromNode,
-                            "jsp.error.tagfile.nameFrom.noAttribute", nameFrom);
+                    err.jspError(nameFromNode.getStart(),
+                            MESSAGES.cannotFindAttribute(nameFrom));
                 } else {
                     Node node = nameEntry.getNode();
                     TagAttributeInfo tagAttr = nameEntry.getTagAttributeInfo();
                     if (!"java.lang.String".equals(tagAttr.getTypeName())
                             || !tagAttr.isRequired()
                             || tagAttr.canBeRequestTime()) {
-                        err.jspError(nameFromNode,
-                                "jsp.error.tagfile.nameFrom.badAttribute",
-                                nameFrom, Integer.toString(node.getStart()
-                                        .getLineNumber()));
+                        err.jspError(nameFromNode.getStart(), MESSAGES.invalidAttributeFound(node.getStart()
+                                        .getLineNumber(), nameFrom));
                     }
                 }
             }
@@ -546,9 +545,9 @@
         try {
             page = pc.parseTagFileDirectives(path, tagFileJarUrl);
         } catch (FileNotFoundException e) {
-            err.jspError("jsp.error.file.not.found", path);
+            err.jspError(MESSAGES.fileNotFound(path));
         } catch (IOException e) {
-            err.jspError("jsp.error.file.not.found", path);
+            err.jspError(MESSAGES.fileNotFound(path));
         }
 
         TagFileDirectiveVisitor tagFileVisitor = new TagFileDirectiveVisitor(pc

Modified: trunk/src/main/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/TagLibraryInfoImpl.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -46,6 +46,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.net.MalformedURLException;
@@ -71,7 +73,6 @@
 import org.apache.catalina.util.RequestUtil;
 import org.apache.jasper.JasperException;
 import org.apache.jasper.JspCompilationContext;
-import org.jboss.logging.Logger;
 
 /**
  * Implementation of the TagLibraryInfo class from the JSP spec.
@@ -91,9 +92,6 @@
     public static final int ROOT_REL_URI = 1;
     public static final int NOROOT_REL_URI = 2;
 
-    // Logger
-    private Logger log = Logger.getLogger(TagLibraryInfoImpl.class);
-
     private JspCompilationContext ctxt;
     
     private PageInfo pi;
@@ -157,7 +155,7 @@
 
         URL jarFileUrl = null;
         if (location == null) {
-            err.jspError("jsp.error.file.not.found", uriIn);
+            err.jspError(MESSAGES.fileNotFound(uriIn));
         }
         if (location[0] != null && location[0].endsWith(".jar")) {
             try {
@@ -166,7 +164,7 @@
                     jarFileUrl = new URL("jar:" + jarUrl + "!/");
                 }
             } catch (MalformedURLException ex) {
-                err.jspError("jsp.error.file.not.found", uriIn);
+                err.jspError(MESSAGES.fileNotFound(uriIn));
             }
         }
         
@@ -174,7 +172,7 @@
             ((HashMap<String, org.apache.catalina.deploy.jsp.TagLibraryInfo>) 
             ctxt.getServletContext().getAttribute(Globals.JSP_TAG_LIBRARIES)).get(uri);
         if (tagLibraryInfo == null) {
-            err.jspError("jsp.error.file.not.found", uriIn);
+            err.jspError(MESSAGES.fileNotFound(uriIn));
         }
 
         ArrayList<TagInfo> tagInfos = new ArrayList<TagInfo>();
@@ -203,19 +201,17 @@
         for (int i = 0; i < functionInfosArray.length; i++) {
             FunctionInfo functionInfo = createFunctionInfo(functionInfosArray[i]);
             if (functionInfos.containsKey(functionInfo.getName())) {
-                err.jspError("jsp.error.tld.fn.duplicate.name", functionInfo.getName(),
-                        uri);
+                err.jspError(MESSAGES.duplicateTagLibraryFunctionName(functionInfo.getName(),
+                        uri));
             }
             functionInfos.put(functionInfo.getName(), functionInfo);
         }
         
         if (tlibversion == null) {
-            err.jspError("jsp.error.tld.mandatory.element.missing",
-                    "tlib-version");
+            err.jspError(MESSAGES.missingRequiredTagLibraryElement("tlib-version", uri));
         }
         if (jspversion == null) {
-            err.jspError("jsp.error.tld.mandatory.element.missing",
-                    "jsp-version");
+            err.jspError(MESSAGES.missingRequiredTagLibraryElement("jsp-version", uri));
         }
 
         this.tags = tagInfos.toArray(new TagInfo[0]);
@@ -236,8 +232,7 @@
 
         int uriType = uriType(uri);
         if (uriType == ABS_URI) {
-            err.jspError("jsp.error.taglibDirective.absUriCannotBeResolved",
-                    uri);
+            err.jspError(MESSAGES.unresolvableAbsoluteUri(uri));
         } else if (uriType == NOROOT_REL_URI) {
             uri = ctxt.resolveRelativeUri(uri);
             if (uri != null) {
@@ -252,11 +247,10 @@
             try {
                 url = ctxt.getResource(location[0]);
             } catch (Exception ex) {
-                err.jspError("jsp.error.tld.unable_to_get_jar", location[0], ex
-                        .toString());
+                err.jspError(MESSAGES.errorAccessingJar(location[0]), ex);
             }
             if (url == null) {
-                err.jspError("jsp.error.tld.missing_jar", location[0]);
+                err.jspError(MESSAGES.missingJar(location[0]));
             }
             location[0] = url.toString();
             location[1] = "META-INF/taglib.tld";
@@ -297,8 +291,7 @@
                 Class teiClass = ctxt.getClassLoader().loadClass(teiClassName);
                 tei = (TagExtraInfo) teiClass.newInstance();
             } catch (Exception e) {
-                err.jspError("jsp.error.teiclass.instantiation", teiClassName,
-                        e);
+                err.jspError(MESSAGES.errorLoadingTagExtraInfo(teiClassName), e);
             }
         }
 
@@ -416,7 +409,7 @@
             // it has been removed
             ctxt.setTagFileJarUrl(path, jarFileUrl);
         } else if (!path.startsWith("/WEB-INF/tags")) {
-            err.jspError("jsp.error.tagfile.illegalPath", path);
+            err.jspError(MESSAGES.invalidTagFileDirectory(path));
         }
         TagInfo tagInfo = TagFileProcessor.parseTagFileDirectives(
                 parserController, name, path, jarFileUrl, this);
@@ -458,8 +451,7 @@
                         .loadClass(validatorClass);
                 tlv = (TagLibraryValidator) tlvClass.newInstance();
             } catch (Exception e) {
-                err.jspError("jsp.error.tlvclass.instantiation",
-                        validatorClass, e);
+                err.jspError(MESSAGES.errorLoadingTagLibraryValidator(validatorClass), e);
             }
         }
         if (tlv != null) {

Modified: trunk/src/main/java/org/apache/jasper/compiler/TagPluginManager.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/TagPluginManager.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/TagPluginManager.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.InputStream;
 import java.util.HashMap;
 
@@ -89,8 +91,8 @@
             }
 
             if (!TAG_PLUGINS_ROOT_ELEM.equals(reader.getLocalName())) {
-                err.jspError("jsp.error.plugin.wrongRootElement", TAG_PLUGINS_XML,
-                        TAG_PLUGINS_ROOT_ELEM);
+                err.jspError(MESSAGES.wrongRootElement(TAG_PLUGINS_XML,
+                        TAG_PLUGINS_ROOT_ELEM));
             }
 
             tagPlugins = new HashMap<String, TagPlugin>();
@@ -106,11 +108,11 @@
                         } else if ("plugin-class".equals(childClementName)) {
                             pluginClassName = reader.getElementText().trim();
                         } else {
-                            err.jspError("jsp.error.invalid.tagplugin", TAG_PLUGINS_XML);
+                            err.jspError(MESSAGES.invalidTagPlugin(TAG_PLUGINS_XML));
                         }
                     }
                     if (tagClassName == null || pluginClassName == null) {
-                        err.jspError("jsp.error.invalid.tagplugin", TAG_PLUGINS_XML);
+                        err.jspError(MESSAGES.invalidTagPlugin(TAG_PLUGINS_XML));
                     }
                     TagPlugin tagPlugin = null;
                     try {
@@ -126,11 +128,11 @@
 
                 } else {
                     // All other elements are invalid
-                    err.jspError("jsp.error.invalid.tagplugin", TAG_PLUGINS_XML);
+                    err.jspError(MESSAGES.invalidTagPlugin(TAG_PLUGINS_XML));
                 }
             }
         } catch (XMLStreamException e) {
-            err.jspError("jsp.error.invalid.tagplugin", TAG_PLUGINS_XML, e);
+            err.jspError(MESSAGES.invalidTagPlugin(TAG_PLUGINS_XML), e);
         } catch (FactoryConfigurationError e) {
             throw new JasperException(e);
         } finally {

Modified: trunk/src/main/java/org/apache/jasper/compiler/Validator.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/compiler/Validator.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/compiler/Validator.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.compiler;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -103,7 +105,7 @@
 
         public void visit(Node.PageDirective n) throws JasperException {
 
-            JspUtil.checkAttributes("Page directive", n, pageDirectiveAttrs,
+            JspUtil.checkAttributes(TagConstants.PAGE_DIRECTIVE_ACTION, n, pageDirectiveAttrs,
                     err);
 
             // JSP.2.10.1
@@ -116,82 +118,82 @@
                     if (pageInfo.getLanguage(false) == null) {
                         pageInfo.setLanguage(value, n, err, true);
                     } else if (!pageInfo.getLanguage(false).equals(value)) {
-                        err.jspError(n, "jsp.error.page.conflict.language",
-                                pageInfo.getLanguage(false), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getLanguage(false), value));
                     }
                 } else if ("extends".equals(attr)) {
                     if (pageInfo.getExtends(false) == null) {
                         pageInfo.setExtends(value, n);
                     } else if (!pageInfo.getExtends(false).equals(value)) {
-                        err.jspError(n, "jsp.error.page.conflict.extends",
-                                pageInfo.getExtends(false), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getExtends(false), value));
                     }
                 } else if ("contentType".equals(attr)) {
                     if (pageInfo.getContentType() == null) {
                         pageInfo.setContentType(value);
                     } else if (!pageInfo.getContentType().equals(value)) {
-                        err.jspError(n, "jsp.error.page.conflict.contenttype",
-                                pageInfo.getContentType(), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getContentType(), value));
                     }
                 } else if ("session".equals(attr)) {
                     if (pageInfo.getSession() == null) {
                         pageInfo.setSession(value, n, err);
                     } else if (!pageInfo.getSession().equals(value)) {
-                        err.jspError(n, "jsp.error.page.conflict.session",
-                                pageInfo.getSession(), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getSession(), value));
                     }
                 } else if ("buffer".equals(attr)) {
                     if (pageInfo.getBufferValue() == null) {
                         pageInfo.setBufferValue(value, n, err);
                     } else if (!pageInfo.getBufferValue().equals(value)) {
-                        err.jspError(n, "jsp.error.page.conflict.buffer",
-                                pageInfo.getBufferValue(), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getBufferValue(), value));
                     }
                 } else if ("autoFlush".equals(attr)) {
                     if (pageInfo.getAutoFlush() == null) {
                         pageInfo.setAutoFlush(value, n, err);
                     } else if (!pageInfo.getAutoFlush().equals(value)) {
-                        err.jspError(n, "jsp.error.page.conflict.autoflush",
-                                pageInfo.getAutoFlush(), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getAutoFlush(), value));
                     }
                 } else if ("isThreadSafe".equals(attr)) {
                     if (pageInfo.getIsThreadSafe() == null) {
                         pageInfo.setIsThreadSafe(value, n, err);
                     } else if (!pageInfo.getIsThreadSafe().equals(value)) {
-                        err.jspError(n, "jsp.error.page.conflict.isthreadsafe",
-                                pageInfo.getIsThreadSafe(), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getIsThreadSafe(), value));
                     }
                 } else if ("isELIgnored".equals(attr)) {
                     if (pageInfo.getIsELIgnored() == null) {
                         pageInfo.setIsELIgnored(value, n, err, true);
                     } else if (!pageInfo.getIsELIgnored().equals(value)) {
-                        err.jspError(n, "jsp.error.page.conflict.iselignored",
-                                pageInfo.getIsELIgnored(), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getIsELIgnored(), value));
                     }
                 } else if ("isErrorPage".equals(attr)) {
                     if (pageInfo.getIsErrorPage() == null) {
                         pageInfo.setIsErrorPage(value, n, err);
                     } else if (!pageInfo.getIsErrorPage().equals(value)) {
-                        err.jspError(n, "jsp.error.page.conflict.iserrorpage",
-                                pageInfo.getIsErrorPage(), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getIsErrorPage(), value));
                     }
                 } else if ("errorPage".equals(attr)) {
                     if (pageInfo.getErrorPage() == null) {
                         pageInfo.setErrorPage(value);
                     } else if (!pageInfo.getErrorPage().equals(value)) {
-                        err.jspError(n, "jsp.error.page.conflict.errorpage",
-                                pageInfo.getErrorPage(), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getErrorPage(), value));
                     }
                 } else if ("info".equals(attr)) {
                     if (pageInfo.getInfo() == null) {
                         pageInfo.setInfo(value);
                     } else if (!pageInfo.getInfo().equals(value)) {
-                        err.jspError(n, "jsp.error.page.conflict.info",
-                                pageInfo.getInfo(), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getInfo(), value));
                     }
                 } else if ("pageEncoding".equals(attr)) {
                     if (pageEncodingSeen)
-                        err.jspError(n, "jsp.error.page.multi.pageencoding");
+                        err.jspError(n.getStart(), MESSAGES.invalidDuplicatePageDirectiveAttribute(attr));
                     // 'pageEncoding' can occur at most once per file
                     pageEncodingSeen = true;
                     String actual = comparePageEncodings(value, n);
@@ -202,13 +204,8 @@
                                 err, true);
                     } else if (!pageInfo.getDeferredSyntaxAllowedAsLiteral()
                             .equals(value)) {
-                        err
-                                .jspError(
-                                        n,
-                                        "jsp.error.page.conflict.deferredsyntaxallowedasliteral",
-                                        pageInfo
-                                                .getDeferredSyntaxAllowedAsLiteral(),
-                                        value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getDeferredSyntaxAllowedAsLiteral(), value));
                     }
                 } else if ("trimDirectiveWhitespaces".equals(attr)) {
                     if (pageInfo.getTrimDirectiveWhitespaces() == null) {
@@ -216,19 +213,15 @@
                                 true);
                     } else if (!pageInfo.getTrimDirectiveWhitespaces().equals(
                             value)) {
-                        err
-                                .jspError(
-                                        n,
-                                        "jsp.error.page.conflict.trimdirectivewhitespaces",
-                                        pageInfo.getTrimDirectiveWhitespaces(),
-                                        value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAttribute
+                                (attr, pageInfo.getTrimDirectiveWhitespaces(), value));
                     }
                 }
             }
 
             // Check for bad combinations
             if (pageInfo.getBuffer() == 0 && !pageInfo.isAutoFlush())
-                err.jspError(n, "jsp.error.page.badCombo");
+                err.jspError(n.getStart(), MESSAGES.invalidConflictingPageDirectiveAutoFlushBuffer());
 
             // Attributes for imports for this node have been processed by
             // the parsers, just add them to pageInfo.
@@ -251,19 +244,19 @@
                     if (pageInfo.getLanguage(false) == null) {
                         pageInfo.setLanguage(value, n, err, false);
                     } else if (!pageInfo.getLanguage(false).equals(value)) {
-                        err.jspError(n, "jsp.error.tag.conflict.language",
-                                pageInfo.getLanguage(false), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingTagDirectiveAttributeValues
+                                (attr, pageInfo.getLanguage(false), value));
                     }
                 } else if ("isELIgnored".equals(attr)) {
                     if (pageInfo.getIsELIgnored() == null) {
                         pageInfo.setIsELIgnored(value, n, err, false);
                     } else if (!pageInfo.getIsELIgnored().equals(value)) {
-                        err.jspError(n, "jsp.error.tag.conflict.iselignored",
-                                pageInfo.getIsELIgnored(), value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingTagDirectiveAttributeValues
+                                (attr, pageInfo.getIsELIgnored(), value));
                     }
                 } else if ("pageEncoding".equals(attr)) {
                     if (pageEncodingSeen)
-                        err.jspError(n, "jsp.error.tag.multi.pageencoding");
+                        err.jspError(n.getStart(), MESSAGES.invalidDuplicateTagDirectiveAttribute(attr));
                     pageEncodingSeen = true;
                     compareTagEncodings(value, n);
                     n.getRoot().setPageEncoding(value);
@@ -273,13 +266,8 @@
                                 err, false);
                     } else if (!pageInfo.getDeferredSyntaxAllowedAsLiteral()
                             .equals(value)) {
-                        err
-                                .jspError(
-                                        n,
-                                        "jsp.error.tag.conflict.deferredsyntaxallowedasliteral",
-                                        pageInfo
-                                                .getDeferredSyntaxAllowedAsLiteral(),
-                                        value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingTagDirectiveAttributeValues
+                                (attr, pageInfo.getDeferredSyntaxAllowedAsLiteral(), value));
                     }
                 } else if ("trimDirectiveWhitespaces".equals(attr)) {
                     if (pageInfo.getTrimDirectiveWhitespaces() == null) {
@@ -287,12 +275,8 @@
                                 false);
                     } else if (!pageInfo.getTrimDirectiveWhitespaces().equals(
                             value)) {
-                        err
-                                .jspError(
-                                        n,
-                                        "jsp.error.tag.conflict.trimdirectivewhitespaces",
-                                        pageInfo.getTrimDirectiveWhitespaces(),
-                                        value);
+                        err.jspError(n.getStart(), MESSAGES.invalidConflictingTagDirectiveAttributeValues
+                                (attr, pageInfo.getTrimDirectiveWhitespaces(), value));
                     }
                 }
             }
@@ -341,9 +325,8 @@
                 if (!pageDirEnc.equals(configEnc)
                         && (!pageDirEnc.startsWith("UTF-16") || !configEnc
                                 .startsWith("UTF-16"))) {
-                    err.jspError(pageDir,
-                            "jsp.error.config_pagedir_encoding_mismatch",
-                            configEnc, pageDirEnc);
+                    err.jspError(pageDir.getStart(), 
+                            MESSAGES.pageEncodingConflictJspPropertyGroup(configEnc, pageDirEnc));
                 } else {
                     return configEnc;
                 }
@@ -361,9 +344,8 @@
                 if (!pageDirEnc.equals(pageEnc)
                         && (!pageDirEnc.startsWith("UTF-16") || !pageEnc
                                 .startsWith("UTF-16"))) {
-                    err.jspError(pageDir,
-                            "jsp.error.prolog_pagedir_encoding_mismatch",
-                            pageEnc, pageDirEnc);
+                    err.jspError(pageDir.getStart(),
+                            MESSAGES.pageEncodingConflictProlog(pageEnc, pageDirEnc));
                 } else {
                     return pageEnc;
                 }
@@ -398,9 +380,8 @@
                 if (!pageDirEnc.equals(pageEnc)
                         && (!pageDirEnc.startsWith("UTF-16") || !pageEnc
                                 .startsWith("UTF-16"))) {
-                    err.jspError(pageDir,
-                            "jsp.error.prolog_pagedir_encoding_mismatch",
-                            pageEnc, pageDirEnc);
+                    err.jspError(pageDir.getStart(),
+                            MESSAGES.pageEncodingConflictProlog(pageEnc, pageDirEnc));
                 }
             }
         }
@@ -514,38 +495,36 @@
         }
 
         public void visit(Node.JspRoot n) throws JasperException {
-            JspUtil.checkAttributes("Jsp:root", n, jspRootAttrs, err);
+            JspUtil.checkAttributes(TagConstants.ROOT_ACTION, n, jspRootAttrs, err);
             String version = n.getTextAttribute("version");
             if (!version.equals("1.2") && !version.equals("2.0") && !version.equals("2.1") && !version.equals("2.2")) {
-                err.jspError(n, "jsp.error.jsproot.version.invalid", version);
+                err.jspError(n.getStart(), MESSAGES.invalidJspVersionNumber(version));
             }
             visitBody(n);
         }
 
         public void visit(Node.IncludeDirective n) throws JasperException {
-            JspUtil.checkAttributes("Include directive", n,
+            JspUtil.checkAttributes(TagConstants.INCLUDE_DIRECTIVE_ACTION, n,
                     includeDirectiveAttrs, err);
             visitBody(n);
         }
 
         public void visit(Node.TaglibDirective n) throws JasperException {
-            JspUtil.checkAttributes("Taglib directive", n,
+            JspUtil.checkAttributes(TagConstants.TAGLIB_DIRECTIVE_ACTION, n,
                     taglibDirectiveAttrs, err);
             // Either 'uri' or 'tagdir' attribute must be specified
             String uri = n.getAttributeValue("uri");
             String tagdir = n.getAttributeValue("tagdir");
             if (uri == null && tagdir == null) {
-                err.jspError(n, "jsp.error.taglibDirective.missing.location");
+                err.jspError(n.getStart(), MESSAGES.invalidTaglibDirectiveMissingLocation());
             }
             if (uri != null && tagdir != null) {
-                err
-                        .jspError(n,
-                                "jsp.error.taglibDirective.both_uri_and_tagdir");
+                err.jspError(n.getStart(), MESSAGES.invalidTaglibDirectiveConflictingLocation());
             }
         }
 
         public void visit(Node.ParamAction n) throws JasperException {
-            JspUtil.checkAttributes("Param action", n, paramActionAttrs, err);
+            JspUtil.checkAttributes(TagConstants.PARAM_ACTION, n, paramActionAttrs, err);
             // make sure the value of the 'name' attribute is not a
             // request-time expression
             throwErrorIfExpression(n, "name", "jsp:param");
@@ -559,13 +538,13 @@
             // Make sure we've got at least one nested jsp:param
             Node.Nodes subElems = n.getBody();
             if (subElems == null) {
-                err.jspError(n, "jsp.error.params.emptyBody");
+                err.jspError(n.getStart(), MESSAGES.invalidEmptyJspParams());
             }
             visitBody(n);
         }
 
         public void visit(Node.IncludeAction n) throws JasperException {
-            JspUtil.checkAttributes("Include action", n, includeActionAttrs,
+            JspUtil.checkAttributes(TagConstants.INCLUDE_ACTION, n, includeActionAttrs,
                     err);
             n.setPage(getJspAttribute(null, "page", null, null, n
                     .getAttributeValue("page"), java.lang.String.class, n,
@@ -574,7 +553,7 @@
         };
 
         public void visit(Node.ForwardAction n) throws JasperException {
-            JspUtil.checkAttributes("Forward", n, forwardActionAttrs, err);
+            JspUtil.checkAttributes(TagConstants.FORWARD_ACTION, n, forwardActionAttrs, err);
             n.setPage(getJspAttribute(null, "page", null, null, n
                     .getAttributeValue("page"), java.lang.String.class, n,
                     false));
@@ -582,11 +561,11 @@
         }
 
         public void visit(Node.GetProperty n) throws JasperException {
-            JspUtil.checkAttributes("GetProperty", n, getPropertyAttrs, err);
+            JspUtil.checkAttributes(TagConstants.GET_PROPERTY_ACTION, n, getPropertyAttrs, err);
         }
 
         public void visit(Node.SetProperty n) throws JasperException {
-            JspUtil.checkAttributes("SetProperty", n, setPropertyAttrs, err);
+            JspUtil.checkAttributes(TagConstants.SET_PROPERTY_ACTION, n, setPropertyAttrs, err);
             String property = n.getTextAttribute("property");
             String param = n.getTextAttribute("param");
             String value = n.getAttributeValue("value");
@@ -598,17 +577,16 @@
 
             if ("*".equals(property)) {
                 if (param != null || valueSpecified)
-                    err.jspError(n, "jsp.error.setProperty.invalid");
-
+                    err.jspError(n.getStart(), MESSAGES.invalidSetProperty());
             } else if (param != null && valueSpecified) {
-                err.jspError(n, "jsp.error.setProperty.invalid");
+                err.jspError(n.getStart(), MESSAGES.invalidSetPropertyEitherParam());
             }
 
             visitBody(n);
         }
 
         public void visit(Node.UseBean n) throws JasperException {
-            JspUtil.checkAttributes("UseBean", n, useBeanAttrs, err);
+            JspUtil.checkAttributes(TagConstants.USE_BEAN_ACTION, n, useBeanAttrs, err);
 
             String name = n.getTextAttribute("id");
             String scope = n.getTextAttribute("scope");
@@ -618,20 +596,20 @@
             BeanRepository beanInfo = pageInfo.getBeanRepository();
 
             if (className == null && type == null)
-                err.jspError(n, "jsp.error.usebean.missingType");
+                err.jspError(n.getStart(), MESSAGES.missingUseBeanType());
 
             if (beanInfo.checkVariable(name))
-                err.jspError(n, "jsp.error.usebean.duplicate");
+                err.jspError(n.getStart(), MESSAGES.duplicateUseBeanName(name));
 
             if ("session".equals(scope) && !pageInfo.isSession())
-                err.jspError(n, "jsp.error.usebean.noSession");
+                err.jspError(n.getStart(), MESSAGES.cannotAccessSessionScopeWithUseBean());
 
             Node.JspAttribute jattr = getJspAttribute(null, "beanName", null,
                     null, n.getAttributeValue("beanName"),
                     java.lang.String.class, n, false);
             n.setBeanName(jattr);
             if (className != null && jattr != null)
-                err.jspError(n, "jsp.error.usebean.notBoth");
+                err.jspError(n.getStart(), MESSAGES.cannotUseBothAttributeAndTypeInUseBean());
 
             if (className == null)
                 className = type;
@@ -642,7 +620,7 @@
         }
 
         public void visit(Node.PlugIn n) throws JasperException {
-            JspUtil.checkAttributes("Plugin", n, plugInAttrs, err);
+            JspUtil.checkAttributes(TagConstants.PLUGIN_ACTION, n, plugInAttrs, err);
 
             throwErrorIfExpression(n, "type", "jsp:plugin");
             throwErrorIfExpression(n, "code", "jsp:plugin");
@@ -658,11 +636,11 @@
 
             String type = n.getTextAttribute("type");
             if (type == null)
-                err.jspError(n, "jsp.error.plugin.notype");
+                err.jspError(n.getStart(), MESSAGES.missingPluginType());
             if (!type.equals("bean") && !type.equals("applet"))
-                err.jspError(n, "jsp.error.plugin.badtype");
+                err.jspError(n.getStart(), MESSAGES.badPluginType(type));
             if (n.getTextAttribute("code") == null)
-                err.jspError(n, "jsp.error.plugin.nocode");
+                err.jspError(n.getStart(), MESSAGES.missingPluginCode());
 
             Node.JspAttribute width = getJspAttribute(null, "width", null,
                     null, n.getAttributeValue("width"), java.lang.String.class,
@@ -678,7 +656,7 @@
         }
 
         public void visit(Node.NamedAttribute n) throws JasperException {
-            JspUtil.checkAttributes("Attribute", n, attributeAttrs, err);
+            JspUtil.checkAttributes(TagConstants.ATTRIBUTE_ACTION, n, attributeAttrs, err);
             visitBody(n);
             if (n.getOmit() != null) {
                 Attributes attrs = n.getAttributes();
@@ -699,19 +677,19 @@
 
         public void visit(Node.Declaration n) throws JasperException {
             if (pageInfo.isScriptingInvalid()) {
-                err.jspError(n.getStart(), "jsp.error.no.scriptlets");
+                err.jspError(n.getStart(), MESSAGES.invalidScriptingElement());
             }
         }
 
         public void visit(Node.Expression n) throws JasperException {
             if (pageInfo.isScriptingInvalid()) {
-                err.jspError(n.getStart(), "jsp.error.no.scriptlets");
+                err.jspError(n.getStart(), MESSAGES.invalidScriptingElement());
             }
         }
 
         public void visit(Node.Scriptlet n) throws JasperException {
             if (pageInfo.isScriptingInvalid()) {
-                err.jspError(n.getStart(), "jsp.error.no.scriptlets");
+                err.jspError(n.getStart(), MESSAGES.invalidScriptingElement());
             }
         }
 
@@ -723,7 +701,7 @@
             // JSP.2.2 - '#{' not allowed in template text
             if (n.getType() == '#') {
                 if (!pageInfo.isDeferredSyntaxAllowedAsLiteral()) {
-                    err.jspError(n, "jsp.error.el.template.deferred");
+                    err.jspError(n.getStart(), MESSAGES.invalidDeferredExpressionInTemplateText());
                 } else {
                     return;
                 }
@@ -745,7 +723,7 @@
 
         public void visit(Node.UninterpretedTag n) throws JasperException {
             if (n.getNamedAttributeNodes().size() != 0) {
-                err.jspError(n, "jsp.error.namedAttribute.invalidUse");
+                err.jspError(n.getStart(), MESSAGES.invalidJspAttribute());
             }
 
             Attributes attrs = n.getAttributes();
@@ -757,7 +735,8 @@
                     String value = attrs.getValue(i);
                     if (!pageInfo.isDeferredSyntaxAllowedAsLiteral()) {
                         if (containsDeferredSyntax(value)) {
-                            err.jspError(n, "jsp.error.el.template.deferred");
+                            err.jspError(n.getStart(), 
+                                    MESSAGES.invalidDeferredExpressionInTemplateText());
                         }
                     }
                     jspAttrs[i] = getJspAttribute(null, attrs.getQName(i),
@@ -799,7 +778,7 @@
 
             TagInfo tagInfo = n.getTagInfo();
             if (tagInfo == null) {
-                err.jspError(n, "jsp.error.missing.tagInfo", n.getQName());
+                err.jspError(n.getStart(), MESSAGES.missingTagInfo(n.getQName()));
             }
 
             /*
@@ -808,8 +787,8 @@
             if (n.implementsSimpleTag()
                     && tagInfo.getBodyContent().equalsIgnoreCase(
                             TagInfo.BODY_CONTENT_JSP)) {
-                err.jspError(n, "jsp.error.simpletag.badbodycontent", tagInfo
-                        .getTagClassName());
+                err.jspError(n.getStart(), MESSAGES.invalidSimpleTagBodyContent(tagInfo
+                        .getTagClassName()));
             }
 
             /*
@@ -819,8 +798,7 @@
              */
             if (tagInfo.hasDynamicAttributes()
                     && !n.implementsDynamicAttributes()) {
-                err.jspError(n, "jsp.error.dynamic.attributes.not.implemented",
-                        n.getQName());
+                err.jspError(n.getStart(), MESSAGES.unimplementedDynamicAttributes(n.getQName()));
             }
 
             /*
@@ -846,12 +824,11 @@
                         .getName());
 
                 if (tldAttrs[i].isRequired() && attr == null && na == null) {
-                    err.jspError(n, "jsp.error.missing_attribute", tldAttrs[i]
-                            .getName(), n.getLocalName());
+                    err.jspError(n.getStart(), MESSAGES.missingMandatoryAttribute(n.getLocalName(), tldAttrs[i]
+                            .getName()));
                 }
                 if (attr != null && na != null) {
-                    err.jspError(n, "jsp.error.duplicate.name.jspattribute",
-                            tldAttrs[i].getName());
+                    err.jspError(n.getStart(), MESSAGES.duplicateAttribute(tldAttrs[i].getName()));
                 }
             }
 
@@ -875,8 +852,7 @@
             if (tei != null && tei.getVariableInfo(tagData) != null
                     && tei.getVariableInfo(tagData).length > 0
                     && tagInfo.getTagVariableInfos().length > 0) {
-                err.jspError("jsp.error.non_null_tei_and_var_subelems", n
-                        .getQName());
+                err.jspError(n.getStart(), MESSAGES.invalidTeiWithVariableSubelements(n.getQName()));
             }
 
             n.setTagData(tagData);
@@ -889,7 +865,7 @@
 
             Attributes attrs = n.getAttributes();
             if (attrs == null) {
-                err.jspError(n, "jsp.error.jspelement.missing.name");
+                err.jspError(n.getStart(), MESSAGES.missingMandatoryAttributes());
             }
             int xmlAttrLen = attrs.getLength();
 
@@ -919,7 +895,7 @@
                 }
             }
             if (n.getNameAttribute() == null) {
-                err.jspError(n, "jsp.error.jspelement.missing.name");
+                err.jspError(n.getStart(), MESSAGES.missingMandatoryNameAttribute());
             }
 
             // Process named attributes
@@ -936,10 +912,10 @@
         }
 
         public void visit(Node.JspOutput n) throws JasperException {
-            JspUtil.checkAttributes("jsp:output", n, jspOutputAttrs, err);
+            JspUtil.checkAttributes(TagConstants.OUTPUT_ACTION, n, jspOutputAttrs, err);
 
             if (n.getBody() != null) {
-                err.jspError(n, "jsp.error.jspoutput.nonemptybody");
+                err.jspError(n.getStart(), MESSAGES.invalidJspOutputBody());
             }
 
             String omitXmlDecl = n.getAttributeValue("omit-xml-declaration");
@@ -954,35 +930,35 @@
 
             if (omitXmlDecl != null && omitXmlDeclOld != null
                     && !omitXmlDecl.equals(omitXmlDeclOld)) {
-                err.jspError(n, "jsp.error.jspoutput.conflict",
-                        "omit-xml-declaration", omitXmlDeclOld, omitXmlDecl);
+                err.jspError(n.getStart(), MESSAGES.invalidJspOutputConflict
+                        ("omit-xml-declaration", omitXmlDeclOld, omitXmlDecl));
             }
 
             if (doctypeName != null && doctypeNameOld != null
                     && !doctypeName.equals(doctypeNameOld)) {
-                err.jspError(n, "jsp.error.jspoutput.conflict",
-                        "doctype-root-element", doctypeNameOld, doctypeName);
+                err.jspError(n.getStart(), MESSAGES.invalidJspOutputConflict
+                        ("doctype-root-element", doctypeNameOld, doctypeName));
             }
 
             if (doctypePublic != null && doctypePublicOld != null
                     && !doctypePublic.equals(doctypePublicOld)) {
-                err.jspError(n, "jsp.error.jspoutput.conflict",
-                        "doctype-public", doctypePublicOld, doctypePublic);
+                err.jspError(n.getStart(), MESSAGES.invalidJspOutputConflict
+                        ("doctype-public", doctypePublicOld, doctypePublic));
             }
 
             if (doctypeSystem != null && doctypeSystemOld != null
                     && !doctypeSystem.equals(doctypeSystemOld)) {
-                err.jspError(n, "jsp.error.jspoutput.conflict",
-                        "doctype-system", doctypeSystemOld, doctypeSystem);
+                err.jspError(n.getStart(), MESSAGES.invalidJspOutputConflict
+                        ("doctype-system", doctypeSystemOld, doctypeSystem));
             }
 
             if (doctypeName == null && doctypeSystem != null
                     || doctypeName != null && doctypeSystem == null) {
-                err.jspError(n, "jsp.error.jspoutput.doctypenamesystem");
+                err.jspError(n.getStart(), MESSAGES.errorJspOutputDoctype());
             }
 
             if (doctypePublic != null && doctypeSystem == null) {
-                err.jspError(n, "jsp.error.jspoutput.doctypepulicsystem");
+                err.jspError(n.getStart(), MESSAGES.errorJspOutputMissingDoctype());
             }
 
             if (omitXmlDecl != null) {
@@ -1001,7 +977,7 @@
 
         public void visit(Node.InvokeAction n) throws JasperException {
 
-            JspUtil.checkAttributes("Invoke", n, invokeAttrs, err);
+            JspUtil.checkAttributes(TagConstants.INVOKE_ACTION, n, invokeAttrs, err);
 
             String scope = n.getTextAttribute("scope");
             JspUtil.checkScope(scope, n, err);
@@ -1009,16 +985,16 @@
             String var = n.getTextAttribute("var");
             String varReader = n.getTextAttribute("varReader");
             if (scope != null && var == null && varReader == null) {
-                err.jspError(n, "jsp.error.missing_var_or_varReader");
+                err.jspError(n.getStart(), MESSAGES.missingVarAttribute());
             }
             if (var != null && varReader != null) {
-                err.jspError(n, "jsp.error.var_and_varReader");
+                err.jspError(n.getStart(), MESSAGES.errorBothVarAttributes());
             }
         }
 
         public void visit(Node.DoBodyAction n) throws JasperException {
 
-            JspUtil.checkAttributes("DoBody", n, doBodyAttrs, err);
+            JspUtil.checkAttributes(TagConstants.DOBODY_ACTION, n, doBodyAttrs, err);
 
             String scope = n.getTextAttribute("scope");
             JspUtil.checkScope(scope, n, err);
@@ -1026,10 +1002,10 @@
             String var = n.getTextAttribute("var");
             String varReader = n.getTextAttribute("varReader");
             if (scope != null && var == null && varReader == null) {
-                err.jspError(n, "jsp.error.missing_var_or_varReader");
+                err.jspError(n.getStart(), MESSAGES.missingVarAttribute());
             }
             if (var != null && varReader != null) {
-                err.jspError(n, "jsp.error.var_and_varReader");
+                err.jspError(n.getStart(), MESSAGES.errorBothVarAttributes());
             }
         }
 
@@ -1060,7 +1036,7 @@
 
             TagInfo tagInfo = n.getTagInfo();
             if (tagInfo == null) {
-                err.jspError(n, "jsp.error.missing.tagInfo", n.getQName());
+                err.jspError(n.getStart(), MESSAGES.missingTagInfo(n.getQName()));
             }
             TagAttributeInfo[] tldAttrs = tagInfo.getAttributes();
             Attributes attrs = n.getAttributes();
@@ -1088,14 +1064,12 @@
                         if (node instanceof ELNode.Root) {
                             if (((ELNode.Root) node).getType() == '$') {
                                 if (elExpression && deferred) {
-                                    err.jspError(n,
-                                            "jsp.error.attribute.deferredmix");
+                                    err.jspError(n.getStart(), MESSAGES.errorUsingBothElTypes());
                                 }
                                 elExpression = true;
                             } else if (((ELNode.Root) node).getType() == '#') {
                                 if (elExpression && !deferred) {
-                                    err.jspError(n,
-                                            "jsp.error.attribute.deferredmix");
+                                    err.jspError(n.getStart(), MESSAGES.errorUsingBothElTypes());
                                 }
                                 elExpression = true;
                                 deferred = true;
@@ -1137,9 +1111,8 @@
                                     // Can't specify a literal for a
                                     // deferred method with an expected type
                                     // of void - JSP.2.3.4
-                                    err.jspError(n,
-                                            "jsp.error.literal_with_void",
-                                            tldAttr.getName());
+                                    err.jspError(n.getStart(),
+                                            MESSAGES.errorUsingLiteralValueWithDeferredVoidReturnTyep(tldAttr.getName()));
                                 }
                                 if (tldAttr.isDeferredValue()) {
                                     // The String litteral must be castable to what is declared as type
@@ -1152,8 +1125,7 @@
                                         expectedClass = JspUtil.toClass(expectedType, loader);
                                     } catch (ClassNotFoundException e) {
                                         err.jspError
-                                            (n, "jsp.error.unknown_attribute_type",
-                                             tldAttr.getName(), expectedType);
+                                            (n.getStart(), MESSAGES.unknownAttributeType(tldAttr.getName(), expectedType));
                                     }
                                     // Check casting - not possible for all types
                                     if (String.class.equals(expectedClass) ||
@@ -1173,8 +1145,8 @@
                                             expressionFactory.coerceToType(attrs.getValue(i), expectedClass);
                                         } catch (Exception e) {
                                             err.jspError
-                                                (n, "jsp.error.coerce_to_type",
-                                                 tldAttr.getName(), expectedType, attrs.getValue(i));
+                                                (n.getStart(), MESSAGES.errorCoercingAttributeValue(
+                                                        tldAttr.getName(), expectedType, attrs.getValue(i)));
                                         }
                                     }
                                 }
@@ -1187,13 +1159,13 @@
                                 
                                 if (deferred && !tldAttr.isDeferredMethod() && !tldAttr.isDeferredValue()) {
                                     // No deferred expressions allowed for this attribute
-                                    err.jspError(n, "jsp.error.attribute.custom.non_rt_with_expr",
-                                            tldAttr.getName());
+                                    err.jspError(n.getStart(), 
+                                            MESSAGES.noExpressionAllowedForAttribute(tldAttr.getName()));
                                 }
                                 if (!deferred && !tldAttr.canBeRequestTime()) {
                                     // Only deferred expressions are allowed for this attribute
-                                    err.jspError(n, "jsp.error.attribute.custom.non_rt_with_expr",
-                                            tldAttr.getName());
+                                    err.jspError(n.getStart(), 
+                                            MESSAGES.noExpressionAllowedForAttribute(tldAttr.getName()));
                                 }
                                 
                                 Class expectedType = String.class;
@@ -1217,9 +1189,8 @@
                                         try {
                                             jspAttrs[i].validateEL(this.pageInfo.getExpressionFactory(), ctx);
                                         } catch (ELException e) {
-                                            this.err.jspError(n,
-                                                    "jsp.error.invalid.expression", 
-                                                    attrs.getValue(i), e);
+                                            err.jspError(n.getStart(), 
+                                                    MESSAGES.invalidExpression(attrs.getValue(i)), e);
                                         }
                                     } else {
                                         // Runtime expression
@@ -1231,8 +1202,8 @@
                                     }
                                 } catch (ClassNotFoundException e) {
                                     err.jspError
-                                        (n, "jsp.error.unknown_attribute_type",
-                                         tldAttrs[j].getName(), tldAttrs[j].getTypeName());
+                                        (n.getStart(), MESSAGES.unknownAttributeType
+                                                (tldAttrs[j].getName(), tldAttrs[j].getTypeName()));
                                 }
                             }
                             
@@ -1240,8 +1211,8 @@
                             // Attribute does not accept any expressions.
                             // Make sure its value does not contain any.
                             if (expression) {
-                                err.jspError(n, "jsp.error.attribute.custom.non_rt_with_expr",
-                                                tldAttr.getName());
+                                err.jspError(n.getStart(), 
+                                        MESSAGES.noExpressionAllowedForAttribute(tldAttr.getName()));
                             }
                             jspAttrs[i] = new Node.JspAttribute(tldAttr,
                                     attrs.getQName(i), attrs.getURI(i), attrs
@@ -1266,8 +1237,8 @@
                                         .getValue(i), java.lang.Object.class,
                                 n, true);
                     } else {
-                        err.jspError(n, "jsp.error.bad_attribute", attrs
-                                .getQName(i), n.getLocalName());
+                        err.jspError(n.getStart(), 
+                                MESSAGES.invalidAttributeForTag(attrs.getQName(i), n.getLocalName()));
                     }
                 }
             }
@@ -1284,7 +1255,7 @@
 
             TagInfo tagInfo = n.getTagInfo();
             if (tagInfo == null) {
-                err.jspError(n, "jsp.error.missing.tagInfo", n.getQName());
+                err.jspError(n.getStart(), MESSAGES.missingTagInfo(n.getQName()));
             }
             TagAttributeInfo[] tldAttrs = tagInfo.getAttributes();
             Node.Nodes naNodes = n.getNamedAttributeNodes();
@@ -1328,8 +1299,8 @@
                         jspAttrs[start + i] = new Node.JspAttribute(na, null,
                                 true);
                     } else {
-                        err.jspError(n, "jsp.error.bad_attribute",
-                                na.getName(), n.getLocalName());
+                        err.jspError(n.getStart(), 
+                                MESSAGES.invalidAttributeForTag(na.getName(), n.getLocalName()));
                     }
                 }
             }
@@ -1392,8 +1363,7 @@
                                     .getExpressionFactory(), ctx);
                         } catch (ELException e) {
                             this.err.jspError(n.getStart(),
-                                    "jsp.error.invalid.expression", value, e
-                                            .toString());
+                                    MESSAGES.invalidExpression(value), e);
                         }
 
                     } else {
@@ -1465,9 +1435,8 @@
             if (n.getAttributes() != null
                     && n.getAttributes().getValue(attrName) != null
                     && isExpression(n, n.getAttributes().getValue(attrName), true)) {
-                err.jspError(n,
-                        "jsp.error.attribute.standard.non_rt_with_expr",
-                        attrName, actionName);
+                err.jspError(n.getStart(),
+                        MESSAGES.noExpressionAllowedForAttributeInAction(attrName, actionName));
             }
         }
 
@@ -1537,14 +1506,9 @@
 
                     if (uri == null) {
                         if (prefix == null) {
-                            err.jspError(n, "jsp.error.noFunctionPrefix",
-                                    function);
+                            err.jspError(n.getStart(), MESSAGES.missingFunctionPrefix(function));
                         } else {
-                            err
-                                    .jspError(
-                                            n,
-                                            "jsp.error.attribute.invalidPrefix",
-                                            prefix);
+                            err.jspError(n.getStart(), MESSAGES.unknownFunctionPrefix(prefix));
                         }
                     }
                     TagLibraryInfo taglib = pageInfo.getTaglib(uri);
@@ -1553,7 +1517,7 @@
                         funcInfo = taglib.getFunction(function);
                     }
                     if (funcInfo == null) {
-                        err.jspError(n, "jsp.error.noFunction", function);
+                        err.jspError(n.getStart(), MESSAGES.unknownFunction(function));
                     }
                     // Skip TLD function uniqueness check. Done by Schema ?
                     func.setUri(uri);
@@ -1595,14 +1559,11 @@
 
             int start = signature.indexOf(' ');
             if (start < 0) {
-                err.jspError("jsp.error.tld.fn.invalid.signature", func
-                        .getPrefix(), func.getName());
+                err.jspError(MESSAGES.invalidFunctionSignature(func.getPrefix(), func.getName()));
             }
             int end = signature.indexOf('(');
             if (end < 0) {
-                err.jspError(
-                        "jsp.error.tld.fn.invalid.signature.parenexpected",
-                        func.getPrefix(), func.getName());
+                err.jspError(MESSAGES.invalidFunctionSignatureMissingParent(func.getPrefix(), func.getName()));
             }
             return signature.substring(start + 1, end).trim();
         }
@@ -1627,8 +1588,7 @@
                 if (p < 0) {
                     p = signature.indexOf(')', start);
                     if (p < 0) {
-                        err.jspError("jsp.error.tld.fn.invalid.signature", func
-                                .getPrefix(), func.getName());
+                        err.jspError(MESSAGES.invalidFunctionSignature(func.getPrefix(), func.getName()));
                     }
                     lastArg = true;
                 }
@@ -1675,10 +1635,8 @@
                         c = loader.loadClass(n.getFunctionInfo()
                                 .getFunctionClass());
                     } catch (ClassNotFoundException e) {
-                        err.jspError("jsp.error.function.classnotfound", n
-                                .getFunctionInfo().getFunctionClass(), n
-                                .getPrefix()
-                                + ':' + n.getName(), e.getMessage());
+                        err.jspError(MESSAGES.missingFunctionClass
+                                (n.getFunctionInfo().getFunctionClass(), n.getName()), e);
                     }
                     String paramTypes[] = n.getParameters();
                     int size = paramTypes.length;
@@ -1690,12 +1648,9 @@
                         }
                         method = c.getDeclaredMethod(n.getMethodName(), params);
                     } catch (ClassNotFoundException e) {
-                        err.jspError("jsp.error.signature.classnotfound",
-                                paramTypes[i], n.getPrefix() + ':'
-                                        + n.getName(), e.getMessage());
+                        err.jspError(MESSAGES.missingSignatureClass(paramTypes[i], n.getName()), e);
                     } catch (NoSuchMethodException e) {
-                        err.jspError("jsp.error.noFunctionMethod", n
-                                .getMethodName(), n.getName(), c.getName());
+                        err.jspError(MESSAGES.missingMethodInClass(n.getMethodName(), n.getName(), c.getName()));
                     }
                     fmapper.mapFunction(n.getPrefix() + ':' + n.getName(),
                             method);
@@ -1725,15 +1680,14 @@
         public void visit(Node.CustomTag n) throws JasperException {
             TagInfo tagInfo = n.getTagInfo();
             if (tagInfo == null) {
-                err.jspError(n, "jsp.error.missing.tagInfo", n.getQName());
+                err.jspError(n.getStart(), MESSAGES.missingTagInfo(n.getQName()));
             }
 
             ValidationMessage[] errors = tagInfo.validate(n.getTagData());
             if (errors != null && errors.length != 0) {
                 StringBuilder errMsg = new StringBuilder();
                 errMsg.append("<h3>");
-                errMsg.append(Localizer.getMessage(
-                        "jsp.error.tei.invalid.attributes", n.getQName()));
+                errMsg.append(MESSAGES.errorValidatingTag(n.getQName()));
                 errMsg.append("</h3>");
                 for (int i = 0; i < errors.length; i++) {
                     errMsg.append("<p>");
@@ -1745,7 +1699,7 @@
                     errMsg.append("</p>");
                 }
 
-                err.jspError(n, errMsg.toString());
+                err.jspError(n.getStart(), errMsg.toString());
             }
 
             visitBody(n);
@@ -1837,8 +1791,7 @@
                     errMsg = new StringBuilder();
                 }
                 errMsg.append("<h3>");
-                errMsg.append(Localizer.getMessage(
-                        "jsp.error.tlv.invalid.page", tli.getShortName(),
+                errMsg.append(MESSAGES.errorValidatingTaglibrary(tli.getShortName(),
                         compiler.getPageInfo().getJspFile()));
                 errMsg.append("</h3>");
                 for (int i = 0; i < errors.length; i++) {

Deleted: trunk/src/main/java/org/apache/jasper/resources/LocalStrings.properties
===================================================================
--- trunk/src/main/java/org/apache/jasper/resources/LocalStrings.properties	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/resources/LocalStrings.properties	2012-09-21 14:14:07 UTC (rev 2083)
@@ -1,448 +0,0 @@
-# $Id: LocalStrings.properties 1569 2010-10-28 16:28:22Z remy.maucherat at jboss.com $
-#
-# Default localized string information
-# Localized this the Default Locale as is en_US
-
-jsp.error.compiler=No Java compiler available
-jsp.error.bad.servlet.engine=Incorrect servlet engine version!
-jsp.error.no.scratch.dir=The JSP engine is not configured with a scratch dir.\
-\n Please add \"jsp.initparams=scratchdir=<dir-name>\" \
-\n in the servlets.properties file for this context.
-jsp.error.bad.scratch.dir=The scratchDir you specified: {0} is unusable.
-jsp.message.scratch.dir.is=Scratch dir for the JSP engine is: {0}
-jsp.message.parent_class_loader_is=Parent class loader is: {0}
-jsp.message.dont.modify.servlets=IMPORTANT: Do not modify the generated servlets
-jsp.error.not.impl.comments=Internal error: Comments not implemented
-jsp.error.not.impl.directives=Internal error: Directives not implemented
-jsp.error.not.impl.declarations=Internal error: Declarations not implemented
-jsp.error.not.impl.expressions=Internal error: Expressions not implemented
-jsp.error.not.impl.scriptlets=Internal error: Scriptlets not implemented
-jsp.error.not.impl.usebean=Internal error: useBean not implemented
-jsp.error.not.impl.getp=Internal error: getProperty not implemented
-jsp.error.not.impl.setp=Internal error: setProperty not implemented
-jsp.error.not.impl.plugin=Internal error: plugin not implemented
-jsp.error.not.impl.forward=Internal error: forward not implemented
-jsp.error.not.impl.include=Internal error: include not implemented
-jsp.error.unavailable=JSP has been marked unavailable
-jsp.error.usebean.missing.attribute=useBean: id attribute missing or misspelled
-jsp.error.usebean.missing.type=useBean ({0}): Either class or type attribute must be \
-specified: 
-jsp.error.usebean.duplicate=useBean: Duplicate bean name: {0}
-jsp.error.usebean.prohibited.as.session=Can't use as session bean {0} since it is prohibited \
-by jsp directive defined earlier: 
-jsp.error.usebean.not.both=useBean: Can't specify both class and beanName attribute: 
-jsp.error.usebean.bad.type.cast=useBean ({0}): Type ({1}) is not assignable from class ({2}) 
-jsp.error.invalid.scope=Illegal value of \'scope\' attribute: {0} (must be one of \"page\", \"request\", \"session\", or \"application\")
-jsp.error.classname=Can't determine classname from .class file
-jsp.error.outputfolder=No output folder
-jsp.warning.bad.type=Warning: bad type in .class file
-jsp.error.data.file.write=Error while writing data file
-jsp.error.page.invalid.buffer=Page directive: invalid buffer size
-jsp.error.page.conflict.contenttype=Page directive: illegal to have multiple occurrences of 'contentType' with different values (old: {0}, new: {1})
-jsp.error.page.invalid.contenttype=Page directive: invalid value for contentType
-jsp.error.page.conflict.session=Page directive: illegal to have multiple occurrences of 'session' with different values (old: {0}, new: {1})
-jsp.error.page.invalid.session=Page directive: invalid value for session
-jsp.error.page.conflict.buffer=Page directive: illegal to have multiple occurrences of 'buffer' with different values (old: {0}, new: {1})
-jsp.error.page.invalid.buffer=Page directive: invalid value for buffer
-jsp.error.page.conflict.autoflush=Page directive: illegal to have multiple occurrences of 'autoFlush' with different values (old: {0}, new: {1})
-jsp.error.page.invalid.autoflush=Page directive: invalid value for autoFlush
-jsp.error.page.conflict.isthreadsafe=Page directive: illegal to have multiple occurrences of 'isThreadSafe' with different values (old: {0}, new: {1})
-jsp.error.page.invalid.isthreadsafe=Page directive: invalid value for isThreadSafe
-jsp.error.page.conflict.info=Page directive: illegal to have multiple occurrences of 'info' with different values (old: {0}, new: {1})
-jsp.error.page.invalid.info=Page directive: invalid value for info
-jsp.error.page.conflict.iserrorpage=Page directive: illegal to have multiple occurrences of 'isErrorPage' with different values (old: {0}, new: {1})
-jsp.error.page.invalid.iserrorpage=Page directive: invalid value for isErrorPage
-jsp.error.page.conflict.errorpage=Page directive: illegal to have multiple occurrences of 'errorPage' with different values (old: {0}, new: {1})
-jsp.error.page.conflict.language=Page directive: illegal to have multiple occurrences of 'language' with different values (old: {0}, new: {1})
-jsp.error.tag.conflict.language=Tag directive: illegal to have multiple occurrences of 'language' with different values (old: {0}, new: {1})
-jsp.error.page.language.nonjava=Page directive: invalid language attribute
-jsp.error.tag.language.nonjava=Tag directive: invalid language attribute
-jsp.error.page.defafteruse.language=Page directive: can't define language after a scriptlet 
-jsp.error.page.nomapping.language=Page directive: No mapping for language: 
-jsp.error.page.conflict.extends=Page directive: illegal to have multiple occurrences of 'extends' with different values (old: {0}, new: {1})
-jsp.error.page.conflict.iselignored=Page directive: illegal to have multiple occurrences of 'isELIgnored' with different values (old: {0}, new: {1})
-jsp.error.tag.conflict.iselignored=Tag directive: illegal to have multiple occurrences of 'isELIgnored' with different values (old: {0}, new: {1})
-jsp.error.page.invalid.iselignored=Page directive: invalid value for isELIgnored
-jsp.error.tag.invalid.iselignored=Tag directive: invalid value for isELIgnored
-jsp.error.page.multi.pageencoding=Page directive must not have multiple occurrences of pageencoding
-jsp.error.tag.conflict.attr=Tag directive: illegal to have multiple occurrences of the attribute \"{0}\" with different values (old: {1}, new: {2})
-jsp.error.tag.multi.pageencoding=Tag directive must not have multiple occurrences of pageencoding
-jsp.error.page.bad_b_and_a_combo=Page directive: Illegal combination of buffer=\"none\" && autoFlush=\"false\"
-jsp.error.not.impl.taglib=Internal error: Tag extensions not implemented
-jsp.error.include.missing.file=Missing file argument to include
-jsp.error.include.bad.file=Bad file argument to include 
-jsp.error.include.exception=Unable to include {0}
-jsp.error.stream.closed=Stream closed
-jsp.error.invalid.forward=Invalid forward tag
-jsp.error.unknownException=Unhandled error! You might want to consider having an error page \
-to report such errors more gracefully
-jsp.error.invalid.directive=Invalid directive
-jsp.error.invalid.implicit=Invalid implicit TLD for tag file at {0}
-jsp.error.invalid.implicit.version=Invalid JSP version defined in implicit TLD for tag file at {0}
-jsp.error.invalid.version=Invalid JSP version defined for tag file at {0}
-jsp.error.directive.istagfile={0} directive cannot be used in a tag file
-jsp.error.directive.isnottagfile={0} directive can only be used in a tag file
-jsp.error.tagfile.tld.name=The \"name\" attribute of the tag directive has a value {0} while the \"name\" tag of the \"tag-file\" element in the TLD is {1}
-jsp.error.action.istagfile={0} action cannot be used in a tag file
-jsp.error.action.isnottagfile={0} action can be used in tag files only
-jsp.error.unterminated=Unterminated {0} tag
-jsp.error.usebean.notinsamefile=useBean tag must begin and end in the same physical file
-jsp.error.loadclass.taghandler=Unable to load tag handler class \"{0}\" for tag \"{1}\"
-jsp.error.unable.compile=Unable to compile class for JSP
-jsp.error.unable.load=Unable to load class for JSP
-jsp.error.unable.rename=Unable to rename class file {0} to {1}
-jsp.error.mandatory.attribute={0}: Mandatory attribute {1} missing
-jsp.error.flush=Exception occurred when flushing data
-jsp.engine.info=Jasper JSP 2.1 Engine
-jsp.error.invalid.expression="{0}" contains invalid expression(s): {1}
-jsp.error.invalid.attribute={0} has invalid attribute: {1}
-jsp.error.usebean.class.notfound=Class: {0} not found
-jsp.error.file.cannot.read=Cannot read file: {0}
-jsp.error.file.already.registered=Recursive include of file {0}
-jsp.error.file.not.registered=file {0} not seen in include
-jsp.error.quotes.unterminated=Unterminated quotes
-jsp.error.attr.quoted=Attribute value should be quoted
-jsp.error.attr.novalue=Attribute {0} has no value
-jsp.error.tag.attr.unterminated=Unterminated tag attribute list
-jsp.error.param.noname=No name in PARAM tag
-jsp.error.param.novalue=No value in PARAM tag
-jsp.error.beans.nullbean=Attempted a bean operation on a null object.
-jsp.error.beans.nobeaninfo=No BeanInfo for the bean of type ''{0}'' could be found, the class likely does not exist.
-jsp.error.beans.introspection=An exception occurred while introspecting the read method of property ''{0}'' in a bean of type ''{1}'':\n{2}
-jsp.error.beans.nomethod=Cannot find a method to read property ''{0}'' in a bean of type ''{1}''
-jsp.error.beans.nomethod.setproperty=Can''t find a method to write property ''{0}'' of type ''{1}'' in a bean of type ''{2}''
-jsp.error.beans.noproperty=Cannot find any information on property ''{0}'' in a bean of type ''{1}''
-jsp.error.beans.property.conversion=Unable to convert string \"{0}\" to class \"{1}\" for attribute \"{2}\": {3}
-jsp.error.beans.propertyeditor.notregistered=Property Editor not registered with the PropertyEditorManager
-jsp.error.beans.setproperty.noindexset=Cannot set indexed property
-jsp.error.include.tag=Invalid jsp:include tag
-jsp.error.include.noflush=jsp:include needs to have \"flush=true\"
-jsp.error.include.badflush=jsp:include page=\"...\" flush=\"true\" is the only valid combination in JSP 1.0
-jsp.error.attempt_to_clear_flushed_buffer=Error: Attempt to clear a buffer that's already been flushed
-jsp.error.overflow=Error: JSP Buffer overflow
-jsp.error.paramexpected=Expecting \"jsp:param\" standard action with \"name\" and \"value\" attributes
-jsp.error.param.invalidUse=The jsp:param action must not be used outside the jsp:include, jsp:forward, or jsp:params elements
-jsp.error.params.invalidUse=jsp:params must be a direct child of jsp:plugin
-jsp.error.fallback.invalidUse=jsp:fallback must be a direct child of jsp:plugin
-jsp.error.namedAttribute.invalidUse=jsp:attribute must be the subelement of a standard or custom action
-jsp.error.jspbody.invalidUse=jsp:body must be the subelement of a standard or custom action
-jsp.error.closeindividualparam=param tag needs to be closed with \"/>\"
-jsp.error.closeparams=param tag needs to be closed with /params
-jsp.error.params.emptyBody=jsp:params must contain at least one nested jsp:param
-jsp.error.params.illegalChild=jsp:params must not have any nested elements other than jsp:param
-jsp.error.plugin.notype=type not declared in jsp:plugin
-jsp.error.plugin.badtype=Illegal value for 'type' attribute in jsp:plugin: must be 'bean' or 'applet'
-jsp.error.plugin.nocode=code not declared in jsp:plugin
-jsp.error.ise_on_clear=Illegal to clear() when buffer size == 0
-jsp.error.setproperty.beanNotFound=setProperty: Bean {0} not found
-jsp.error.getproperty.beanNotFound=getProperty: Bean {0} not found
-jsp.error.setproperty.ClassNotFound=setProperty: Class {0} not found
-jsp.error.javac=Javac exception
-jsp.error.javac.env=Environment: 
-jsp.error.compilation=Error compiling file: {0} {1}
-# typo ?
-#jsp.error.setproperty.invalidSayntax=setProperty: can't have non-null value when property=*
-jsp.error.setproperty.invalidSyntax=setProperty: can't have non-null value when property=*
-jsp.error.setproperty.beanInfoNotFound=setproperty: beanInfo for bean {0} not found
-jsp.error.setproperty.paramOrValue=setProperty: either param or value can be present
-jsp.error.setproperty.arrayVal=setProperty: can't set array property {0} through a string constant value
-jsp.warning.keepgen=Warning: Invalid value for the initParam keepgenerated. Will use the default value of \"false\"
-jsp.warning.xpoweredBy=Warning: Invalid value for the initParam xpoweredBy. Will use the default value of \"false\"
-jsp.warning.enablePooling=Warning: Invalid value for the initParam enablePooling. Will use the default value of \"true\"
-jsp.warning.invalidTagPoolSize=Warning: Invalid value for the init parameter named tagPoolSize. Will use default size of {0}
-jsp.warning.mappedFile=Warning: Invalid value for the initParam mappedFile. Will use the default value of \"false\"
-jsp.warning.sendErrToClient=Warning: Invalid value for the initParam sendErrToClient. Will use the default value of \"false\"
-jsp.warning.classDebugInfo=Warning: Invalid value for the initParam classdebuginfo. Will use the default value of \"false\"
-jsp.warning.checkInterval=Warning: Invalid value for the initParam checkInterval. Will use the default value of \"300\" seconds
-jsp.warning.modificationTestInterval=Warning: Invalid value for the initParam modificationTestInterval. Will use the default value of \"4\" seconds
-jsp.warning.recompileOnFail=Warning: Invalid value for the initParam recompileOnFail. Will use the default value of \"false\" seconds
-jsp.warning.development=Warning: Invalid value for the initParam development. Will use the default value of \"true\"
-jsp.warning.fork=Warning: Invalid value for the initParam fork. Will use the default value of \"true\"
-jsp.warning.reloading=Warning: Invalid value for the initParam reloading. Will use the default value of \"true\"
-jsp.warning.dumpSmap=Warning: Invalid value for the initParam dumpSmap. Will use the default value of \"false\"
-jsp.warning.genchararray=Warning: Invalid value for the initParam genStrAsCharArray. Will use the default value of \"false\"
-jsp.warning.suppressSmap=Warning: Invalid value for the initParam suppressSmap. Will use the default value of \"false\"
-jsp.warning.displaySourceFragment=Warning: Invalid value for the initParam displaySourceFragment. Will use the default value of \"true\"
-jsp.error.badtaglib=Unable to open taglibrary {0} : {1}
-jsp.error.badGetReader=Cannot create a reader when the stream is not buffered
-jsp.warning.unknown.element.in.taglib=Unknown element ({0}) in taglib
-jsp.warning.unknown.element.in.tag=Unknown element ({0}) in tag
-jsp.warning.unknown.element.in.tagfile=Unknown element ({0}) in tag-file
-jsp.warning.unknown.element.in.attribute=Unknown element ({0}) in attribute
-jsp.warning.unknown.element.in.variable=Unknown element ({0}) in variable
-jsp.warning.unknown.element.in.validator=Unknown element ({0}) in validator
-jsp.warning.unknown.element.in.initParam=Unknown element ({0}) in validator's init-param
-jsp.warning.unknown.element.in.function=Unknown element ({0}) in function
-jsp.error.more.than.one.taglib=More than one taglib in the TLD: {0}
-jsp.error.teiclass.instantiation=Failed to load or instantiate TagExtraInfo class: {0}
-jsp.error.non_null_tei_and_var_subelems=Tag {0} has one or more variable subelements and a TagExtraInfo class that returns one or more VariableInfo
-jsp.error.parse.error.in.TLD=Parse Error in the tag library descriptor: {0}
-jsp.error.unable.to.open.TLD=Unable to open the tag library descriptor: {0}
-jsp.buffer.size.zero=Buffer size <= 0
-jsp.error.file.not.found=File \"{0}\" not found
-jsp.message.copyinguri=Copying {0} into {1}
-jsp.message.htmlcomment=\nStripping Comment: \t{0}
-jsp.message.handling_directive=\nHandling Directive: {0}\t{1}
-jsp.message.handling_plugin=\nPlugin: {0}
-jsp.message.package_name_is=Package name is: {0}
-jsp.message.class_name_is=Class name is: {0}
-jsp.message.java_file_name_is=Java file name is: {0}
-jsp.message.class_file_name_is=Class file name is: {0}
-jsp.message.accepted=Accepted {0} at {1}
-jsp.message.adding_jar=Adding jar {0} to my classpath
-jsp.message.compiling_with=Compiling with: {0}
-jsp.message.template_text=template text
-jsp.error.missing_attribute=According to the TLD or the tag file, attribute {0} is mandatory for tag {1}
-jsp.error.bad_attribute=Attribute {0} invalid for tag {1} according to TLD
-jsp.error.tld.unable_to_read=Unable to read TLD \"{1}\" from JAR file \"{0}\": {2}
-jsp.error.tld.unable_to_get_jar=Unable to get JAR resource \"{0}\" containing TLD: {1}
-jsp.error.tld.missing_jar=Missing JAR resource \"{0}\" containing TLD
-jsp.error.webxml_not_found=Could not locate web.xml
-jsp.cmd_line.usage=Usage: jsptoservlet [-dd <path/to/outputDirectory>] [-keepgenerated] \
-<.jsp files>
-jsp.message.cp_is=Classpath {0} is: {1}
-jsp.error.unable.to_load_taghandler_class=Unable to load tag handler class {0} because of {1}
-jsp.error.unable.to_find_method=Unable to find setter method for attribute: {0}
-jsp.error.unable.to_convert_string=Unable to convert a String to {0} for attribute {1}
-jsp.error.unable.to_introspect=Unable to introspect on tag handler class: {0} because of {1}
-jsp.error.bad_tag=No tag \"{0}\" defined in tag library imported with prefix \"{1}\"
-jsp.error.xml.bad_tag=No tag \"{0}\" defined in tag library associated with uri \"{1}\"
-jsp.error.bad_string_Character=Cannot extract a Character from a zero length array
-jsp.error.bad_string_char=Cannot extract a char from a zero length array
-jsp.warning.compiler.class.cantcreate=Can't create an instance of specified compiler plugin class {0} due to {1}. Will default to Sun Java Compiler.
-jsp.warning.compiler.class.notfound=Specified compiler plugin class {0} not found. Will default to Sun Java Compiler.
-jsp.warning.compiler.path.notfound=Specified compiler path {0} not found. Will default to system PATH.
-jsp.error.jspc.uriroot_not_dir=The -uriroot option must specify a pre-existing directory
-jsp.error.jspc.missingTarget=Missing target: Must specify -webapp or -uriroot, or one or more JSP pages
-jsp.error.jspc.no_uriroot=The uriroot is not specified and cannot be located with the specified JSP file(s)
-jspc.implicit.uriRoot=uriRoot implicitly set to "{0}"
-jspc.usage=Usage: jspc <options> [--] <jsp files>\n\
-where jsp files is\n\
-\    -webapp <dir>      A directory containing a web-app, whose JSP pages\n\
-\                       will be processed recursively\n\
-or any number of\n\
-\    <file>             A file to be parsed as a JSP page\n\
-where options include:\n\
-\    -help              Print this help message\n\
-\    -v                 Verbose mode\n\
-\    -d <dir>           Output Directory (default -Djava.io.tmpdir)\n\
-\    -l                 Outputs the name of the JSP page upon failure\n\
-\    -s                 Outputs the name of the JSP page upon success\n\
-\    -p <name>          Name of target package (default org.apache.jsp)\n\
-\    -c <name>          Name of target class name (only applies to first JSP page)\n\
-\    -mapped            Generates separate write() calls for each HTML line in the JSP\n\
-\    -die[#]            Generates an error return code (#) on fatal errors (default 1)\n\
-\    -uribase <dir>     The uri directory compilations should be relative to\n\
-\                       (default "/")\n\
-\    -uriroot <dir>     Same as -webapp\n\
-\    -compile           Compiles generated servlets\n\
-\    -webinc <file>     Creates a partial servlet mappings in the file\n\
-\    -webxml <file>     Creates a complete web.xml in the file\n\
-\    -ieplugin <clsid>  Java Plugin classid for Internet Explorer\n\
-\    -classpath <path>  Overrides java.class.path system property\n\
-\    -xpoweredBy        Add X-Powered-By response header\n\
-\    -trimSpaces        Trim spaces in template text between actions, directives\n\
-\    -javaEncoding <enc> Set the encoding charset for Java classes (default UTF-8)\n\
-\    -source <version>   Set the -source argument to the compiler (default 1.4)\n\
-\    -target <version>   Set the -target argument to the compiler (default 1.4)\n\
-
-jspc.webxml.header=<?xml version="1.0" encoding="ISO-8859-1"?>\n\
-\n\
-<!DOCTYPE web-app\n\
-\    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"\n\
-\    "http://java.sun.com/dtd/web-app_2_3.dtd">\n\
-<!--\n\
-Automatically created by Apache Jakarta Tomcat JspC.\n\
--->\n\
-<web-app>\n\
-\n
-jspc.webxml.footer=\n\
-</web-app>\n\
-\n
-jspc.webinc.header=\n\
-<!--\n\
-Automatically created by Apache Jakarta Tomcat JspC.\n\
-Place this fragment in the web.xml before all icon, display-name,\n\
-description, distributable, and context-param elements.\n\
--->\n
-jspc.webinc.footer=\n\
-<!--\n\
-All session-config, mime-mapping, welcome-file-list, error-page, taglib,\n\
-resource-ref, security-constraint, login-config, security-role,\n\
-env-entry, and ejb-ref elements should follow this fragment.\n\
--->\n
-jspc.webinc.insertEnd=<!-- JSPC servlet mappings end -->
-jspc.webinc.insertStart=<!-- JSPC servlet mappings start -->
-jspc.error.jasperException=error-the file ''{0}'' generated the following parse exception: {1}
-jspc.error.generalException=ERROR-the file ''{0}'' generated the following general exception:
-jspc.error.fileDoesNotExist=The file argument ''{0}'' does not exist
-jspc.error.emptyWebApp=-webapp requires a trailing file argument
-jsp.error.library.invalid=JSP page is invalid according to library {0}: {1}
-jsp.error.tlvclass.instantiation=Failed to load or instantiate TagLibraryValidator class: {0}
-jsp.error.tlv.invalid.page=Validation error messages from TagLibraryValidator for {0} in {1}
-jsp.error.tei.invalid.attributes=Validation error messages from TagExtraInfo for {0}
-jsp.parser.sax.propertynotsupported=SAX property not supported: {0}
-jsp.parser.sax.propertynotrecognized=SAX property not recognized: {0}
-jsp.parser.sax.featurenotsupported=SAX feature not supported: {0}
-jsp.parser.sax.featurenotrecognized=SAX feature not recognized: {0}
-jsp.error.no.more.content=End of content reached while more parsing required: tag nesting error?
-jsp.error.parse.xml=XML parsing error on file {0}
-jsp.error.parse.xml.line=XML parsing error on file {0}: (line {1}, col {2})
-jsp.error.parse.xml.scripting.invalid.body=Body of {0} element must not contain any XML elements
-jsp.error.internal.tldinit=Unable to initialize TldLocationsCache: {0}
-jsp.error.internal.filenotfound=Internal Error: File {0} not found
-jsp.error.internal.evaluator_not_found=Internal error: unable to load expression evaluator
-jsp.error.parse.xml.invalidPublicId=Invalid PUBLIC ID: {0}
-jsp.error.include.flush.invalid.value=Invalid value for the flush attribute: {0}
-jsp.error.unsupported.encoding=Unsupported encoding: {0}
-tld.error.variableNotAllowed=It is an error for a tag that has one or more variable subelements to have a TagExtraInfo class that returns a non-null object.
-jsp.error.tldInWebDotXmlNotFound=Could not locate TLD {1} for URI {0} specified in web.xml
-jsp.error.taglibDirective.absUriCannotBeResolved=The absolute uri: {0} cannot be resolved in either web.xml or the jar files deployed with this application
-jsp.error.taglibDirective.missing.location=Neither \'uri\' nor \'tagdir\' attribute specified
-jsp.error.taglibDirective.both_uri_and_tagdir=Both \'uri\' and \'tagdir\' attributes specified
-jsp.error.invalid.tagdir=Tag file directory {0} does not start with \"/WEB-INF/tags\"
-jsp.error.unterminated.user.tag=Unterminated user-defined tag: ending tag {0} not found or incorrectly nested
-#jspx.error.templateDataNotInJspCdata=Validation Error: Element &lt;{0}&gt; cannot have template data. Template data must be encapsulated within a &lt;jsp:cdata&gt; element. [JSP1.2 PFD section 5.1.9]\nTemplate data in error: {1}
-jspx.error.templateDataNotInJspCdata=Validation Error: Element &lt;{0}&gt; cannot have template data. Template data must be encapsulated within a &lt;jsp:text&gt; element. [JSP1.2 PFD section 5.1.9]\nTemplate data in error: {1}
-#Error while processing taglib jar file {0}: {1}
-jsp.error.taglib.reserved.prefix=The taglib prefix {0} is reserved
-jsp.error.invalid.javaEncoding=Invalid java encodings. Tried {0} and then {1}. Both failed.
-jsp.error.needAlternateJavaEncoding=Default java encoding {0} is invalid on your java platform. An alternate can be specified via the 'javaEncoding' parameter of JspServlet.
-#Error when compiling, used for jsp line number error messages
-jsp.error.single.line.number=An error occurred at line: {0} in the jsp file: {1}
-jsp.error.multiple.line.number=\n\nAn error occurred between lines: {0} and {1} in the jsp file: {2}\n\n
-jsp.error.java.line.number=An error occurred at line: {0} in the generated java file
-jsp.error.corresponding.servlet=Generated servlet error:\n
-jsp.error.empty.body.not.allowed=Empty body not allowed for {0}
-jsp.error.jspbody.required=Must use jsp:body to specify tag body for {0} if jsp:attribute is used.
-jsp.error.jspbody.emptybody.only=The {0} tag can only have jsp:attribute in its body.
-jsp.error.no.scriptlets=Scripting elements ( &lt;%!, &lt;jsp:declaration, &lt;%=, &lt;jsp:expression, &lt;%, &lt;jsp:scriptlet ) are disallowed here.
-jsp.error.internal.unexpected_node_type=Internal Error: Unexpected node type encountered
-jsp.error.tld.fn.invalid.signature=Invalid syntax for function signature in TLD.  Tag Library: {0}, Function: {1}
-jsp.error.tld.fn.duplicate.name=Duplicate function name {0} in tag library {1}
-jsp.error.tld.fn.invalid.signature.commaexpected=Invalid syntax for function signature in TLD.  Comma ',' expected.  Tag Library: {0}, Function: {1}.
-jsp.error.tld.fn.invalid.signature.parenexpected=Invalid syntax for function signature in TLD.  Parenthesis '(' expected.  Tag Library: {0}, Function: {1}.
-jsp.error.tld.mandatory.element.missing=Mandatory TLD element missing or empty: {0}
-jsp.error.dynamic.attributes.not.implemented=The {0} tag declares that it accepts dynamic attributes but does not implement the required interface
-jsp.error.nomatching.fragment=Cannot find an attribute directive (with name={0} and fragment=true) prior to the fragment directive.
-jsp.error.attribute.noequal=equal symbol expected
-jsp.error.attribute.noquote=quote symbol expected
-jsp.error.attribute.unterminated=attribute for {0} is not properly terminated
-jsp.error.attribute.noescape=Attribute value {0} is quoted with {1} which must be escaped when used within the value
-jsp.error.missing.tagInfo=TagInfo object for {0} is missing from TLD
-jsp.error.deferredmethodsignaturewithoutdeferredmethod=Cannot specify a method signature if 'deferredMethod' is not 'true'
-jsp.error.deferredvaluetypewithoutdeferredvalue=Cannot specify a value type if 'deferredValue' is not 'true'
-jsp.error.deferredmethodandvalue='deferredValue' and 'deferredMethod' cannot be both 'true'
-jsp.error.fragmentwithtype=Cannot specify both 'fragment' and 'type' attributes.  If 'fragment' is present, 'type' is fixed as 'javax.servlet.jsp.tagext.JspFragment'
-jsp.error.fragmentwithrtexprvalue=Cannot specify both 'fragment' and 'rtexprvalue' attributes.  If 'fragment' is present, 'rtexprvalue' is fixed as 'true'
-jsp.error.fragmentWithDeclareOrScope=Both 'fragment' and 'declare' or 'scope' attributes specified in variable directive
-jsp.error.var_and_varReader=Only one of \'var\' or \'varReader\' may be specified
-jsp.error.missing_var_or_varReader=Missing \'var\' or \'varReader\' attribute
-jsp.warning.bad.urlpattern.propertygroup=Bad value {0} in the url-pattern subelement in web.xml
-jsp.error.literal_with_void=A literal value was specified for attribute {0} that is defined as a deferred method with a return type of void. JSP.2.3.4 does not permit literal values in this case
-jsp.error.unknown_attribute_type=Unknown attribute type ({1}) for attribute {0}.
-jsp.error.coerce_to_type=Cannot coerce value ({2}) to type ({1}) for attribute {0}.
-jsp.error.jspelement.missing.name=Mandatory XML-style \'name\' attribute missing
-jsp.error.xmlns.redefinition.notimplemented=Internal error: Attempt to redefine xmlns:{0}.  Redefinition of namespaces is not implemented.
-jsp.error.could.not.add.taglibraries=Could not add one or more tag libraries: {0}
-jsp.error.duplicate.name.jspattribute=The attribute {0} specified in the standard or custom action also appears as the value of the name attribute in the enclosed jsp:attribute
-jsp.error.not.in.template={0} not allowed in a template text body.
-jsp.error.badStandardAction=Invalid standard action
-jsp.error.xml.badStandardAction=Invalid standard action: {0}
-jsp.error.tagdirective.badbodycontent=Invalid body-content ({0}) in tag directive
-jsp.error.simpletag.badbodycontent=The TLD for the class {0} specifies an invalid body-content (JSP) for a SimpleTag.
-jsp.error.config_pagedir_encoding_mismatch=Page-encoding specified in jsp-property-group ({0}) is different from that specified in page directive ({1})
-jsp.error.prolog_pagedir_encoding_mismatch=Page-encoding specified in XML prolog ({0}) is different from that specified in page directive ({1})
-jsp.error.prolog_config_encoding_mismatch=Page-encoding specified in XML prolog ({0}) is different from that specified in jsp-property-group ({1})
-jsp.error.attribute.custom.non_rt_with_expr=According to TLD or attribute directive in tag file, attribute {0} does not accept any expressions
-jsp.error.attribute.standard.non_rt_with_expr=The {0} attribute of the {1} standard action does not accept any expressions
-jsp.error.attribute.deferredmix=Cannot use both ${} and #{} EL expressions in the same attribute value
-jsp.error.scripting.variable.missing_name=Unable to determine scripting variable name from attribute {0}
-jasper.error.emptybodycontent.nonempty=According to TLD, tag {0} must be empty, but is not
-jsp.error.tagfile.nameNotUnique=The value of {0} and the value of {1} in line {2} are the same.
-jsp.error.tagfile.nameFrom.noAttribute=Cannot find an attribute directive with a name attribute with a value \"{0}\", the value of this name-from-attribute attribute.
-jsp.error.tagfile.nameFrom.badAttribute=The attribute directive (declared in line {1} and whose name attribute is \"{0}\", the value of this name-from-attribute attribute) must be of type java.lang.String, is \"required\" and not a \"rtexprvalue\".
-jsp.error.page.noSession=Cannot access session scope in page that does not participate in any session
-jsp.error.usebean.noSession=Illegal for useBean to use session scope when JSP page declares (via page directive) that it does not participate in sessions
-jsp.error.xml.encodingByteOrderUnsupported = Given byte order for encoding \"{0}\" is not supported.
-jsp.error.xml.encodingDeclInvalid = Invalid encoding name \"{0}\".
-jsp.error.xml.encodingDeclRequired = The encoding declaration is required in the text declaration.
-jsp.error.xml.morePseudoAttributes = more pseudo attributes is expected.
-jsp.error.xml.noMorePseudoAttributes = no more pseudo attributes is allowed.
-jsp.error.xml.versionInfoRequired = The version is required in the XML declaration.
-jsp.error.xml.xmlDeclUnterminated = The XML declaration must end with \"?>\".
-jsp.error.xml.reservedPITarget = The processing instruction target matching \"[xX][mM][lL]\" is not allowed.
-jsp.error.xml.spaceRequiredInPI = White space is required between the processing instruction target and data.
-jsp.error.xml.invalidCharInContent = An invalid XML character (Unicode: 0x{0}) was found in the element content of the document.
-jsp.error.xml.spaceRequiredBeforeStandalone = White space is required before the encoding pseudo attribute in the XML declaration.
-jsp.error.xml.sdDeclInvalid = The standalone document declaration value must be \"yes\" or \"no\", not \"{0}\".
-jsp.error.xml.invalidCharInPI = An invalid XML character (Unicode: 0x{0}) was found in the processing instruction.
-jsp.error.xml.versionNotSupported = XML version \"{0}\" is not supported, only XML 1.0 is supported.
-jsp.error.xml.pseudoAttrNameExpected = a pseudo attribute name is expected.
-jsp.error.xml.expectedByte = Expected byte {0} of {1}-byte UTF-8 sequence.
-jsp.error.xml.invalidByte = Invalid byte {0} of {1}-byte UTF-8 sequence.
-jsp.error.xml.operationNotSupported = Operation \"{0}\" not supported by {1} reader.
-jsp.error.xml.invalidHighSurrogate = High surrogate bits in UTF-8 sequence must not exceed 0x10 but found 0x{0}.
-jsp.error.xml.invalidASCII = Byte \"{0}\" not 7-bit ASCII.
-jsp.error.xml.spaceRequiredBeforeEncodingInXMLDecl = White space is required before the encoding pseudo attribute in the XML declaration.
-jsp.error.xml.spaceRequiredBeforeEncodingInTextDecl = White space is required before the encoding pseudo attribute in the text declaration.
-jsp.error.xml.spaceRequiredBeforeVersionInTextDecl = White space is required before the version pseudo attribute in the text declaration.
-jsp.error.xml.spaceRequiredBeforeVersionInXMLDecl = White space is required before the version pseudo attribute in the XML declaration.
-jsp.error.xml.eqRequiredInXMLDecl = The '' = '' character must follow \"{0}\" in the XML declaration.
-jsp.error.xml.eqRequiredInTextDecl = The '' = '' character must follow \"{0}\" in the text declaration.
-jsp.error.xml.quoteRequiredInTextDecl = The value following \"{0}\" in the text declaration must be a quoted string.
-jsp.error.xml.quoteRequiredInXMLDecl = The value following \"{0}\" in the XML declaration must be a quoted string.
-jsp.error.xml.invalidCharInTextDecl = An invalid XML character (Unicode: 0x{0}) was found in the text declaration.
-jsp.error.xml.invalidCharInXMLDecl = An invalid XML character (Unicode: 0x{0}) was found in the XML declaration.
-jsp.error.xml.closeQuoteMissingInTextDecl = closing quote in the value following \"{0}\" in the text declaration is missing.
-jsp.error.xml.closeQuoteMissingInXMLDecl = closing quote in the value following \"{0}\" in the XML declaration is missing.
-jsp.error.xml.invalidHighSurrogate = High surrogate bits in UTF-8 sequence must not exceed 0x10 but found 0x{0}.
-jsp.error.multiple.jsp = Cannot have multiple specifications of 
-jsp.error.jspoutput.conflict=&lt;jsp:output&gt;: illegal to have multiple occurrences of \"{0}\" with different values (old: {1}, new: {2})
-jsp.error.jspoutput.doctypenamesystem=&lt;jsp:output&gt;: 'doctype-root-element' and 'doctype-system' attributes must appear together
-jsp.error.jspoutput.doctypepulicsystem=&lt;jsp:output&gt;: 'doctype-system' attribute must appear if 'doctype-public' attribute appears
-jsp.error.jspoutput.nonemptybody=&lt;jsp:output&gt; must not have a body
-jsp.error.jspoutput.invalidUse=&lt;jsp:output&gt; must not be used in standard syntax
-jsp.error.attributes.not.allowed = {0} must not have any attributes
-jsp.error.tagfile.badSuffix=Missing \".tag\" suffix in tag file path {0}
-jsp.error.tagfile.illegalPath=Illegal tag file path: {0}, must start with \"/WEB-INF/tags\" or \"/META-INF/tags\"
-jsp.error.plugin.wrongRootElement=Name of root element in {0} different from {1}
-jsp.error.attribute.invalidPrefix=The attribute prefix {0} does not correspond to any imported tag library
-jsp.error.nested.jspattribute=A jsp:attribute standard action cannot be nested within another jsp:attribute standard action
-jsp.error.nested.jspbody=A jsp:body standard action cannot be nested within another jsp:body or jsp:attribute standard action
-jsp.error.variable.either.name=Either name-given or name-from-attribute attribute must be specified in a variable directive
-jsp.error.variable.both.name=Cannot specify both name-given or name-from-attribute attributes in a variable directive
-jsp.error.variable.alias=Both or none of the name-from-attribute and alias attributes must be specified in a variable directive
-jsp.error.attribute.null_name=Null attribute name
-jsp.error.jsptext.badcontent=\'&lt;\', when appears in the body of &lt;jsp:text&gt;, must be encapsulated within a CDATA
-jsp.error.jsproot.version.invalid=Invalid version number: \"{0}\", must be \"1.2\", \"2.0\", or  \"2.1\"
-jsp.error.noFunctionPrefix=The function {0} must be used with a prefix when a default namespace is not specified
-jsp.error.noFunction=The function {0} cannot be located with the specified prefix
-jsp.error.noFunctionMethod=Method \"{0}\" for function \"{1}\" not found in class \"{2}\"
-jsp.error.function.classnotfound=The class {0} specified in TLD for the function {1} cannot be found: {2}
-jsp.error.signature.classnotfound=The class {0} specified in the method signature in TLD for the function {1} cannot be found. {2}
-jsp.error.text.has_subelement=&lt;jsp:text&gt; must not have any subelements
-jsp.error.data.file.read=Error reading file \"{0}\"
-jsp.error.prefix.refined=Attempt to redefine the prefix {0} to {1}, when it was already defined as {2} in the current scope.
-jsp.error.nested_jsproot=Nested &lt;jsp:root&gt;
-jsp.error.unbalanced.endtag=The end tag \"&lt;/{0}\" is unbalanced
-jsp.error.invalid.bean=The value for the useBean class attribute {0} is invalid.
-jsp.error.prefix.use_before_dcl=The prefix {0} specified in this tag directive has been previously used by an action in file {1} line {2}.
-
-jsp.exception=An exception occurred processing JSP page {0} at line {1}
-
-# JSP 2.1
-jsp.error.el.template.deferred=#{..} is not allowed in template text
-jsp.error.el.parse={0} : {1}
-jsp.error.page.invalid.deferredsyntaxallowedasliteral=Page directive: invalid value for deferredSyntaxAllowedAsLiteral
-jsp.error.tag.invalid.deferredsyntaxallowedasliteral=Tag directive: invalid value for deferredSyntaxAllowedAsLiteral
-jsp.error.page.conflict.deferredsyntaxallowedasliteral=Page directive: illegal to have multiple occurrences of 'deferredSyntaxAllowedAsLiteral' with different values (old: {0}, new: {1})
-jsp.error.tag.conflict.deferredsyntaxallowedasliteral=Tag directive: illegal to have multiple occurrences of 'deferredSyntaxAllowedAsLiteral' with different values (old: {0}, new: {1})
-
-jsp.error.page.invalid.trimdirectivewhitespaces=Page directive: invalid value for trimDirectiveWhitespaces
-jsp.error.tag.invalid.trimdirectivewhitespaces=Tag directive: invalid value for trimDirectiveWhitespaces
-jsp.error.page.conflict.trimdirectivewhitespaces=Page directive: illegal to have multiple occurrences of 'trimDirectiveWhitespaces' with different values (old: {0}, new: {1})
-jsp.error.tag.conflict.trimdirectivewhitespaces=Tag directive: illegal to have multiple occurrences of 'trimDirectiveWhitespaces' with different values (old: {0}, new: {1})
-
-# JavacErrorDetail
-jsp.error.bug48494=Unable to display JSP extract. Probably due to a JRE bug (see Tomcat bug 48498 for details).

Deleted: trunk/src/main/java/org/apache/jasper/resources/LocalStrings_es.properties
===================================================================
--- trunk/src/main/java/org/apache/jasper/resources/LocalStrings_es.properties	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/resources/LocalStrings_es.properties	2012-09-21 14:14:07 UTC (rev 2083)
@@ -1,456 +0,0 @@
-jsp.error.compiler = No hay compilador Java disponible
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# $Id: LocalStrings_es.properties 789 2008-09-22 16:52:37Z remy.maucherat at jboss.com $
-#
-# Default localized string information
-# Localized para Locale es_ES
-jsp.error.bad.servlet.engine = \u00A1Versi\u00F3n incorrecta del motor servlet\!
-jsp.error.no.scratch.dir = El motor JSP no tiene configurado un directorio de trabajo.\n\
-	\ A\u00F1ada "jsp.initparams\=scratchdir\=<dir-name>" \n\
-	\ en el fichero servlets.properties para este contexto.
-jsp.error.bad.scratch.dir = El directorio de trabajo especificado\: {0} no es utilizable.
-jsp.message.scratch.dir.is = El directorio de trabajo para el motor JSP es\: {0}
-jsp.message.parent_class_loader_is = El cargador de clases es\: {0}
-jsp.message.dont.modify.servlets = IMPORTANTE\: No modifique los servlets generados
-jsp.error.not.impl.comments = Error Interno\: Comments no implementado
-jsp.error.not.impl.directives = Error Interno\: Directives no implementado
-jsp.error.not.impl.declarations = Error Interno\: Declarations no implementado
-jsp.error.not.impl.expressions = Error Interno\: Expressions no implementado
-jsp.error.not.impl.scriptlets = Error Interno\: Scriptlets no implementado
-jsp.error.not.impl.usebean = Error Interno\: useBean no implementado
-jsp.error.not.impl.getp = Error Interno\: getProperty no implementado
-jsp.error.not.impl.setp = Error Interno\: setProperty no implementado
-jsp.error.not.impl.plugin = Error Interno\: plugin no implementado
-jsp.error.not.impl.forward = Error Interno\: forward no implementado
-jsp.error.not.impl.include = Error Interno\: include no implementado
-jsp.error.unavailable = JSP ha sido marcado como no disponible
-jsp.error.usebean.missing.attribute = useBean\: falta atributo id o est\u00E1 mal digitado
-jsp.error.usebean.missing.type = useBean ({0})\: Se debe de especificar atributo class o type\:
-jsp.error.usebean.duplicate = useBean\: Nombre de bean duplicado\: {0}
-jsp.error.usebean.prohibited.as.session = No puedo usar como bean de sesi\u00F3n {0} ya que est\u00E1 prohibido por directiva jsp definida previamente\: 
-jsp.error.usebean.not.both = useBean\: No puede especificar ambos atributos class y beanName\: 
-jsp.error.usebean.bad.type.cast = useBean ({0})\: Tipo ({1}) no es asignable desde clase ({2}) 
-jsp.error.invalid.scope = Valor ilegal de atributo 'scope'\: {0} (debe de ser uno de "page", "request", "session", o "application")
-jsp.error.classname = No pude determinar el nombre de clase desde el fichero .class
-jsp.error.outputfolder = no hay carpeta de salida
-jsp.warning.bad.type = Aviso\: tipo incorrecto en archivo .class
-jsp.error.data.file.write = Error mientras escrib\u00EDa el archivo de datos
-jsp.error.page.invalid.buffer = Directiva Page\: valor incorrecto para buffer
-jsp.error.page.conflict.contenttype = Directiva Page\: es ilegal tener m\u00FAltiples ocurrencias de 'contentType' con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.page.invalid.contenttype = Directiva Page\: valor incorrecto para contentType
-jsp.error.page.conflict.session = Directiva Page\: es ilegal tener m\u00FAltiples ocurrencias de 'session' con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.page.invalid.session = Directiva Page\: valor incorrecto para session
-jsp.error.page.conflict.buffer = Directiva Page\: es ilegal tener m\u00FAltiples ocurrencias de 'buffer'con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.page.invalid.buffer = Directiva Page\: valor incorrecto para b\u00FAfer
-jsp.error.page.conflict.autoflush = Directiva Page\: es ilegal tener m\u00FAltiples ocurrencias de 'autoFlush' con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.page.invalid.autoflush = \=Directiva Page\: valor incorrecto para autoFlush
-jsp.error.page.conflict.isthreadsafe = Directiva Page\: es ilegal tener m\u00FAltiples ocurrencias de 'isThreadSafe' con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.page.invalid.isthreadsafe = \=Directiva Page\: valor incorrecto para isThreadSafe
-jsp.error.page.conflict.info = Directiva Page\: es ilegal tener m\u00FAltiples ocurrencias de 'info' con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.page.invalid.info = \=Directiva Page\: valor incorrecto para info
-jsp.error.page.conflict.iserrorpage = Directiva Page\: es ilegal tener m\u00FAltiples ocurrencias de 'isErrorPage' con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.page.invalid.iserrorpage = \=Directiva Page\: valor incorrecto para isErrorPage
-jsp.error.page.conflict.errorpage = Directiva Page\: es ilegal tener m\u00FAltiples ocurrencias de 'errorPage' con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.page.conflict.language = Directiva Page\: es ilegal tener m\u00FAltiples ocurrencias de 'language' con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.tag.conflict.language = Directiva Tag\: es ilegal tener m\u00FAltiples ocurrencias de 'language' con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.page.language.nonjava = Directiva Page\: atributo language incorrecto
-jsp.error.tag.language.nonjava = Directiva Tag\: atributo language incorrecto
-jsp.error.page.defafteruse.language = Directiva Page\: No puedo definir lenguage tras un scriptlet
-jsp.error.page.nomapping.language = Directiva Page\: No hay mapeado para language\: 
-jsp.error.page.conflict.extends = Directiva Page\: es ilegal tener m\u00FAltiples ocurrencias de 'extends' con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.page.conflict.iselignored = Directiva Page\: es ilegal tener m\u00FAltiples ocurrencias de 'isELIgnored' con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.tag.conflict.iselignored = Directiva Tag\: es ilegal tener m\u00FAltiples ocurrencias de 'isELIgnored' con valores distintos (viejo\: {0}, nuevo\: {1})
-jsp.error.page.invalid.iselignored = Directiva Page\: valor inv\u00E1lido para isELIgnored
-jsp.error.tag.invalid.iselignored = Directiva Tag\: valor incorrecto para isELIgnored
-jsp.error.page.multi.pageencoding = La directiva Page no debe de tener m\u00FAltiples ocurrencias de pageencoding
-jsp.error.tag.conflict.attr = Directiva Tag\: es ilegal tener m\u00FAltiples ocurrencias del atributo "{0}" con valores distintos (viejo\: {1}, nuevo\: {2})
-jsp.error.tag.multi.pageencoding = La directiva Tag no debe de tener m\u00FAltiples ocurrencias de pageencoding
-jsp.error.page.bad_b_and_a_combo = Directiva Page\: Combinaci\u00F3n ilegal de buffer\="none" y autoFlush\="false"
-jsp.error.not.impl.taglib = Error Interno\: Tag extensions no implementado
-jsp.error.include.missing.file = No tiene argumento de nombre de fichero 
-jsp.error.include.bad.file = Argumento de nombre de fichero no v\u00E1lido
-jsp.error.include.exception = No se puede incluir {0}
-jsp.error.stream.closed = Stream cerrado
-jsp.error.invalid.forward = Tag forward no v\u00E1lido
-jsp.error.unknownException = \u00A1Error no caturado\!. Deber\u00EDas de considerar el poner una p\u00E1gina de error para avisar de los errores m\u00E1s elegantemente
-jsp.error.invalid.directive = Directiva no v\u00E1lida
-jsp.error.invalid.implicit = TLD impl\u00EDcito inv\u00E1lido para fichero de marca en {0}
-jsp.error.invalid.implicit.version = Versi\u00F3n inv\u00E1lida de JSP definida en TLD impl\u00EDcito para fichero de marca en {0}
-jsp.error.invalid.version = Versi\u00F3n inv\u00E1lida de JSP definida para fichero de marca en {0}
-jsp.error.directive.istagfile = La Directiva {0} no puede usarse en archivo de tag
-jsp.error.directive.isnottagfile = La Directiva {0} s\u00F3lo se puede usar en un archivo de tag
-jsp.error.tagfile.tld.name = El atributo "name" de la directiva tag tiene un valor {0} mientras que el tag "name" del elemento "tag-file" en el TLD es {1}
-jsp.error.action.istagfile = La acci\u00F3n {0} no se puede usar en un archivo tag
-jsp.error.action.isnottagfile = La acci\u00F3n {0} s\u00F3lo se puede usar en archivos tag
-jsp.error.unterminated = Tag {0} no terminado
-jsp.error.usebean.notinsamefile = El Tag useBean debe de empezar y terminar en el mismo archivo f\u00EDsico
-jsp.error.loadclass.taghandler = No se puede cargar la clase {0}
-jsp.error.unable.compile = No se puede compilar la clase para JSP
-jsp.error.unable.load = No se puede cargar la clase para JSP
-jsp.error.unable.rename = No se puede renombrar el archivo de clase {0} a {1}
-jsp.error.mandatory.attribute = {0}\: Falta atributo obligatorio {1}
-jsp.error.flush = Excepci\u00F3n sucedida al vaciar los datos
-jsp.engine.info = Motor Jasper JSP 2.1
-jsp.error.invalid.expression = "{0}" contiene expresiones incorrectas\: {1}
-jsp.error.invalid.attribute = {0}\: Atributo incorrecto, {1}
-jsp.error.usebean.class.notfound = Clase\: {0} no hallada
-jsp.error.file.cannot.read = No se puede leer el archivo\: {0}
-jsp.error.file.already.registered = El archivo {0} ya se ha visto, \u00BFpodr\u00EDa ser un include recursivo?
-jsp.error.file.not.registered = Archivo {0} not visto en include
-jsp.error.quotes.unterminated = Comillas no terminadas
-jsp.error.attr.quoted = El valor del atributo deber\u00EDa ir entre comillas
-jsp.error.attr.novalue = Atributo {0} no tiene valor
-jsp.error.tag.attr.unterminated = Lista de atributos del tag no terminada
-jsp.error.param.noname = No hay nombre en el tag PARAM
-jsp.error.param.novalue = No hay valor en el tag PARAM
-jsp.error.beans.nullbean = Se ha intentado una operaci\u00F3n de bean en un objeto nulo
-jsp.error.beans.nobeaninfo = No se puede encontrar BeanInfo para el bean  ''{0}'' seguramente la clase no existe
-jsp.error.beans.introspection = Una excepci\u00F3n ha tenido lugar mientras se le\u00EDa el m\u00E9todo de lectura de la propiedad ''{0}'' en un bean del tipo ''{1}''\:\n\
-	{2}
-jsp.error.beans.nomethod = No puedo encontrar un m\u00E9todo para leer la propiedad ''{0}'' en un bean del tipo ''{1}''
-jsp.error.beans.nomethod.setproperty = No puedo encontrar un m\u00E9todo para escribir la propiedad ''{0}'' en un bean del tipo ''{2}''
-jsp.error.beans.noproperty = No puedo encontrar informaci\u00F3n de la propiedad ''{0}'' en un bean del tipo ''{1}''
-jsp.error.beans.property.conversion = No puedo convertir cadena "{0}" a clase "{1}" para atributo "{2}"\: {3}
-jsp.error.beans.propertyeditor.notregistered = Editor de Propiedades no registrado con el PropertyEditorManager
-jsp.error.beans.setproperty.noindexset = No puedo poner la propiedad indexada
-jsp.error.include.tag = Tag jsp\:include no v\u00E1lido
-jsp.error.include.noflush = jsp\:include necesita tener "flush\=true"
-jsp.error.include.badflush = jsp\:include page\="..." flush\="true" es la \u00FAnica combinaci\u00F3n v\u00E1lida en JSP 1.0
-jsp.error.attempt_to_clear_flushed_buffer = Error\: Se ha intentado limpiar un buffer que ya hab\u00EDa sido escrito
-jsp.error.overflow = Error\:Buffer de JSP desbordado
-jsp.error.paramexpected = El tag "param" era esperado con los atributos "name" y "value" despu\u00E9s del tag "params".
-jsp.error.param.invalidUse = La acci\u00F3n jsp\:param no debe de ser usada fuera de los elementos jsp\:include, jsp\:forward o jsp\:params
-jsp.error.params.invalidUse = jsp\:params debe de ser un hijo directo de jsp\:plugin
-jsp.error.fallback.invalidUse = jsp\:fallback debe de ser un hijo directo de jsp\:plugin
-jsp.error.namedAttribute.invalidUse = jsp\:attribute debe de ser el subelemento de una acci\u00F3n est\u00E1ndar o de cliente
-jsp.error.jspbody.invalidUse = jsp\:body debe de ser el subelemento de una acci\u00F3n est\u00E1ndar o de cliente
-jsp.error.closeindividualparam = El tag param necesita ser cerrado con "/>"
-jsp.error.closeparams = El tag param necesita ser cerrado con /params
-jsp.error.params.emptyBody = jsp\:params debe de contener al menos un jsp\:param anidado
-jsp.error.params.illegalChild = jsp\:params no debe de contener elementos anidados que no sean jsp\:param
-jsp.error.plugin.notype = Tipo no declarado en jsp\:plugin
-jsp.error.plugin.badtype = Valor ilegal para atributo 'type' en jsp\:plugin\: debe de ser 'bean' o 'applet'
-jsp.error.plugin.nocode = C\u00F3digo no declarado en jsp\:plugin
-jsp.error.ise_on_clear = Es ilegal usar clear() cuando el tama\u00F1o del buffer es cero
-jsp.error.setproperty.beanNotFound = setProperty\: Bean {0} no encontrado
-jsp.error.getproperty.beanNotFound = getProperty\: Bean {0} no encontrado
-jsp.error.setproperty.ClassNotFound = setProperty\: clase {0} no encontrada
-jsp.error.javac = Excepci\u00F3n de Javac
-jsp.error.javac.env = Entorno
-jsp.error.compilation = Error compilando fichero\: {0} {1}
-jsp.error.setproperty.invalidSyntax = setproperty\: no puedo tener valor no nulo si la propiedad\=*
-jsp.error.setproperty.beanInfoNotFound = setproperty\: beanInfo para bean {0} no encontrado
-jsp.error.setproperty.paramOrValue = setProperty\: O param o value pueden estar presentes
-jsp.error.setproperty.arrayVal = setProperty\: No puede escribir en la propiedad de array {0} a trav\u00E9s de una valor de cadena literal
-jsp.warning.keepgen = Aviso\: valor incorrecto para el initParam keepgen. Se usar\u00E1 el valor por defecto de "false"
-jsp.warning.xpoweredBy = Aviso\: valor incorrecto para el initParam xpoweredBy. Se usar\u00E1 el valor por defecto de "false"
-jsp.warning.enablePooling = Aviso\: valor incorrecto para el initParam enablePooling. Se usar\u00E1 el valor por defecto de "true"
-jsp.warning.invalidTagPoolSize = Aviso\: valor incorrecto para el par\u00E1metro init llamado tagPoolSize. Se usar\u00E1 la medida por defecto de {0}
-jsp.warning.mappedFile = Aviso\: valor incorrecto para el initParam mappedFile. Se usar\u00E1 el valor por defecto de "false"
-jsp.warning.classDebugInfo = Aviso\: valor incorrecto para el initParam classdebuginfo. Se usar\u00E1 el valor por defecto de "false"
-jsp.warning.checkInterval = Aviso\: valor incorrecto para el initParam checkInterval. Se usar\u00E1 el valor por defecto de "300" segundos
-jsp.warning.modificationTestInterval = Aviso\: valor incorrecto para el initParam modificationTestInterval. Se usar\u00E1 el valor por defecto de "4" segundos
-jsp.warning.development = Aviso\: valor incorrecto para el initParam development. Se usar\u00E1 el valor por defecto de "true"
-jsp.warning.fork = Aviso\: valor incorrecto para el initParam fork. Se usar\u00E1 el valor por defecto de "true"
-jsp.warning.reloading = Aviso\: valor incorrecto para el initParam reloading. Se usar\u00E1 el valor por defecto de "true"
-jsp.warning.dumpSmap = Aviso\: valor incorrecto para el initParam dumpSmap. Se usar\u00E1 el valor por defecto de "false"
-jsp.warning.genchararray = Aviso\: valor incorrecto para el initParam genStrAsCharArray. Se usar\u00E1 el valor por defecto de "false"
-jsp.warning.suppressSmap = Aviso\: valor incorrecto para el initParam suppressSmap. Se usar\u00E1 el valor por defecto de "false"
-jsp.warning.displaySourceFragment = Aviso\: valor incorrecto para el initParam displaySourceFragment. Se usar\u00E1 el valor por defecto de "verdadero"
-jsp.error.badtaglib = No se puede abrir la biblioteca de tags {0}\: {1}
-jsp.error.badGetReader = No se puede crear un reader cuando el stream no tiene buffer
-jsp.warning.unknown.element.in.taglib = Elemento desconocido ({0}) en taglib
-jsp.warning.unknown.element.in.tag = Elemento desconocido ({0}) en tag
-jsp.warning.unknown.element.in.tagfile = Elemento desconocido ({0}) en tag-file
-jsp.warning.unknown.element.in.attribute = Elemento desconocido ({0}) en attribute
-jsp.warning.unknown.element.in.variable = Elemento desconocido ({0}) en variable
-jsp.warning.unknown.element.in.validator = Elemento desconocido ({0}) en validator
-jsp.warning.unknown.element.in.initParam = Elemento desconocido ({0}) en init-param de validator
-jsp.warning.unknown.element.in.function = Elemento desconocido ({0}) en function
-jsp.error.more.than.one.taglib = M\u00E1s de una biblioteca de tags en el TLD\: {0}
-jsp.error.teiclass.instantiation = No se puede cargar la clase TagExtraInfo llamada\: {0}
-jsp.error.non_null_tei_and_var_subelems = Tag {0} tiene uno o m\u00E1s subelementos variable y una clase TagExtraInfo que devuelve una o m\u00E1s VariableInfo
-jsp.error.parse.error.in.TLD = Error de an\u00E1lisis en el descriptor de biblioteca de tags\: {0}
-jsp.error.unable.to.open.TLD = No se puede abrir el descriptor de biblioteca de tags\: {0}
-jsp.buffer.size.zero = Tama\u00F1o de buffer <\= 0
-jsp.error.file.not.found = Archivo JSP "{0}" no encontrado
-jsp.message.copyinguri = Copiando {0} en {1}
-jsp.message.htmlcomment = \n\
-	Quitando comentario\: \t{0}
-jsp.message.handling_directive = \n\
-	Resolviendo directiva\: {0}\t{1}
-jsp.message.handling_plugin = \n\
-	Plugin\: {0}
-jsp.message.package_name_is = El Nombre del Package es\: {0}
-jsp.message.class_name_is = El Nombre de la clase es\: {0}
-jsp.message.java_file_name_is = El Nombre del Archivo Java es\: {0}
-jsp.message.class_file_name_is = El Nombre del Archivo de clase es\: {0}
-jsp.message.accepted = Acept\u00F3 {0} en {1}
-jsp.message.adding_jar = A\u00F1adiendo jar {0} a mi classpath
-jsp.message.compiling_with = Compilado con\: {0}
-jsp.message.template_text = texto plantilla
-jsp.error.missing_attribute = De acuerdo con el TLD el atributo {0} es obligatorio para el tag {1}
-jsp.error.bad_attribute = El atributo {0} no es v\u00E1lido seg\u00FAn el TLD especificado
-jsp.error.tld.unable_to_read = Imposible de leer TLD "{1}" desde archivo JAR "{0}"\: {2}
-jsp.error.tld.unable_to_get_jar = Imposible obtener recurso JAR "{0}" conteniendo TLD\: {1}
-jsp.error.tld.missing_jar = Falta recurso JAR "{0}" conteniendo TLD
-jsp.error.webxml_not_found = No puedo localizar web.xml
-jsp.cmd_line.usage = Uso\: jsptoservlet [-dd <ruta/a/DirectorioSalida>] [-keepgenerated] <Archivos .jsp>
-jsp.message.cp_is = Classpath {0} es\: {1}
-jsp.error.unable.to_load_taghandler_class = No se puede cargar clase manejadora {0} del tag a causa de {1}
-jsp.error.unable.to_find_method = No se puede encontrar el m\u00E9todo de escritura para el atributo\: {0}
-jsp.error.unable.to_convert_string = No pude convertir un String a {0} para atributo {1}
-jsp.error.unable.to_introspect = No se puede hacer introspecci\u00F3n en manejador de tag clase\: {0} a causa de {1}
-jsp.error.bad_tag = No existe el tag {0} en la biblioteca importada con prefijo {1}
-jsp.error.xml.bad_tag = No se ha definido el tag "{0}" en la biblioteca tag asociada con uri "{1}"
-jsp.error.bad_string_Character = No puede extraer un Character desde un array de tama\u00F1o cero
-jsp.error.bad_string_char = No puede extraer un char desde un array de tama\u00F1o cero
-jsp.warning.compiler.class.cantcreate = No puedo crear una instancia de la clase especificada {0} de plugin del compilador debido a {1}. Se usar\u00E1 el compilador Java de Sun.
-jsp.warning.compiler.class.notfound = No puedo encontrar una instancia de la clase {0} de plugin de compilador. Se usar\u00E1 el compilador del Java de Sun.
-jsp.warning.compiler.path.notfound = Trayectoria del compilador especificado {0} no encontrada. Se usar\u00E1 el PATH del sistema.
-jsp.error.jspc.uriroot_not_dir = La opci\u00F3n -uriroot debe de especificar un directorio ya existente
-jsp.error.jspc.missingTarget = Falta target\: Debe de especificar -webapp o -uriroot o una o m\u00E1s p\u00E1ginas JSP
-jsp.error.jspc.no_uriroot = No se ha especificado uriroot y no puede ser localizado en los archivos JSP especificados
-jspc.implicit.uriRoot = uriRoot implicitamente puesto a "{0}"
-jspc.usage = Uso\: jspc <opciones> [--] <Archivos JSP>\n\
-	donde <Archivos JSP> son\:\n\
-	\    -webapp <dir>      Un directorio conteniendo una web-app. Todas las\n\
-	\                       p\u00E1ginas jsp ser\u00E1n compiladas recursivamente\n\
-	o cualquier n\u00FAmero de\n\
-	\    <Archivo>          Un Archivo para ser interpretado como una p\u00E1gina jsp\n\
-	y donde <opciones> incluyen\:\n\
-	\    -help              Muestra este mensaje de ayuda\n\
-	\    -v                 Modo detallado\n\
-	\    -d <dir>           Directorio de salida\n\
-	\    -l                 Muestra el nombre de la p\u00E1gina JSP al ocurrir un fallo\n\
-	\    -s                 Muestra el nombre de la p\u00E1gina JSP al tener \u00E9xito\n\
-	\    -p <name>          Nombre del package objetivo\n\
-	\                       (por defecto org.apache.jsp)\n\
-	\    -c <name>          Nombre de la clase objetivo\n\
-	\                       (s\u00F3lo se aplica a la primera p\u00E1gina JSP)\n\
-	\    -mapped            Genera llamadas separadas a write() para cada l\u00EDnea de\n\
-	\                       HTML en el JSP\n\
-	\    -die[\#]            Genera un c\u00F3digo de retorno de error (\#) en errores\n\
-	\                       fatales. (por defecto 1).\n\
-	\    -uribase <dir>     El directorio uri de donde deben de partir las\n\
-	\                       compilaciones. (por defecto "/")\n\
-	\    -uriroot <dir>     Igual que -webapp\n\
-	\    -compile           Compila los servlets generados\n\
-	\    -webinc <file>     Crea unos mapeos parciales de servlet en el archivo\n\
-	\    -webxml <file>     Crea un web.xml completo en el archivo.\n\
-	\    -ieplugin <clsid>  Java Plugin classid para Internet Explorer\n\
-	\    -classpath <path>  Pasa por alto la propiedad de sistema java.class.path\n\
-	\    -xpoweredBy        A\u00F1ade cabecera de respuesta  X-Powered-By\n\
-	\    -trimSpaces        Trim spaces in template text between actions, directives\n\
-	\    -javaEncoding <enc> Set the encoding charset for Java classes (default UTF-8)\n\
-	\    -source <version>   Set the -source argument to the compiler (default 1.4)\n\
-	\    -target <version>   Set the -target argument to the compiler (default 1.4)\n
-jspc.webxml.header = <?xml version\="1.0" encoding\="ISO-8859-1"?>\n\
-	\n\
-	<\!DOCTYPE web-app\n\
-	\    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"\n\
-	\    "http\://java.sun.com/dtd/web-app_2_3.dtd">\n\
-	<\!--\n\
-	Creado automaticamente mediante Apache Jakarta Tomcat JspC.\n\
-	-->\n\
-	<web-app>\n\
-	\n
-jspc.webxml.footer = \n\
-	</web-app>\n\
-	\n
-jspc.webinc.header = \n\
-	<\!--\n\
-	Creado automaticamente mediante Apache Jakarta Tomcat JspC.\n\
-	Coloque este fragmento en el fichero web.xml antes de \n\
-	todos los elementos\: icon, display-name, description, \n\
-	distributable y context-param .\n\
-	-->\n
-jspc.webinc.footer = \n\
-	<\!--\n\
-	Los Elementos\: session-config, mime-mapping, welcome-file-list, error-page, taglib,\n\
-	resource-ref, security-constraint, login-config, security-role,\n\
-	env-entry y ejb-ref deber\u00E1n de ir despu\u00E9s de este fragmento .\n\
-	-->\n
-jspc.webinc.insertEnd = <\!-- Fin de mapeos de servlet JSPC -->
-jspc.webinc.insertStart = <\!-- Inicio de mapeos de servlet JSPC -->
-jspc.error.jasperException = error-el archivo ''{0}'' ha generado la excepci\u00F3n de sint\u00E1xis siguiente\: {1}
-jspc.error.generalException = ERROR-el archivo ''{0}'' ha generado la excepci\u00F3n general siguiente\:
-jspc.error.fileDoesNotExist = El archivo ''{0}'' utilizado como argumento no existe.
-jspc.error.emptyWebApp = -webapp necesita un argumento de archivo
-jsp.error.library.invalid = La p\u00E1gina JSP es incorrecta de acuerdo a la biblioteca {0}\: {1}
-jsp.error.tlvclass.instantiation = No pude cargar o instanciar clase TagLibraryValidator\: {0}
-jsp.error.tlv.invalid.page = Mensajes de error de validaci\u00F3n desde TagLibraryValidator para {0} in {1}
-jsp.error.tei.invalid.attributes = Mensajes de error de validaci\u00F3n desde TagExtraInfo para {0}
-jsp.parser.sax.propertynotsupported = Propiedad SAX no soportada\: {0}
-jsp.parser.sax.propertynotrecognized = Propiedad SAX no reconocida\: {0}
-jsp.parser.sax.featurenotsupported = Caracter\u00EDstica SAX no soportada\: {0}
-jsp.parser.sax.featurenotrecognized = Caracter\u00EDstica SAX no reconocida\: {0}
-jsp.error.no.more.content = Alcanzado fin de contenido mietras se requer\u00EDa m\u00E1s an\u00E1lisis\: \u00BFerror de anidamiento de tag?
-jsp.error.parse.xml = Error de an\u00E1lisis XML en archivo {0}
-jsp.error.parse.xml.line = Error de an\u00E1lisis XML en archivo {0}\: (l\u00EDnea {1}, col {2})
-jsp.error.parse.xml.scripting.invalid.body = El cuerpo de elemento {0} no debe de contener elementos XML
-jsp.error.internal.tldinit = No pude inicializar TldLocationsCache\: {0}
-jsp.error.internal.filenotfound = Error Interno\: Archivo {0} no hallado
-jsp.error.internal.evaluator_not_found = Error interno\: no pude cargar evaluador de expresiones
-jsp.error.parse.xml.invalidPublicId = PUBLIC ID incorrecta\: {0}
-jsp.error.include.flush.invalid.value = Valor incorrecto para atributo flush\: {0}
-jsp.error.unsupported.encoding = Codificaci\u00F3n no soportada\: {0}
-tld.error.variableNotAllowed = Es un error para un tag, que tiene uno o m\u00E1s subelementos variables, el tener una clase TagExtraInfo que devuelve un objeto no nulo.
-jsp.error.tldInWebDotXmlNotFound = No pude localizar TLD {1} para URI {0} especificado en web.xml
-jsp.error.taglibDirective.absUriCannotBeResolved = La uri absoluta\: {0} no puede resolverse o en web.xml o el los archivos jar desplegados con esta aplicaci\u00F3n
-jsp.error.taglibDirective.missing.location = No se ha especificado ni el atributo 'uri' ni el 'tagdir'
-jsp.error.taglibDirective.both_uri_and_tagdir = Se han especificado ambos atributos 'uri' y 'tagdir'
-jsp.error.invalid.tagdir = El directorio de archivo Tag {0} no comienza con "/WEB-INF/tags"
-jsp.error.unterminated.user.tag = Tag definido por usuario no terminado\: tag final {0} no hallado o anidado incorrectamente
-#jspx.error.templateDataNotInJspCdata=Validation Error: Element &lt;{0}&gt; cannot have template data. Template data must be encapsulated within a &lt;jsp:cdata&gt; element. [JSP1.2 PFD section 5.1.9]\nTemplate data in error: {1}
-jspx.error.templateDataNotInJspCdata = Error de Validaci\u00F3n\: El Elemento &lt;{0}&gt; no puede tener datos plantilla. Los datos plantilla deben de estar encapsulados dentro de un elemento &lt;jsp\:text&gt;. [JSP1.2 PFD secci\u00F3n 5.1.9]\n\
-	Datos de Plantilla en error\: {1}
-#Error while processing taglib jar file {0}: {1}
-jsp.error.taglib.reserved.prefix = El prefijo taglib {0} est\u00E1 reservado
-jsp.error.invalid.javaEncoding = Codificaciones java incorrectas. Intent\u00E9 {0} y luego {1}. Ambas fallaron.
-jsp.error.needAlternateJavaEncoding = La codificaci\u00F3n java por defecto {0} es incorrecta en tu plataforma java. Se puede especificar una alternativa v\u00EDa par\u00E1metro 'javaEncoding' de JspServlet.
-#Error when compiling, used for jsp line number error messages
-jsp.error.single.line.number = Ha tenido lugar un error en la l\u00EDnea\: {0} en el archivo jsp\: {1}
-jsp.error.multiple.line.number = \n\
-	\n\
-	Ha tenido lugar un error entre las l\u00EDneas\: {0} y {1} en el archivo jsp\: {2}\n\
-	\n
-jsp.error.java.line.number = Ha tenido lugar un error en la l\u00EDnea\: {0} en el fichero java generado
-jsp.error.corresponding.servlet = Error de servlet generado\:\n
-jsp.error.empty.body.not.allowed = Cuerpo vac\u00EDo no permitido para {0}
-jsp.error.jspbody.required = Se debe de usar jsp\:body para especificar cuerpo tag para {0} si se usa jsp\:attribute.
-jsp.error.jspbody.emptybody.only = El tag {0} s\u00F3lo puede tener jsp\:attribute en su cuerpo.
-jsp.error.no.scriptlets = Los elementos de Scripting (&lt;%\!, &lt;jsp\:declaration, &lt;%\=, &lt;jsp\:expression, &lt;%, &lt;jsp\:scriptlet ) no est\u00E1n permitidos aqu\u00ED.
-jsp.error.internal.unexpected_node_type = Error Interno\: Encontrado tipo de nodo inesperado
-jsp.error.tld.fn.invalid.signature = Sint\u00E1xis incorrecta para firma de funci\u00F3n en TLD. Biblioteca de Tag\: {0}, Funci\u00F3n\: {1}
-jsp.error.tld.fn.duplicate.name = Nombre duplicado de funci\u00F3n {0} en biblioteca de tag {1}
-jsp.error.tld.fn.invalid.signature.commaexpected = Sint\u00E1xis incorrecta para firma de funci\u00F3n en TLD. Se esperaba Coma ','. Biblioteca de Tag\: {0}, Funci\u00F3n\: {1}.
-jsp.error.tld.fn.invalid.signature.parenexpected = Sint\u00E1xis incorrecta para firma de funci\u00F3n en TLD. Se esperaba Par\u00E9ntesis '('. Biblioteca de Tag\: {0}, Funci\u00F3n\: {1}.
-jsp.error.tld.mandatory.element.missing = Falta o est\u00E1 vac\u00EDo elemento TLD obligatorio\: {0}
-jsp.error.dynamic.attributes.not.implemented = El tag {0} declara que acepta atributos din\u00E1micos pero no implementa la interfaz requerida
-jsp.error.nomatching.fragment = No puedo hallar una directiva de atributo (con name\={0} y fragment\=true) antes de la directiva de fragment.
-jsp.error.attribute.noequal = se esperaba s\u00EDmbolo igual
-jsp.error.attribute.noquote = se esperaba s\u00EDmbolo comillas
-jsp.error.attribute.unterminated = el atributo para {0} no est\u00E1 terminado correctamente
-jsp.error.attribute.noescape = El valor de atributo {0} est\u00E1 entrecomillado con {1} que debe de usar escape al usarse dentro del valor
-jsp.error.missing.tagInfo = El objeto TagInfo para {0} falta del TLD
-jsp.error.deferredmethodsignaturewithoutdeferredmethod = No puedo especificar firma de m\u00E9todo si 'deferredMethod' no es 'verdadero'
-jsp.error.deferredvaluetypewithoutdeferredvalue = No puedo especificar un tipo de valor si 'deferredValue' no es 'verdadero'
-jsp.error.deferredmethodandvalue = 'deferredValue' y 'deferredMethod' no pueden ser ambos 'verdadero'
-jsp.error.fragmentwithtype = No puede especificar ambos atributos 'fragment' y 'type'. Si est\u00E1 presente 'fragment', 'type' se pone como 'javax.servlet.jsp.tagext.JspFragment'
-jsp.error.fragmentwithrtexprvalue = No puede especificar ambos atributos 'fragment' y 'rtexprvalue'.  Si est\u00E1 presente 'fragment', 'rtexprvalue' se pone como 'true'
-jsp.error.fragmentWithDeclareOrScope = Ambos atributos 'fragment' y 'declare' o 'scope' se han especificado en la directiva variable
-jsp.error.var_and_varReader = S\u00F3lo se puede especificar uno de 'var' o 'varReader'
-jsp.error.missing_var_or_varReader = Falta atributo 'var' o 'varReader'
-jsp.warning.bad.urlpattern.propertygroup = Valor malo {0} en el subelemento url-pattern en web.xml
-jsp.error.unknown_attribute_type = Tipo de atributo desconocido ({1}) para atributo {0}.
-jsp.error.coerce_to_type = No puedo coaccionar el valor ({2}) a tipo ({1}) para atributo {0}.
-jsp.error.jspelement.missing.name = Falta atributo obligatorio XML-style 'name'
-jsp.error.xmlns.redefinition.notimplemented = Error interno\: Intento de redefinir xmlns\:{0}. La redefinici\u00F3n de espacios de nombre no est\u00E1 implementada.
-jsp.error.could.not.add.taglibraries = No pude a\u00F1adir una o m\u00E1s bibliotecas.
-jsp.error.duplicate.name.jspattribute = El atributo {0} especificado en la acci\u00F3n standard o custom tambi\u00E9n aparece como el valor del atributo name en jsp\:attribute
-jsp.error.not.in.template = {0} no permitido en una plantilla cuerpo de texto.
-jsp.error.badStandardAction = Acci\u00F3n est\u00E1ndar incorrecta
-jsp.error.xml.badStandardAction = Acci\u00F3n est\u00E1ndar incorrecta\: {0}
-jsp.error.tagdirective.badbodycontent = body-content incorrecto ({0}) en directiva tag
-jsp.error.simpletag.badbodycontent = El TLD para la clase {0} especifica un body-content es incorrecto (JSP) para un SimpleTag.
-jsp.error.config_pagedir_encoding_mismatch = El Page-encoding especificado en jsp-property-group ({0}) es diferente del especificado en la diectiva page ({1})
-jsp.error.prolog_pagedir_encoding_mismatch = El Page-encoding especificado en XML prolog ({0}) difiere del especificado en la directiva page ({1})
-jsp.error.prolog_config_encoding_mismatch = El Page-encoding especificado en XML prolog ({0}) difiere del especificado en jsp-property-group ({1})
-jsp.error.attribute.custom.non_rt_with_expr = Seg\u00FAn el TLD o la directiva attribute del archivo tag, el atributo {0} no acepta expresiones
-jsp.error.attribute.standard.non_rt_with_expr = El atributo {0} de la acci\u00F3n est\u00E1ndar {1} no acepta expresiones
-jsp.error.scripting.variable.missing_name = Imposible determinar nombre de variable de scripting desde atributo {0}
-jasper.error.emptybodycontent.nonempty = Seg\u00FAn el TLD, el tag {0} debe de estar vac\u00EDo, pero no lo est\u00E1
-jsp.error.tagfile.nameNotUnique = El valor de {0} y el valor de {1} en la l\u00EDnea {2} son el mismo.
-jsp.error.tagfile.nameFrom.noAttribute = No puedo hallar una directiva attribute con un atributo name con un valor "{0}", el valor de este atributo name-from-attribute.
-jsp.error.tagfile.nameFrom.badAttribute = La directiva attribute (declarada en la l\u00EDnea {1} y cuyo atributo name es "{0}", el valor de este atributo name-from-attribute attribute) debe de ser del tipo java.lang.String, es "required" y no un "rtexprvalue".
-jsp.error.page.noSession = No puedo acceder al \u00E1mbito de sesi\u00F3n en una p\u00E1gina que no participa en una sesi\u00F3n
-jsp.error.usebean.noSession = Es ilegal para useBean el usar \u00E1mbito de sesi\u00F3n cuando la p\u00E1gina JSP declara (v\u00EDa directiva de p\u00E1gina) que no participa en sesiones
-jsp.error.xml.encodingByteOrderUnsupported = El orden de byte dado para encoding "{0}" no est\u00E1 soportado
-jsp.error.xml.encodingDeclInvalid = Nombre de codificaci\u00F3n "{0}" incorrecto.
-jsp.error.xml.encodingDeclRequired = Se necesita la declaraci\u00F3n encoding en la declaraci\u00F3n de texto
-jsp.error.xml.morePseudoAttributes = se esperan m\u00E1s pseudo-atributos
-jsp.error.xml.noMorePseudoAttributes = no se permiten m\u00E1s pseudo-atributos.
-jsp.error.xml.versionInfoRequired = Se requiere la versi\u00F3n en la declaraci\u00F3n XML.
-jsp.error.xml.xmlDeclUnterminated = La declaraci\u00F3n XML debe de terminar con "?>".
-jsp.error.xml.reservedPITarget = La instrucci\u00F3n de procesamiento que coincide con "[xX][mM][lL]" no est\u00E1 permitida.
-jsp.error.xml.spaceRequiredInPI = Se necesita un espacio en blanco entre la instrucci\u00F3n de procesamiento y los datos.
-jsp.error.xml.invalidCharInContent = Un car\u00E1cter XML incorrecto (Unicode\: 0x{0}) se hall\u00F3 en el contenido del elemento del documento.
-jsp.error.xml.spaceRequiredBeforeStandalone = Se necesita un espacio en blanco antes del pseudo-atributo encoding en la declaraci\u00F3n XML.
-jsp.error.xml.sdDeclInvalid = El valor de declaraci\u00F3n de documento standalone debe de ser "yes" o "no", no "{0}".
-jsp.error.xml.invalidCharInPI = Se hall\u00F3 un car\u00E1cter XML incorrecto (Unicode\: 0x{0}) en la instrucci\u00F3n de procesamiento
-jsp.error.xml.versionNotSupported = No se soporta la versi\u00F3n XML "{0}", s\u00F3lo se soporta XML 1.0
-jsp.error.xml.pseudoAttrNameExpected = se esperaba un pseudo-atributo name.
-jsp.error.xml.expectedByte = Se esperaba byte {0} de {1}-byte de secuencia UTF-8.
-jsp.error.xml.invalidByte = Incorrecto byte {0} de {1}-byte de secuencia UTF-8.
-jsp.error.xml.operationNotSupported = La operaci\u00F3n "{0}" no est\u00E1 soportada por lector {1}.
-jsp.error.xml.invalidHighSurrogate = Surrogaci\u00F3n Alta de bits en secuencia UTF-8 no debe de exceder 0x10, pero se hall\u00F3 0x{0}.
-jsp.error.xml.invalidASCII = El Byte "{0}" no es ASCII de 7-bit.
-jsp.error.xml.spaceRequiredBeforeEncodingInXMLDecl = Se necesita espacio en blanco antes del pseudo-atributo encoding en la declaraci\u00F3n XML.
-jsp.error.xml.spaceRequiredBeforeEncodingInTextDecl = Se necesita espacio en blanco antes del pseudo-atributo encoding en la declaraci\u00F3n text.
-jsp.error.xml.spaceRequiredBeforeVersionInTextDecl = Se necesita espacio en blanco antes del pseudo-atributo version en la declaraci\u00F3n text.
-jsp.error.xml.spaceRequiredBeforeVersionInXMLDecl = Se necesita espacio en blanco antes del pseudo-atributo version en la declaraci\u00F3n XML.
-jsp.error.xml.eqRequiredInXMLDecl = El car\u00E1cter '' \= '' debe de serguir a "{0}" en la declaraci\u00F3n XML.
-jsp.error.xml.eqRequiredInTextDecl = El car\u00E1cter '' \= '' debe de serguir a "{0}" en la declaraci\u00F3n text.
-jsp.error.xml.quoteRequiredInTextDecl = El valor que sigue a "{0}" en la declaraci\u00F3n text debe de ser una cadena entre comillas.
-jsp.error.xml.quoteRequiredInXMLDecl = El valor que sigue a "{0}" en la declaraci\u00F3n XML debe de ser un cadena entre comillas.
-jsp.error.xml.invalidCharInTextDecl = Un car\u00E1cter XML incorrecto (Unicode\: 0x{0}) se hall\u00F3 en la declaraci\u00F3n text
-jsp.error.xml.invalidCharInXMLDecl = Un car\u00E1cter XML incorrecto (Unicode\: 0x{0}) se hall\u00F3 en la declaraci\u00F3n XML
-jsp.error.xml.closeQuoteMissingInTextDecl = Faltan las comillas de cierre en el valor que sigue a "{0}" en la declaraci\u00F3n text.
-jsp.error.xml.closeQuoteMissingInXMLDecl = Faltan las comillas de cierre en el valor que sigue a  "{0}" en la declaraci\u00F3n XML.
-jsp.error.xml.invalidHighSurrogate = Los bits de surrogaci\u00F3n alta en secuencai UTF-8 no deben de exceder 0x10 pero se hall\u00F3 0x{0}.
-jsp.error.multiple.jsp = No puedo tener m\u00FAltiples especificaciones de
-jsp.error.jspoutput.conflict = &lt;jsp\:output&gt;\: ilegal tener ocurrencias m\u00FAltiples de "{0}" con diferentes valores (viejo\: {1}, nuevo\: {2})
-jsp.error.jspoutput.doctypenamesystem = &lt;jsp\:output&gt;\: atributos 'doctype-root-element' y 'doctype-system' deben de aparecer juntos
-jsp.error.jspoutput.doctypepulicsystem = &lt;jsp\:output&gt;\: atributo 'doctype-system' debe de aparecer si aparece atributo 'doctype-public'
-jsp.error.jspoutput.nonemptybody = &lt;jsp\:output&gt; no debe de tener un cuerpo
-jsp.error.jspoutput.invalidUse = &lt;jsp\:output&gt; no se debe de usar en sint\u00E1xis est\u00E1ndar
-jsp.error.attributes.not.allowed = {0} no debe de tener atributos
-jsp.error.tagfile.badSuffix = Falta sufijo ".tag" en trayectoria de archivo de tag {0}
-jsp.error.tagfile.illegalPath = Trayectoria de archivo de tag\: {0}, debe de comenzar con "/WEB-INF/tags" o "/META-INF/tags"
-jsp.error.plugin.wrongRootElement = El nombre del elemento ra\u00EDz en {0} difiere de {1}
-jsp.error.attribute.invalidPrefix = El prefijo de atributo {0} no se correponde con ninguna biblioteca importada
-jsp.error.nested.jspattribute = Una acci\u00F3n est\u00E1ndar jsp\:attribute no puede estar anidada dentro de otra acci\u00F3n est\u00E1ndar jsp\:attribute
-jsp.error.nested.jspbody = Una acci\u00F3n est\u00E1ndar jsp\:body no puede estar anidada dentro de otra acci\u00F3n est\u00E1ndar jsp\:body o jsp\:attribute
-jsp.error.variable.either.name = O el atributo name-given o name-from-attribute deben de ser especificados en una directiva variable
-jsp.error.variable.both.name = No se puede especificar ambos atributos name-given o name-from-attribute en una directiva variable
-jsp.error.variable.alias = Ambos atributos o ninguno de name-from-attribute y alias pueden ser especificados en una directiva variable
-jsp.error.attribute.null_name = Nombre de atributo nulo
-jsp.error.jsptext.badcontent = '&lt;', cuando aparece en el cuerpo de &lt;jsp\:text&gt;, debe de estar encapsulado dentro de un CDATA
-jsp.error.jsproot.version.invalid = N\u00FAmero incorrecto de versi\u00F3n\: "{0}", debe de ser "1.2" o "2.0" o "2.1"
-jsp.error.noFunctionPrefix = La funci\u00F3n {0} debe de usarse con un prefijo cuando no se especifica un espacio de nombres por defecto
-jsp.error.noFunction = La funci\u00F3n {0} no puede ser localizada mediante el prefijo especificado
-jsp.error.noFunctionMethod = El m\u00E9todo "{0}" para la funci\u00F3n "{1}" no se pudo hallar en la clase "{2}"
-jsp.error.function.classnotfound = La clase {0} especificada en el TLD para la funci\u00F3n {1} no se puede hallar\: {2}
-jsp.error.signature.classnotfound = La clase {0} especificada en la firma del m\u00E9todo en el TLD para la funci\u00F3n {1} no se puede hallar. {2}
-jsp.error.text.has_subelement = &lt;jsp\:text&gt; no debe de tener subelementos
-jsp.error.data.file.read = Error leyendo archivo "{0}"
-jsp.error.prefix.refined = Intento de redefinir el prefijo {0} por {1}, cuando ya estaba definido como {2} en el \u00E1mbito en curso.
-jsp.error.nested_jsproot = &lt;jsp\:root&gt; anidado
-jsp.error.unbalanced.endtag = El tgag final "&lt;/{0}" est\u00E1 desequilibrado
-jsp.error.invalid.bean = El valor el atributo de clsae useBean {0} es inv\u00E1lido.
-jsp.error.prefix.use_before_dcl = El prefijo {0} especificado en esta directiva de marca ha sido usado previamente mediante un fichero de acci\u00F3n {1} l\u00EDnea {2}.
-jsp.exception = Ha sucedido una excepci\u00F3n al procesar la p\u00E1gina JSP {0} en l\u00EDnea {1}
-jsp.error.el.template.deferred = \#{..} no est\u00E1 permitido en texto de plantilla
-jsp.error.el.parse = {0} \: {1}
-jsp.error.page.invalid.deferredsyntaxallowedasliteral = Directiva de p\u00E1gina\: valor inv\u00E1lido para deferredSyntaxAllowedAsLiteral
-jsp.error.tag.invalid.deferredsyntaxallowedasliteral = Directiva de marca\: valor inv\u00E1lido para deferredSyntaxAllowedAsLiteral
-jsp.error.page.conflict.deferredsyntaxallowedasliteral = Directiva de p\u00E1gina\: es ilegal tener m\u00FAltiples ocurrencias de 'deferredSyntaxAllowedAsLiteral' con diferentes valores (viejo\: {0}, nuevo\: {1})
-jsp.error.tag.conflict.deferredsyntaxallowedasliteral = Directiva de marca\: es ilegal tener m\u00FAltiples ocurrencias de 'deferredSyntaxAllowedAsLiteral' con diferentes valores (viejo\: {0}, nuevo\: {1})
-jsp.error.page.invalid.trimdirectivewhitespaces = Directiva de p\u00E1gina\: valor inv\u00E1lido para trimDirectiveWhitespaces
-jsp.error.tag.invalid.trimdirectivewhitespaces = Directiva de marca\: valor inv\u00E1lido para trimDirectiveWhitespaces
-jsp.error.page.conflict.trimdirectivewhitespaces = Directiva de p\u00E1gina\: es ilegal tener m\u00FAltiples ocurrencias de 'trimDirectivewhitespaces' con diferentes valores (viejo\: {0}, nuevo\: {1})
-jsp.error.tag.conflict.trimdirectivewhitespaces = Directiva de marca\: es ilegal tener m\u00FAltiples ocurrencias de 'trimDirectivewhitespaces' con diferentes valores (viejo\: {0}, nuevo\: {1})

Deleted: trunk/src/main/java/org/apache/jasper/resources/LocalStrings_fr.properties
===================================================================
--- trunk/src/main/java/org/apache/jasper/resources/LocalStrings_fr.properties	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/resources/LocalStrings_fr.properties	2012-09-21 14:14:07 UTC (rev 2083)
@@ -1,305 +0,0 @@
-# $Id: LocalStrings_fr.properties 520 2008-03-17 21:29:47Z jfrederic.clere at jboss.com $
-#
-# Default localized string information
-# Localized this the Default Locale as is fr_FR
-
-jsp.error.bad.servlet.engine=Version de moteur de servlet incorrecte!
-jsp.error.no.scratch.dir=Le moteur de JSP engine n''est pas configuré avec un répertoire de travail.\
-\n Merci d''ajouter \"jsp.initparams=scratchdir=<dir-name>\" \
-\n dans le fichier "servlets.properties" de ce contexte.
-jsp.error.bad.scratch.dir=Le paramêtre "scratchDir" que vous avez spécifié: {0} est inutilisable.
-jsp.message.scratch.dir.is=Le répertoire de travail (scratch dir) pour le moteur de JSP est: {0}
-jsp.message.parent_class_loader_is=Le chargeur de classe parent (class loader) est: {0}
-jsp.message.dont.modify.servlets=IMPORTANT: Ne pas modifier les servlets générées
-jsp.error.not.impl.comments=Erreur interne: Commentaires non implémentés
-jsp.error.not.impl.directives=Erreur interne: Directives non implémentées
-jsp.error.not.impl.declarations=Erreur interne: Declarations non implémentées
-jsp.error.not.impl.expressions=Erreur interne: Expressions non implémentées
-jsp.error.not.impl.scriptlets=Erreur interne: Scriptlets non implémentés
-jsp.error.not.impl.usebean=Erreur interne: useBean non implémenté
-jsp.error.not.impl.getp=Erreur interne: getProperty non implémenté
-jsp.error.not.impl.setp=Erreur interne: setProperty non implémenté
-jsp.error.not.impl.plugin=Erreur interne: plugin non implémenté
-jsp.error.not.impl.forward=Erreur interne: forward non implémenté
-jsp.error.not.impl.include=Erreur interne: include non implémenté
-jsp.error.unavailable=La JSP a été marquée comme non disponible
-jsp.error.usebean.missing.attribute=useBean: l''identificateur d''attribut (id attribute) est manquant ou mal orthographié
-jsp.error.usebean.missing.type=useBean ({0}): La classe ou le type d''attribut doit être\
-spécifié: 
-jsp.error.usebean.duplicate=useBean: Nom de bean dupliqué: {0}
-jsp.error.usebean.prohibited.as.session=Impossible d''utiliser comme bean de session {0} car c''est interdit\
-par la directive jsp définie précédemment: 
-jsp.error.usebean.not.both=useBean: Impossible de spécifier à la fois la classe et l''attribut beanName: 
-jsp.error.usebean.bad.type.cast=useBean ({0}): Le type ({1}) n''est pas assignable depuis la classe ({2}) 
-jsp.error.classname=Impossible de déterminer le nom de classe d''après le fichier .class
-jsp.warning.bad.type=Attention: mauvais type dans le fichier .class
-jsp.error.data.file.write=Erreur lors de l''écriture du fichier de données
-#Directive de Page: valeur incorrecte pour pageEncoding
-jsp.error.page.invalid.contenttype=Directive de Page: valeur incorrecte pour contentType
-jsp.error.page.invalid.session=Directive de Page: valeur incorrecte pour session
-jsp.error.page.invalid.buffer=Directive de Page: valeur incorrecte pour "buffer"
-jsp.error.page.invalid.autoflush=Directive de Page: valeur incorrecte pour autoFlush
-jsp.error.page.invalid.isthreadsafe=Directive de Page: valeur incorrecte pour isThreadSafe
-jsp.error.page.invalid.info=Directive de Page: valeur incorrecte pour info
-jsp.error.page.invalid.iserrorpage=Directive de Page: valeur incorrecte pour isErrorPage
-jsp.error.page.defafteruse.language=Directive de Page: on ne peut définir language après un scriptlet 
-jsp.error.page.nomapping.language=Directive de Page: Pas de correspondance pour language: 
-jsp.error.page.bad_b_and_a_combo=Directive de Page: combinaison illégale de buffer=\"none\" && autoFlush=\"false\"
-jsp.error.not.impl.taglib=Internal error: Tag extensions non implémentés
-jsp.error.include.missing.file=l''argument fichier (file) pour l''inclusion (include) est absent
-jsp.error.include.bad.file=Mauvais argument fichier (file) pour l''inclusion (include)
-jsp.error.include.exception=Impossible d''inclure (include) {0}
-jsp.error.stream.closed=Flux fermé
-jsp.error.invalid.forward=Tag forward incorrect
-jsp.error.unknownException=Erreur non traitée! Vous devriez penser à utiliser une page d''erreur \
-pour rapporter ce type d''erreur plus élégamment
-jsp.error.invalid.directive=Directive incorrecte
-jsp.error.directive.istagfile=La directive {0} ne peut être utilisée dans un fichier tag
-jsp.error.directive.isnottagfile=La directive {0} ne peut être utilisée que dans un fichier tag
-jsp.error.tagfile.tld.name=L''attribut \"name\" de la directive tag contient la valeur {0} alors que le tag \"name\" de l''élément \"tag-file\" dans le TLD est {1}
-jsp.error.action.istagfile=L''action {0} ne peut être utilisée dans un fichier tag
-jsp.error.action.isnottagfile=L''action {0} ne peut être utilisée que dans un fichier tag
-jsp.error.unterminated=Tag {0} non terminé
-jsp.error.usebean.notinsamefile=le tag useBean doit commencé et finir dans le même fichier physique
-jsp.error.loadclass.taghandler=Impossible de charger la classe {0}
-jsp.error.unable.compile=Impossible de compiler la classe pour la JSP
-jsp.error.unable.load=Impossible de charger la classe pour la JSP
-jsp.error.unable.rename=Impossible de renommer le fichier classe de {0} vers {1}
-jsp.error.mandatory.attribute={0}: L''attribut obligatoire {1} est manquant
-jsp.engine.info=Moteur Jasper JSP 2.0
-jsp.error.invalid.expression="{0}" contient d''incorrecte(s) expression(s): {1}
-jsp.error.invalid.attribute={0}: Attribut incorrect: {1}
-jsp.error.usebean.class.notfound=Classe: {0} non trouvée
-jsp.error.file.cannot.read=Impossible de lire le fichier: {0}
-jsp.error.file.already.registered=Inclusion récursive du fichier {0}
-jsp.error.file.not.registered=Le fichier {0} n''apparaît pas dans l''inclusion (include)
-jsp.error.quotes.unterminated=guillemets non terminés
-jsp.error.attr.quoted=La valeur de l''attribute doit être entre guillemets 
-jsp.error.attr.novalue=L''attribute {0} n''a pas de valeur
-jsp.error.tag.attr.unterminated=Liste de tag d''attribut non terminée
-jsp.error.param.noname=Pas de nom dans le tag PARAM
-jsp.error.param.novalue=Pas de valeur dans le tag PARAM
-jsp.error.beans.nullbean=Tentative d''opération bean sur un objet nul.
-jsp.error.beans.nobeaninfo=Pas d''information bean (BeanInfo) pour le bean de type ''{0}'' n''a pu être trouvée, la classe n''existe probablement pas.
-jsp.error.beans.introspection=Une exception s''est produite lors de l''introspection de la méthode read de la propriété ''{0}'' dans le bean de type ''{1}'':\n{2}
-jsp.error.beans.nomethod=Impossible de trouver une méthode pour lire la propriété ''{0}'' dans le bean de type ''{1}''
-jsp.error.beans.nomethod.setproperty=Impossible de trouver une méthode pour mettre à jour la propriété ''{0}'' de type ''{1}''dans le bean de type ''{2}''
-jsp.error.beans.noproperty==Impossible de trouver de l''information sur la propriété ''{0}'' dans le bean de type ''{1}''
-jsp.error.beans.setproperty.noindexset=Impossible de renseigner la propriété indéxée
-jsp.error.include.tag=Tag jsp:include incorrect
-jsp.error.include.noflush=jsp:include doit avoir \"flush=true\"
-jsp.error.include.badflush=jsp:include page=\"...\" flush=\"true\" est la seule combinaison valide dans JSP 1.0
-jsp.error.attempt_to_clear_flushed_buffer=Erreur: Tentative d''effacement d''un tampon qui a déjà été vidangé (flush)
-jsp.error.overflow=Erreur: Dépassement de capacité du tampon JSP
-jsp.error.paramexpected=Le tag \"param\" est attendu avec les attributs \"name\" et \"value\" après le tag \"params\".
-jsp.error.closeindividualparam=Le tag param doit être fermé avec \"/>\"
-jsp.error.closeparams=Le tag param tag doit être fermé avec  /params
-jsp.error.plugin.notype=type non déclaré dans jsp:plugin
-jsp.error.plugin.nocode=code non déclaré dans jsp:plugin
-jsp.error.ise_on_clear=Il est interdit d''utiliser clear() quand la taille de tampon== 0
-jsp.error.setproperty.beanNotFound=setProperty: le Bean {0} est introuvable
-jsp.error.getproperty.beanNotFound=getProperty: le Bean {0} est introuvable
-jsp.error.setproperty.ClassNotFound=setProperty: la Classe {0} est introuvable
-jsp.error.setproperty.invalidSyntax=setProperty: On ne peut avoir de valeur non nulle quand property=*
-jsp.error.setproperty.beanInfoNotFound=setproperty: beanInfo pour le bean {0} est introuvable
-jsp.error.setproperty.paramOrValue=setProperty: param ou value doit être présent
-jsp.error.setproperty.arrayVal=setProperty: on ne peut renseigner les array property {0} au travers d''une valeur chaîne constante (string constant value)
-jsp.warning.keepgen=Attention: Valeur incorrecte pour le initParam keepgenerated. Utilisation de la valeur par défaut \"false\"
-jsp.warning.enablePooling=Attention: Valeur incorrecte pour le initParam enablePooling. Utilisation de la valeur par défaut \"true\"
-jsp.warning.mappedFile=Attention: Valeur incorrecte pour le initParam mappedFile. Utilisation de la valeur par défaut \"false\"
-jsp.warning.sendErrToClient=Attention: Valeur incorrecte pour le  initParam sendErrToClient. Utilisation de la valeur par défaut \"false\"
-jsp.warning.classDebugInfo=Attention: Valeur incorrecte pour le initParam classdebuginfo. Utilisation de la valeur par défaut \"false\"
-jsp.warning.checkInterval=Attention: Valeur incorrecte pour le initParam checkInterval. Utilisation de la valeur par défaut \"300\" secondes
-jsp.warning.development=Attention: Valeur incorrecte pour le initParam development. Utilisation de la valeur par défaut \"true\"
-jsp.warning.reloading=Attention: Valeur incorrecte pour le initParam reloading. Utilisation de la valeur par défaut \"true\"
-jsp.warning.reloading=
-jsp.error.badtaglib=Impossible d''ouvrir le taglibrary {0} : {1}
-jsp.error.badGetReader=Impossible de créer un lecteur (reader) quand le flux n''utilse pas des tampons (not buffered)
-jsp.warning.unknown.element.in.TLD=Attention: Elément inconnu {0} dans le TLD
-jsp.warning.unknown.element.in.tag=Attention: Elément inconnu {0} dans le tag
-jsp.warning.unknown.element.in.tagfile=Attention: El?ment inconnu {0} dans le tag-file
-jsp.warning.unknown.element.in.attribute=Attention: Elément inconnu {0} dans l''attribute
-jsp.error.more.than.one.taglib=plus d''un taglib dans le TLD: {0}
-jsp.error.teiclass.instantiation=Impossible de charger ou d''instancier la classe TagExtraInfo: {0}
-jsp.error.non_null_tei_and_var_subelems=Le tag {0} possède une ou plusieurs variables subelements et une classe TagExtraInfo qui retourne une ou plusieurs VariableInfo
-jsp.error.parse.error.in.TLD=Erreur d''évaluation (parse) dans le descripteur de librairie de tag (TLD): {0}
-jsp.error.unable.to.open.TLD=Impossible d''ouvrir le descripteur de librairie de tag (TLD): {0}
-jsp.buffer.size.zero=Taille du tampon <= 0
-jsp.error.file.not.found=Le fichier \"{0}\" n''a pas été trouvé
-jsp.message.copyinguri=Copie de {0} dans {1}
-jsp.message.htmlcomment=\nEffacement des commentaires: \t{0}
-jsp.message.handling_directive=\nDirective de gestion (handling): {0}\t{1}
-jsp.message.handling_plugin=\nPlugin: {0}
-jsp.message.package_name_is=Le nom de package est: {0}
-jsp.message.class_name_is=Le nom de classe est: {0}
-jsp.message.java_file_name_is=Le nom de fichier Java est: {0}
-jsp.message.class_file_name_is=Le nom de fichier Class est: {0}
-jsp.message.accepted=Accepté {0} à {1}
-jsp.message.adding_jar=Ajout du jar {0} à mon classpath
-jsp.message.compiling_with=Compilation avec: {0}
-jsp.message.template_text=texte template
-jsp.error.missing_attribute=D''après le TLD l''attribut {0} est obligatoire pour le tag {1}
-jsp.error.bad_attribute=L''attribut {0} est incorrect pour le tag {1} d''après la TLD indiquée
-jsp.error.webxml_not_found=Impossible de localiser le fichier web.xml
-jsp.cmd_line.usage=Usage: jsptoservlet [-dd <path/to/outputDirectory>] [-keepgenerated] \
-<.jsp files>
-jsp.message.cp_is=Le Classpath {0} est: {1}
-jsp.error.unable.to_load_taghandler_class=Impossible de charger la classe gestionnaire de tag {0} car {1}
-jsp.error.unable.to_find_method=Impossible de trouver une méthode de mise à jour pour l''attribut: {0}
-jsp.error.unable.to_convert_string=Impossible de convertir une chaîne vers {0} pour l''attribut {1}
-jsp.error.unable.to_introspect=Impossible d''introspecter la classe gestionnaire de tag : {0} car {1}
-jsp.error.bad_tag=Aucun tag {0} dans la librairie de tag importée avec le préfixe {1}
-jsp.error.bad_string_Character=Impossible d''extraire un caractère depuis un tableau vide
-jsp.error.bad_string_char=Impossible d''extraire un caractère depuis un tableau vide
-jsp.warning.compiler.class.cantcreate=Impossible de créer une instance de classe plugin pour le compilateur indiqué {0} due to {1}. Utilisation par défaut du Compilateur Java Sun.
-jsp.warning.compiler.class.notfound=La classe plugin de compilateur {0} est introuvable. Utilisation par défaut du Compilateur Java Sun.
-jsp.warning.compiler.path.notfound=le chemin de compilateur indiqué {0} est introuvable. Utilisation par défaut du chemin système (system PATH).
-jsp.error.jspc.uriroot_not_dir=L''option -uriroot doit indiqué un répertoire déjà existant
-jspc.implicit.uriRoot=uriRoot réglé implicitement à "{0}"
-jspc.usage=Usage: jspc <options> [--] <fichiers jsp>\n\
-où les fichiers jsp sont n''importe quel nombre de:\n\
-\    <file>         Un fichier à évaluer (parser) comme page jsp\n\
-\    -webapp <dir>  Un répertoire contenant une application web, toutes les pages jsp\n\
-\                   seront récursivement évaluées\n\
-où les options comprennet:\n\
-\    -q          Mode silencieux (identique à -v0)\n\
-\    -v[#]       Mode bavard (Le nombre optionnel indique le niveau, 2 par défaut)\n\
-\    -d <dir>    Dossier de sortie\n\
-\    -dd <dir>   Dossier de sortie literal.  (Les dossiers de paquets ne seront pas construits)\n\
-\    -l          Sortie du nom la page JSP en cas d''échec\n\
-\    -s          Sortie du nom la page JSP en cas de succès\n\
-\    -p <name>   Nom du paquet cible\n\
-\    -c <name>   Nom d'un nom de classe cible\n\
-\                (s''applique seulement à la première page JSP)\n\
-\    -mapped     Génère des appels à write() séparés pour chaque ligne HTML dans la JSP\n\
-\    -die[#]     Génère un code d''erreur de retour (#) en cas d''erreurs fatales.\n\
-\                Si le nombre est absent ou non numérique, le défaut est 1.\n\
-\    -uribase <dir>  Le répertoire uri de compilations relatif\n\
-\                    (Par défaut "/")\n\
-\    -uriroot <dir>  The répertoire racine contre lequel les fichiers seront résolus\n\
-\                    , (Par défaut le répertoire depuis lequel jspc est appelé)\n\
-\    -webinc <file>  Création d''association partielle de servlet pour l''option -webapp.\n\
-\    -webxml <file>  Création d''un fichier web.xml complet pour l''option -webapp.\n\
-\    -ieplugin <clsid>  Le classid du Plugin Java Plugin pour Internet Explorer\n\
-\    -sax2 <driverclassname>  Le nom de classe du Driver SAX 2.0 à utiliser\n\
-\    -trimSpaces        Trim spaces in template text between actions, directives\n\
-\    -javaEncoding <enc> Set the encoding charset for Java classes (default UTF-8)\n\
-\    -source <version>   Set the -source argument to the compiler (default 1.4)\n\
-\    -target <version>   Set the -target argument to the compiler (default 1.4)\n\
-
-jspc.webxml.header=<?xml version="1.0" encoding="ISO-8859-1"?>\n\
-\n\
-<!DOCTYPE web-app\n\
-\    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"\n\
-\    "http://java.sun.com/dtd/web-app_2_3.dtd">\n\
-<!--\n\
-Créer automatiquement par le JspC Apache Jakarta Tomcat.\n\
--->\n\
-<web-app>\n\
-\n
-jspc.webxml.footer=\n\
-</web-app>\n\
-\n
-jspc.webinc.header=\n\
-<!--\n\
-Créer automatiquement par le JspC Apache Jakarta Tomcat.\n\
-Placez ce fragment dans le fichier web.xml avant all icon, display-name,\n\
-description, distributable, and context-param elements.\n\
--->\n
-jspc.webinc.footer=\n\
-<!--\n\
-All session-config, mime-mapping, welcome-file-list, error-page, taglib,\n\
-resource-ref, security-constraint, login-config, security-role,\n\
-env-entry, and ejb-ref elements should follow this fragment.\n\
--->\n
-jspc.error.jasperException=erreur-le fichier ''{0}'' a généré l''exception d''évaluation suivante: {1}
-jspc.error.generalException=ERREUR-le fichier ''{0}'' a généré l''exception générale suivante:
-jspc.error.fileDoesNotExist=L''argument fichier ''{0}'' n''existe pas
-jspc.error.emptyWebApp=-webapp nécessite à sa suite un argument fichier
-jsp.error.library.invalid=La page JSP page est incorrecte d''après la librairie {0}: {1}
-jsp.error.tlvclass.instantiation=Impossible de charger ou d''instancier la classe TagLibraryValidator: {0}
-jsp.error.tlv.invalid.page=Message d''erreurs de validation provenant du TagLibraryValidator pour {0} en {1}
-jsp.error.tei.invalid.attributes=Message d''erreurs de validation provenant du TagExtraInfo pour {0}
-jsp.parser.sax.propertynotsupported=Propriété SAX non supportée: {0}
-jsp.parser.sax.propertynotrecognized=Propriété SAX non reconnue: {0}
-jsp.parser.sax.featurenotsupported=Fonctionnalité SAX non supportée: {0}
-jsp.parser.sax.featurenotrecognized=Fonctionnalité SAX non reconnue: {0}
-jsp.error.no.more.content=Fin de contenu alors que l''évalution n''était pas terminée: erreur de tags imbriqués?
-jsp.error.parse.xml=Erreur d''évaluation XML sur le fichier {0}
-jsp.error.parse.xml.line=Erreur d''évaluation XML sur le fichier  {0}: (ligne {1}, col {2})
-jsp.error.parse.xml.scripting.invalid.body=Le corps de l''élément {0} ne doit contenir aucun éléments XML
-jsp.error.internal.tldinit=Exception lors de l'initialisation de TldLocationsCache: {0}
-jsp.error.internal.filenotfound=Erreur interne: Fichier {0} introuvable
-jsp.error.internal.evaluator_not_found=Erreur interne: Impossible de charger l''évaluateur d''expression
-jsp.error.parse.xml.invalidPublicId=PUBLIC ID invalide: {0}
-jsp.error.include.flush.invalid.value=Valeur incorrecte pour l''attribut flush: {0}
-jsp.error.unsupported.encoding=Encodage non supporté: {0}
-jsp.warning.unknown.element.in.variable=Attention: Element inconnu {0} dans la variable
-tld.error.variableNotAllowed=Ceci est une erreur pour le tag qui possède une ou plusieurs variables subelements pour avoir une classe TagExtraInfo qui retourne un objet non-nul.
-jsp.error.tldInWebDotXmlNotFound=Ne peut trouver le TLD {1} pour l''URI {0} indiquée dans le fichier web.xml
-jsp.error.taglibDirective.absUriCannotBeResolved=L''uri absolue: {0} ne peut être résolu dans le fichier web.xml ou dans les fichiers jar déployés avec cette application
-jsp.error.taglibDirective.missing.location=Ni l''uri' ni l''attribut 'tagdir' n''ont été indiqués dans la directive taglib
-jsp.error.invalid.tagdir=Le répertoire du fichier Tag {0} ne commence pas par \"/WEB-INF/tags\"
-jsp.error.unterminated.user.tag=Tag user-defined non terminé: Le tag de fermeture {0} est introuvable found ou incorrectement imbriqué
-#jspx.error.templateDataNotInJspCdata=Erreur de validation: l''élément &lt;{0}&gt; ne peut avoir de données template. Les données Template doivent être encapsulées à l''intérieur d''un élément &lt;jsp:cdata&gt;. [JSP1.2 PFD section 5.1.9]\nDonnée Template en erreur: {1}
-jspx.error.templateDataNotInJspCdata=Erreur de validation: l''élément &lt;{0}&gt; ne peut avoir de données template. Les données Template doivent être encapsulées à l''intérieur d''un élément &lt;jsp:text&gt;. [JSP1.2 PFD section 5.1.9]\nDonnée Template en erreur: {1}
-#Erreur lors du traitement du fichier jar de la taglib {0}: {1}
-jsp.error.taglib.reserved.prefix=Le préfixe taglib {0} est réservé
-jsp.error.invalid.javaEncoding=Encodage java incorrect. Essai de {0} puis de {1}. Les deux ont échoué.
-jsp.error.needAlternateJavaEncoding=L''encodage java par défaut {0} est incorrect sur votre environnement java. Une alternative peut être indiquée via le paramêtre 'javaEncoding' de la JspServlet.
-#Erreur lors de la compilation, utilisé pour la ligne jsp des messages d''erreur
-jsp.error.single.line.number=Une erreur s''est produite à la ligne: {0} dans le fichier jsp: {1}
-jsp.error.multiple.line.number=\n\nUne erreur s''est produite entre les lignes: {0} et {1} dans le fichier jsp: {2}\n\n
-jsp.error.corresponding.servlet=Erreur de servlet générée:\n
-jsp.error.empty.body.not.allowed=Un corps vide n'est pas autorisé pour {0}
-jsp.error.jspbody.required=Doit utiliser jsp:body pour indiqué le corps de tag body de {0} si jsp:attribute est utilisé.
-jsp.error.jspbody.emptybody.only=Le tag {0} ne peut avoir que jsp:attribute dans son corps.
-jsp.error.no.scriptlets=Les éléments de Scripting ( <%!, <jsp:declaration, <%=, <jsp:expression, <%, <jsp:scriptlet ) ne sont pas autorisés ici.
-jsp.error.internal.unexpected_node_type=Erreur Interne: Type de node inattendu rencontré
-jsp.error.tld.fn.invalid.signature=Synthaxe invalide pour la signature de fonction dans la TLD.  Librairie de Tag : {0}, Fonction: {1}
-jsp.error.tld.fn.invalid.signature.classnotfound=Synthaxe invalide pour la signature de fonction dans la TLD.  Classe introuvable: ${0}.  Librairie de Tag: {1}, Fonction: {2}.
-jsp.error.tld.fn.invalid.signature.commaexpected=Synthaxe invalide pour la signature de fonction dans la TLD.  Virgule ',' attendue.  Librairie de Tag: {0}, Fonction: {1}.
-jsp.error.tld.fn.invalid.signature.parenexpected=Synthaxe invalide pour la signature de fonction dans la TLD.  Parenthèse '(' attendue.  Librairie de Tag: {0}, Fonction: {1}.
-jsp.error.dynamic.attributes.not.implemented=Le tag {0} indique qu''il accepte des attributs dynamics mais n''implémente pas l''interface requise
-jsp.error.nomatching.fragment=Ne peut trouver une directive attribut (avec pour nom={0} et fragment=true) avant la directive fragment.
-jsp.error.attribute.noequal=Symbole égal (equal) attendu
-jsp.error.attribute.noquote=Symbole guillemet (quote) attendu
-jsp.error.attribute.unterminated=L''attribut pour {0} n''est pas correctement terminé
-jsp.error.missing.tagInfo=L''objet TagInfo de {0} est absent de la TLD
-jsp.error.fragmentwithtype=On ne peut indiquer à la fois les attributs 'fragment' et 'type'.  Si 'fragment' est présent, 'type' est fixé comme 'javax.servlet.jsp.tagext.JspFragment'
-jsp.error.fragmentwithrtexprvalue=On ne peut indiquer à la fois les attributs 'fragment' et 'rtexprvalue'.  Si 'fragment' est présent, 'rtexprvalue' est fixé à 'true'
-jsp.error.fragmentWithDeclareOrScope=Les attributs 'fragment' et 'declare' ou 'scope' sont indiqués dans la directive variable
-jsp.error.var_and_varReader=A la fois 'var' et 'varReader' sont indiqués
-jsp.warning.bad.urlpattern.propertygroup=Mauvaise valeur {0} dans le sous-élément (subelement) url-pattern du fichier web.xml
-jsp.error.unknown_attribute_type=Type d''attribut inconnu ({1}) pour l''attribut {0}.
-jsp.error.jspelement.missing.name=L''attribut obligatoire 'name' est absent de jsp:element
-jsp.error.xmlns.redefinition.notimplemented=Erreur Interne: Tentative de redéfinition de xmlns:{0}.  La redéfinition des domaines de noms (namespaces) n''est pas implémentée.
-jsp.error.could.not.add.taglibraries=Impossible d''ajouter une ou plusieurs librairies de tag.
-jsp.error.duplicate.name.jspattribute=L''attribut {0} indiqué dans l''action standard ou spécifique (custom) apparait aussi comme valeur de l''attribut de nom dans le jsp:attribute inclus
-jsp.error.not.in.template={0} n''est pas autorisé dans le corps de texte de template.
-jsp.error.badStandardAction=L''action n''est pas reconnue comme une action standard.
-jsp.error.tagdirective.badbodycontent=Contenu de corps (body-content) ({0}) invalide dans la directive tag
-jsp.error.config_pagedir_encoding_mismatch=L''encode de page (Page-encoding) indiqué dans le jsp-property-group ({0}) est différent de celui indiqué dans la directive de page ({1})
-jsp.error.prolog_pagedir_encoding_mismatch=
-jsp.error.prolog_config_encoding_mismatch=
-jsp.error.attribute.custom.non_rt_with_expr=D''après la TLD, l''attribut {0} n''accepte aucune expression
-jsp.error.scripting.variable.missing_name=Incapable de déterminer le nom de variable scripting d''après l''attribut {0}
-jasper.error.emptybodycontent.nonempty=D''après la TLD, le tag {0} doit être vide, mais ne l''est pas
-jsp.error.tagfile.nameNotUnique=
-jsp.error.tagfile.nameFrom.noAttribute=
-jsp.error.tagfile.nameFrom.badAttribute=
-jsp.error.useBean.noSession=Il est illégal pour useBean d''utiliser une portée de session (session scope) quand la page JSP indique (via la directive de page) qu''elle ne participe pas aux sessions
-jsp.error.attributes.not.allowed = {0} ne doit avoir aucun attribut
-jsp.error.nested.jspattribute=
-jsp.error.nested.jspbody=
-jsp.error.variable.either.name=
-jsp.error.variable.both.name=
-jsp.error.variable.alias=
-jsp.error.jsptext.badcontent=
-jsp.error.prefix.refined=
-jsp.error.jspoutput.conflict=
-jsp.error.jspoutput.doctypenamesystem=
-jsp.error.jspoutput.doctypepulicsystem=
-jsp.error.jspoutput.nonemptybody=
-jsp.error.jspoutput.invalidUse=
-jsp.error.invalid.bean=

Deleted: trunk/src/main/java/org/apache/jasper/resources/LocalStrings_ja.properties
===================================================================
--- trunk/src/main/java/org/apache/jasper/resources/LocalStrings_ja.properties	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/resources/LocalStrings_ja.properties	2012-09-21 14:14:07 UTC (rev 2083)
@@ -1,407 +0,0 @@
-# $Id: LocalStrings_ja.properties 520 2008-03-17 21:29:47Z jfrederic.clere at jboss.com $
-#
-# Default localized string information
-# Localized this the Default Locale as is ja_JP
-
-jsp.error.bad.servlet.engine=\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u30a8\u30f3\u30b8\u30f3\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093
-jsp.error.no.scratch.dir=JSP\u30a8\u30f3\u30b8\u30f3\u306b\u30c7\u30d5\u30a9\u30eb\u30c8\u306escratchDir\u304c\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\
-\n \u3053\u306e\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u306eservlets.properties\u30d5\u30a1\u30a4\u30eb\u306b\u3001\
-\n \"jsp.initparams=scratchdir=<dir-name>\" \u3092\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-jsp.error.bad.scratch.dir=\u3042\u306a\u305f\u304c\u6307\u5b9a\u3057\u305fscratchDir: {0} \u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093
-jsp.message.scratch.dir.is=JSP\u30a8\u30f3\u30b8\u30f3\u306eScratchdir: {0}
-jsp.message.parent_class_loader_is=\u89aa\u30af\u30e9\u30b9\u30ed\u30fc\u30c0: {0}
-jsp.message.dont.modify.servlets=\u91cd\u8981: \u751f\u6210\u3055\u308c\u305f\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u3092\u5909\u66f4\u3057\u3066\u306f\u3044\u3051\u307e\u305b\u3093
-jsp.error.not.impl.comments=\u5185\u90e8\u30a8\u30e9\u30fc: Comments\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.not.impl.directives=\u5185\u90e8\u30a8\u30e9\u30fc: Directives\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.not.impl.declarations=\u5185\u90e8\u30a8\u30e9\u30fc: Declarations\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.not.impl.expressions=\u5185\u90e8\u30a8\u30e9\u30fc: Expressions\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.not.impl.scriptlets=\u5185\u90e8\u30a8\u30e9\u30fc: Scriptlets\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.not.impl.usebean=\u5185\u90e8\u30a8\u30e9\u30fc: useBean\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.not.impl.getp=\u5185\u90e8\u30a8\u30e9\u30fc: getProperty\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.not.impl.setp=\u5185\u90e8\u30a8\u30e9\u30fc: setProperty\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.not.impl.plugin=\u5185\u90e8\u30a8\u30e9\u30fc: plugin\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.not.impl.forward=\u5185\u90e8\u30a8\u30e9\u30fc: forward\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.not.impl.include=\u5185\u90e8\u30a8\u30e9\u30fc: include\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.unavailable=JSP\u306f\u5229\u7528\u4e0d\u53ef\u3068\u30de\u30fc\u30af\u3055\u308c\u3066\u3044\u307e\u3059
-jsp.error.usebean.missing.attribute=useBean: id\u5c5e\u6027\u304c\u5b58\u5728\u3057\u306a\u3044\u304b\u3001\u30b9\u30da\u30eb\u30df\u30b9\u3067\u3059
-jsp.error.usebean.missing.type=useBean ({0}): class\u5c5e\u6027\u304btype\u5c5e\u6027\u3092\u6307\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044:
-jsp.error.usebean.duplicate=useBean: beanName\u5c5e\u6027\u304c\u91cd\u8907\u3057\u3066\u3044\u307e\u3059: {0}
-jsp.error.usebean.prohibited.as.session=\u4ee5\u524d\u306b\u5b9a\u7fa9\u3057\u305fJSP\u6307\u793a\u5b50\u306b\u3088\u3063\u3066\u7981\u6b62\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u306b\u3001session bean {0} \u3068\u3057\u3066\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093:
-jsp.error.usebean.not.both=useBean: class\u5c5e\u6027\u3068beanName\u5c5e\u6027\u306e\u4e21\u65b9\u3092\u540c\u6642\u306b\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093:
-jsp.error.usebean.bad.type.cast=useBean ({0}): type ({1}) \u306fclass ({2}) \u304b\u3089\u5272\u308a\u5f53\u3066\u3089\u308c\u307e\u305b\u3093
-jsp.error.invalid.scope='scope'\u5c5e\u6027\u306e\u5024\u304c\u7121\u52b9\u3067\u3059: {0} (\"page\"\u3001\"request\"\u3001\"session\"\u53c8\u306f\"application\"\u306e\u3069\u308c\u304b\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093)
-jsp.error.classname=.class\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u30af\u30e9\u30b9\u540d\u3092\u6c7a\u5b9a\u3067\u304d\u307e\u305b\u3093
-jsp.warning.bad.type=\u8b66\u544a: .class\u30d5\u30a1\u30a4\u30eb\u4e2d\u306e\u578b\u304c\u9055\u3044\u307e\u3059
-jsp.error.data.file.write=\u30c7\u30fc\u30bf\u30d5\u30a1\u30a4\u30eb\u3092\u66f8\u304d\u8fbc\u307f\u4e2d\u306e\u30a8\u30e9\u30fc\u3067\u3059
-jsp.error.page.invalid.buffer=page\u6307\u793a\u5b50: \u7121\u52b9\u306a\u30d0\u30c3\u30d5\u30a1\u30b5\u30a4\u30ba\u3067\u3059
-jsp.error.page.conflict.contenttype=page\u6307\u793a\u5b50: 'contentType'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.page.invalid.contenttype=page\u6307\u793a\u5b50: contentType\u5c5e\u6027\u306e\u5024\u304c\u7121\u52b9\u3067\u3059
-jsp.error.page.conflict.session=page\u6307\u793a\u5b50: 'session'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.page.invalid.session=page\u6307\u793a\u5b50: session\u5c5e\u6027\u306e\u5024\u304c\u7121\u52b9\u3067\u3059
-jsp.error.page.conflict.buffer=page\u6307\u793a\u5b50: 'buffer'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.page.invalid.buffer=page\u6307\u793a\u5b50: buffer\u5c5e\u6027\u306e\u5024\u304c\u7121\u52b9\u3067\u3059
-jsp.error.page.conflict.autoflush=page\u6307\u793a\u5b50: 'autoFlush'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.page.invalid.autoflush=page\u6307\u793a\u5b50: autoFlush\u5c5e\u6027\u306e\u5024\u304c\u7121\u52b9\u3067\u3059
-jsp.error.page.conflict.isthreadsafe=page\u6307\u793a\u5b50: 'isThreadSafe'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.page.invalid.isthreadsafe=page\u6307\u793a\u5b50: isThreadSafe\u306e\u5024\u304c\u7121\u52b9\u3067\u3059
-jsp.error.page.conflict.info=page\u6307\u793a\u5b50: 'info'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.page.invalid.info=page\u6307\u793a\u5b50: info\u5c5e\u6027\u306e\u5024\u304c\u7121\u52b9\u3067\u3059
-jsp.error.page.conflict.iserrorpage=page\u6307\u793a\u5b50: 'isErrorPage'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.page.invalid.iserrorpage=page\u6307\u793a\u5b50: isErrorPage\u5c5e\u6027\u306e\u5024\u304c\u7121\u52b9\u3067\u3059
-jsp.error.page.conflict.errorpage=page\u6307\u793a\u5b50: 'errorPage'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.page.conflict.language=page\u6307\u793a\u5b50: 'language'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.tag.conflict.language=tag\u6307\u793a\u5b50: 'language'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.page.language.nonjava=page\u6307\u793a\u5b50: \u7121\u52b9\u306alanguage\u5c5e\u6027\u3067\u3059
-jsp.error.tag.language.nonjava=tag\u6307\u793a\u5b50: \u7121\u52b9\u306alanguage\u5c5e\u6027\u3067\u3059
-jsp.error.page.defafteruse.language=page\u6307\u793a\u5b50: scriptlet\u306e\u5f8c\u3067language\u5c5e\u6027\u3092\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093
-jsp.error.page.nomapping.language=page\u6307\u793a\u5b50 language\u5c5e\u6027\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u304c\u5b58\u5728\u3057\u307e\u305b\u3093:
-jsp.error.page.conflict.extends=page\u6307\u793a\u5b50: 'extends'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.page.conflict.iselignored=page\u6307\u793a\u5b50: 'isELIgnored'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.tag.conflict.iselignored=tag\u6307\u793a\u5b50: 'isELIgnored'\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {0}, \u65b0: {1})
-jsp.error.page.invalid.iselignored=page\u6307\u793a\u5b50: isELIgnored\u306b\u7121\u52b9\u306a\u5024\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059
-jsp.error.tag.invalid.iselignored=tag\u6307\u793a\u5b50: isELIgnored\u306b\u7121\u52b9\u306a\u5024\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059
-jsp.error.page.multi.pageencoding=page\u6307\u793a\u5b50\u306f\u8907\u6570\u306epageencoding\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
-jsp.error.tag.conflict.attr=Tag\u6307\u793a\u5b50: \u5c5e\u6027\"{0}\"\u3092\u7570\u306a\u308b\u5024\u3067\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u4e0d\u6b63\u3067\u3059 (\u65e7: {1}, \u65b0: {2})
-jsp.error.tag.multi.pageencoding=tag\u6307\u793a\u5b50\u306f\u8907\u6570\u306epageencoding\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
-jsp.error.page.bad_b_and_a_combo=page\u6307\u793a\u5b50: buffer=\"none\"\u3068autoFlush=\"false\"\u3092\u540c\u6642\u306b\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093
-jsp.error.not.impl.taglib=\u5185\u90e8\u30a8\u30e9\u30fc: \u30bf\u30b0\u62e1\u5f35\u5b50\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.include.missing.file=\u53d6\u308a\u8fbc\u3080\u30d5\u30a1\u30a4\u30eb\u5f15\u6570\u304c\u3042\u308a\u307e\u305b\u3093
-jsp.error.include.bad.file=include\u5c5e\u6027\u306e\u30d5\u30a1\u30a4\u30eb\u5f15\u6570\u304c\u9593\u9055\u3063\u3066\u3044\u307e\u3059
-jsp.error.include.exception={0} \u3092\u53d6\u308a\u8fbc\u3081\u307e\u305b\u3093
-jsp.error.stream.closed=\u30b9\u30c8\u30ea\u30fc\u30e0\u304c\u30af\u30ed\u30fc\u30ba\u3055\u308c\u3066\u3044\u307e\u3059
-jsp.error.invalid.forward=\u7121\u52b9\u306aforward\u30bf\u30b0\u3067\u3059
-jsp.error.unknownException=\u51e6\u7406\u4e0d\u53ef\u80fd\u306a\u30a8\u30e9\u30fc\u3067\u3059! \u3053\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u3092\u3088\u308a\u8a73\u7d30\u306b\u5831\u544a\u3059\u308b\u30a8\u30e9\u30fc\u30da\u30fc\u30b8\u3092\u6301\u3063\u305f\u65b9\u304c\u3088\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093
-jsp.error.invalid.directive=\u7121\u52b9\u306a\u6307\u793a\u5b50\u3067\u3059
-jsp.error.directive.istagfile={0} \u6307\u793a\u5b50\u306f\u30bf\u30b0\u30d5\u30a1\u30a4\u30eb\u4e2d\u3067\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093
-jsp.error.directive.isnottagfile={0} \u6307\u793a\u5b50\u306f\u30bf\u30b0\u30d5\u30a1\u30a4\u30eb\u4e2d\u3067\u3057\u304b\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093
-jsp.error.tagfile.tld.name=TLD\u4e2d\u306e\u30bf\u30b0\u6307\u793a\u5b50\u306e\"tag-file\"\u8981\u7d20\u306e\"name\"\u30bf\u30b0\u306f {1} \u3067\u3059\u304c\uff0c\"name\"\u5c5e\u6027\u306f\u5024 {0} \u3092\u6301\u3063\u3066\u3044\u307e\u3059
-jsp.error.action.istagfile={0} \u30a2\u30af\u30b7\u30e7\u30f3\u306f\u30bf\u30b0\u30d5\u30a1\u30a4\u30eb\u4e2d\u3067\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093
-jsp.error.action.isnottagfile={0} \u30a2\u30af\u30b7\u30e7\u30f3\u306f\u30bf\u30b0\u30d5\u30a1\u30a4\u30eb\u4e2d\u3067\u306e\u307f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093
-jsp.error.unterminated={0} \u30bf\u30b0\u304c\u7d42\u4e86\u3057\u3066\u3044\u307e\u305b\u3093
-jsp.error.usebean.notinsamefile=useBean\u30bf\u30b0\u306f\u3001\u540c\u4e00\u30d5\u30a1\u30a4\u30eb\u4e2d\u3067\u958b\u59cb\u3057\u3001\u7d42\u4e86\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.loadclass.taghandler=\u30bf\u30b0 \"{1}\" \u306b\u30bf\u30b0\u30cf\u30f3\u30c9\u30e9\u30af\u30e9\u30b9 \"{0}\" \u3092\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093
-jsp.error.unable.compile=JSP\u306e\u30af\u30e9\u30b9\u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u3067\u304d\u307e\u305b\u3093
-jsp.error.unable.load=JSP\u306e\u30af\u30e9\u30b9\u3092\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093
-jsp.error.unable.rename=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb {0} \u3092 {1} \u306b\u30d5\u30a1\u30a4\u30eb\u540d\u3092\u5909\u66f4\u3067\u304d\u307e\u305b\u3093
-jsp.error.mandatory.attribute={0}: \u5fc5\u9808\u5c5e\u6027 {1} \u304c\u3042\u308a\u307e\u305b\u3093
-jsp.engine.info=Jasper JSP 2.0\u30a8\u30f3\u30b8\u30f3
-jsp.error.invalid.expression="{0}" \u306f\u7121\u52b9\u306a\u5f0f\u3092\u542b\u3093\u3067\u3044\u307e\u3059: {1}
-jsp.error.invalid.attribute={0}\u306f\u7121\u52b9\u306a\u5c5e\u6027\u3092\u6301\u3063\u3066\u3044\u307e\u3059: {1}
-jsp.error.usebean.class.notfound=\u30af\u30e9\u30b9: {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-jsp.error.file.cannot.read=\u30d5\u30a1\u30a4\u30eb\u304c\u8aad\u3081\u307e\u305b\u3093: {0}
-jsp.error.file.already.registered=\u30d5\u30a1\u30a4\u30eb {0} \u306e\u518d\u5e30\u7684\u306a\u53d6\u308a\u8fbc\u307f\u3067\u3059
-jsp.error.file.not.registered=include\u5c5e\u6027\u4e2d\u306e\u30d5\u30a1\u30a4\u30eb {0} \u304c\u5b58\u5728\u3057\u307e\u305b\u3093
-jsp.error.quotes.unterminated=\u5f15\u7528\u7b26\u304c\u7d42\u4e86\u3057\u3066\u3044\u307e\u305b\u3093
-jsp.error.attr.quoted=\u5c5e\u6027\u5024\u306f\u5f15\u7528\u7b26\u3067\u56f2\u308f\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.attr.novalue=\u5c5e\u6027 {0} \u306b\u306f\u5024\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.tag.attr.unterminated=\u30bf\u30b0\u306e\u5c5e\u6027\u30ea\u30b9\u30c8\u304c\u7d42\u4e86\u3057\u3066\u3044\u307e\u305b\u3093
-jsp.error.param.noname=PARAM\u30bf\u30b0\u306bname\u5c5e\u6027\u304c\u3042\u308a\u307e\u305b\u3093
-jsp.error.param.novalue=PARAM\u30bf\u30b0\u306bvalue\u5c5e\u6027\u304c\u3042\u308a\u307e\u305b\u3093
-jsp.error.beans.nullbean=null\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306bBean\u64cd\u4f5c\u3092\u304a\u3053\u306a\u304a\u3046\u3068\u3057\u307e\u3057\u305f
-jsp.error.beans.nobeaninfo=\u30bf\u30a4\u30d7 ''{0}'' \u306eBean\u306bBeanInfo\u304c\u306a\u3044\u306e\u3092\u691c\u51fa\u3057\u307e\u3057\u305f, \u30af\u30e9\u30b9\u304c\u5b58\u5728\u3057\u306a\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093
-jsp.error.beans.introspection=\u30bf\u30a4\u30d7 ''{1}'' \u306eBean\u4e2d\u306e\u5c5e\u6027 ''{0}'' \u306eread\u30e1\u30bd\u30c3\u30c9\u3092\u5185\u7701\u4e2d\u306b\u4f8b\u5916\u304c\u767a\u751f\u3057\u307e\u3057\u305f:\n{2}
-jsp.error.beans.nomethod=\u30bf\u30a4\u30d7 ''{1}'' \u306eBean\u4e2d\u306e\u5c5e\u6027 ''{0}'' \u3092\u8aad\u307f\u8fbc\u3080\u30e1\u30bd\u30c3\u30c9\u3092\u767a\u898b\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
-jsp.error.beans.nomethod.setproperty=\u30bf\u30a4\u30d7''{2}''\u306eBean\u306e\u30bf\u30a4\u30d7 ''{1}'' \u306e\u5c5e\u6027 ''{0}'' \u3092\u66f8\u304d\u8fbc\u3080\u30e1\u30bd\u30c3\u30c9\u3092\u767a\u898b\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
-jsp.error.beans.noproperty=\u30bf\u30a4\u30d7 ''{1}'' \u306ebean\u4e2d\u306e\u5c5e\u6027 ''{0}'' \u306e\u60c5\u5831\u3092\u767a\u898b\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
-jsp.error.beans.setproperty.noindexset=\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u4ed8\u304d\u306e\u5c5e\u6027\u3092\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093
-jsp.error.include.tag=\u7121\u52b9\u306ajsp:include\u30bf\u30b0\u3067\u3059
-jsp.error.include.noflush=jsp:include\u30bf\u30b0\u306b \"flush=true\" \u3092\u5b9a\u7fa9\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.include.badflush=jsp:include page=\"...\" flush=\"true\" \u306f\u3001JSP 1.0\u3067\u306e\u307f\u6709\u52b9\u306a\u7d44\u307f\u5408\u308f\u305b\u3067\u3059
-jsp.error.attempt_to_clear_flushed_buffer=\u30a8\u30e9\u30fc: \u65e2\u306b\u30d5\u30e9\u30c3\u30b7\u30e5\u3055\u308c\u3066\u3044\u308b\u30d0\u30c3\u30d5\u30a1\u3092\u30af\u30ea\u30a2\u3057\u3088\u3046\u3068\u3057\u307e\u3057\u305f
-jsp.error.overflow=\u30a8\u30e9\u30fc: JSP\u30d0\u30c3\u30d5\u30a1\u304c\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u3057\u307e\u3057\u305f
-jsp.error.paramexpected=\"name\"\u5c5e\u6027 \u3068 \"value\" \u5c5e\u6027\u3092\u6301\u3064 \"jsp:param\" \u6a19\u6e96\u30a2\u30af\u30b7\u30e7\u30f3\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.param.invalidUse=jsp:include\u3001jsp:forward\u3001\u53c8\u306fjsp:params\u8981\u7d20\u306e\u5916\u3067jsp:param\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u4f7f\u7528\u3057\u3066\u306f\u3044\u3051\u307e\u305b\u3093
-jsp.error.params.invalidUse=jsp:params\u306fjsp:plugin\u306e\u76f4\u63a5\u306e\u5b50\u4f9b\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.fallback.invalidUse=jsp:fallback\u306fjsp:plugin\u306e\u76f4\u63a5\u306e\u5b50\u4f9b\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.namedAttribute.invalidUse=jsp:attribute\u306f\u6a19\u6e96\u53c8\u306f\u30ab\u30b9\u30bf\u30e0\u30a2\u30af\u30b7\u30e7\u30f3\u306e\u526f\u8981\u7d20\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.jspbody.invalidUse=jsp:body\u306f\u6a19\u6e96\u53c8\u306f\u30ab\u30b9\u30bf\u30e0\u30a2\u30af\u30b7\u30e7\u30f3\u306e\u526f\u8981\u7d20\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.closeindividualparam=param\u30bf\u30b0\u306f \"/>\" \u3067\u9589\u3058\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.closeparams=param\u30bf\u30b0\u306f/params\u3067\u9589\u3058\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.params.emptyBody=jsp:params\u306f\u5c11\u306a\u304f\u3068\u3082\u4e00\u3064\u306e\u30cd\u30b9\u30c8\u3057\u305fjsp:param\u3092\u542b\u307e\u306d\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.params.illegalChild=jsp:params\u306fjsp:param\u4ee5\u5916\u306e\u30cd\u30b9\u30c8\u3057\u305f\u8981\u7d20\u3092\u542b\u3093\u3067\u306f\u3044\u3051\u307e\u305b\u3093
-jsp.error.plugin.notype=jsp:plugin\u3067type\u5c5e\u6027\u304c\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.plugin.badtype=jsp:plugin\u306e 'type'\u5c5e\u6027\u306e\u5024\u304c\u7121\u52b9\u3067\u3059: 'bean'\u53c8\u306f'applet'\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.plugin.nocode=jsp:plugin\u3067code\u5c5e\u6027\u304c\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.ise_on_clear=\u30d0\u30c3\u30d5\u30a1\u30b5\u30a4\u30ba\u304c0\u306e\u6642\u306bclear()\u3092\u5b9f\u884c\u3057\u3066\u3082\u7121\u52b9\u3067\u3059
-jsp.error.setproperty.beanNotFound=setProperty: Bean {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-jsp.error.getproperty.beanNotFound=getProperty: Bean {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-jsp.error.setproperty.ClassNotFound=setProperty: \u30af\u30e9\u30b9 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-# typo ?
-#jsp.error.setproperty.invalidSayntax=setProperty: property=*\u306e\u5834\u5408\u306fnull\u3067\u306a\u3044\u5024\u3092\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093
-jsp.error.setproperty.invalidSyntax=setProperty: property=*\u306e\u5834\u5408\u306fnull\u3067\u306a\u3044\u5024\u3092\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093
-jsp.error.setproperty.beanInfoNotFound=setproperty: Bean {0} \u306ebeanInfo\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-jsp.error.setproperty.paramOrValue=setProperty: param\u5c5e\u6027\u304bvalue\u5c5e\u6027\u306e\u3069\u3061\u3089\u304b\u4e00\u3064\u3060\u3051\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059
-jsp.error.setproperty.arrayVal=setProperty: \u5c5e\u6027\u914d\u5217 {0} \u3092\u6587\u5b57\u5217\u5b9a\u6570\u5024\u3067\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093
-jsp.warning.keepgen=\u8b66\u544a: initParam keepgenerated\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002 \u30c7\u30d5\u30a9\u30eb\u30c8\u5024 \"false\" \u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.xpoweredBy=\u8b66\u544a: Invalid value for the initParam xpoweredBy\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u5024 \"false\" \u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.enablePooling=\u8b66\u544a: initParam enablePooling\u304c\u7121\u52b9\u306a\u5024\u3067\u3059\u3002\"true\"\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.invalidTagPoolSize=\u8b66\u544a: tagPoolSize\u306e\u521d\u671f\u30d1\u30e9\u30e1\u30fc\u30bf\u304c\u7121\u52b9\u306a\u5024\u3067\u3059\u3002{0}\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u30b5\u30a4\u30ba\u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.mappedFile=\u8b66\u544a: initParam mappedFile\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u5024 \"false\" \u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.sendErrToClient=\u8b66\u544a: initParam sendErrToClient\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u5024 \"false\" \u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.classDebugInfo=\u8b66\u544a: initParam classDebugInfo\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u5024 \"false\"\u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.checkInterval=\u8b66\u544a: initParam checkInterval\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\"300\"\u79d2\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.development=\u8b66\u544a: initParam development\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\"true\"\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.fork=\u8b66\u544a: initParam fork\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\"true\"\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.reloading=\u8b66\u544a: initParam reloading\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\"true\"\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.dumpSmap=\u8b66\u544a: initParam dumpSmap\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\"false\"\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.genchararray=\u8b66\u544a: initParam genStrAsCharArray\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\"false\"\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.warning.suppressSmap=\u8b66\u544a: initParam suppressSmap\u306e\u5024\u304c\u7121\u52b9\u3067\u3059\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u5024 \"false\" \u3092\u4f7f\u7528\u3057\u307e\u3059
-jsp.error.badtaglib=\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea {0} \u3092\u30aa\u30fc\u30d7\u30f3\u3067\u304d\u307e\u305b\u3093: {1}
-jsp.error.badGetReader=\u30b9\u30c8\u30ea\u30fc\u30e0\u304c\u30d0\u30c3\u30d5\u30a1\u30ea\u30f3\u30b0\u3055\u308c\u3066\u3044\u306a\u3044\u5834\u5408\u306b\u306f\u3001Reader\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093
-jsp.warning.unknown.element.in.taglib=taglib\u4e2d\u306b\u672a\u77e5\u306e\u8981\u7d20 ({0}) \u304c\u3042\u308a\u307e\u3059
-jsp.warning.unknown.element.in.tag=tag\u4e2d\u306b\u672a\u77e5\u306e\u8981\u7d20 ({0}) \u304c\u3042\u308a\u307e\u3059
-jsp.warning.unknown.element.in.tagfile=tag-file\u4e2d\u306b\u672a\u77e5\u306e\u8981\u7d20 ({0}) \u304c\u3042\u308a\u307e\u3059
-jsp.warning.unknown.element.in.attribute=attribute\u4e2d\u306b\u672a\u77e5\u306e\u8981\u7d20 ({0}) \u304c\u3042\u308a\u307e\u3059
-jsp.warning.unknown.element.in.variable=variable\u4e2d\u306b\u672a\u77e5\u306e\u8981\u7d20 ({0}) \u304c\u3042\u308a\u307e\u3059
-jsp.warning.unknown.element.in.validator=validator\u4e2d\u306b\u672a\u77e5\u306e\u8981\u7d20 ({0}) \u304c\u3042\u308a\u307e\u3059
-jsp.warning.unknown.element.in.initParam=validator\u306einit-param\u4e2d\u306b\u672a\u77e5\u306e\u8981\u7d20 ({0}) \u304c\u3042\u308a\u307e\u3059
-jsp.warning.unknown.element.in.function=function\u4e2d\u306b\u672a\u77e5\u306e\u8981\u7d20 ({0}) \u304c\u3042\u308a\u307e\u3059
-jsp.error.more.than.one.taglib=TLD\u306e\u4e2d\u306b\u8907\u6570\u306etaglib\u304c\u5b58\u5728\u3057\u307e\u3059: {0}
-jsp.error.teiclass.instantiation=TagExtraInfo class\u306e\u30ed\u30fc\u30c9\u53c8\u306f\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0}
-jsp.error.non_null_tei_and_var_subelems=\u30bf\u30b0 {0} \u306f\u4e00\u3064\u4ee5\u4e0a\u306evariable\u526f\u8981\u7d20\u3068\u4e00\u3064\u4ee5\u4e0a\u306eVariableInfo\u3092\u8fd4\u3059TagExtraInfo\u30af\u30e9\u30b9\u3092\u6301\u3063\u3066\u3044\u307e\u3059
-jsp.error.parse.error.in.TLD=\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u8a18\u8ff0\u5b50 {0} \u4e2d\u306e\u89e3\u6790\u30a8\u30e9\u30fc\u3067\u3059
-jsp.error.unable.to.open.TLD=\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u8a18\u8ff0\u5b50 {0} \u3092\u30aa\u30fc\u30d7\u30f3\u3067\u304d\u307e\u305b\u3093
-jsp.buffer.size.zero=\u30d0\u30c3\u30d5\u30a1\u30b5\u30a4\u30ba\u304c0\u4ee5\u4e0b\u3067\u3059
-jsp.error.file.not.found=JSP \u30d5\u30a1\u30a4\u30eb \"{0}\" \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-jsp.message.copyinguri={0} \u3092 {1} \u306b\u30b3\u30d4\u30fc\u3057\u307e\u3059
-jsp.message.htmlcomment=\n\u524a\u9664\u3059\u308b\u30b3\u30e1\u30f3\u30c8: \t{0}
-jsp.message.handling_directive=\n\u51e6\u7406\u3059\u308b\u6307\u793a\u5b50: {0}\t{1}
-jsp.message.handling_plugin=\nPlugin: {0}
-jsp.message.package_name_is=\u30d1\u30c3\u30b1\u30fc\u30b8\u540d: {0}
-jsp.message.class_name_is=\u30af\u30e9\u30b9\u540d: {0}
-jsp.message.java_file_name_is=Java\u30d5\u30a1\u30a4\u30eb\u540d: {0}
-jsp.message.class_file_name_is=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u540d: {0}
-jsp.message.accepted={1} \u3067 {0} \u3092\u53d7\u3051\u5165\u308c\u307e\u3059
-jsp.message.adding_jar=jar {0} \u3092\u30af\u30e9\u30b9\u30d1\u30b9\u306b\u8ffd\u52a0\u3057\u307e\u3059
-jsp.message.compiling_with={0} \u3092\u30b3\u30f3\u30d1\u30a4\u30eb\u4e2d\u3067\u3059
-jsp.message.template_text=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30c6\u30ad\u30b9\u30c8
-jsp.error.missing_attribute=TLD\u53c8\u306f\u30bf\u30b0\u30d5\u30a1\u30a4\u30eb\u306b\u3088\u308b\u3068\u3001\u5c5e\u6027 {0} \u306f\u30bf\u30b0 {1} \u306b\u306f\u5fc5\u9808\u3067\u3059
-jsp.error.bad_attribute=TLD\u306b\u3088\u308b\u3068\u3001\u30bf\u30b0 {1} \u306e\u5c5e\u6027 {0} \u306f\u7121\u52b9\u3067\u3059
-jsp.error.tld.unable_to_read=JAR\u30d5\u30a1\u30a4\u30eb \"{0}\" \u304b\u3089TLD \"{1}\" \u3092\u8aad\u307f\u8fbc\u3081\u307e\u305b\u3093: {2}
-jsp.error.tld.unable_to_get_jar=TLD\u3092\u542b\u3080JAR\u30ea\u30bd\u30fc\u30b9 \"{0}\" \u3092\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093 : {1}
-jsp.error.tld.missing_jar=TLD\u3092\u542b\u3080JAR\u30ea\u30bd\u30fc\u30b9 \"{0}\" \u304c\u3042\u308a\u307e\u305b\u3093
-jsp.error.webxml_not_found=web.xml\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-jsp.cmd_line.usage=\u4f7f\u7528\u6cd5:  [-dd <\u51fa\u529b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u30d1\u30b9>] [-keepgenerated] \
-<.jsp\u30d5\u30a1\u30a4\u30eb\u7fa4>
-jsp.message.cp_is=\u30af\u30e9\u30b9\u30d1\u30b9 {0} \u306f {1} \u3067\u3059
-jsp.error.unable.to_load_taghandler_class=\u30bf\u30b0\u30cf\u30f3\u30c9\u30e9\u30af\u30e9\u30b9 {0} \u3092 {1} \u306e\u305f\u3081\u306b\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093
-jsp.error.unable.to_find_method=\u5c5e\u6027 {0} \u306esetter\u30e1\u30bd\u30c3\u30c9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-jsp.error.unable.to_convert_string=\u5c5e\u6027 {1}\u306e\u6587\u5b57\u5217\u3092 {0}\u306b\u5909\u63db\u3067\u304d\u307e\u305b\u3093
-jsp.error.unable.to_introspect=\u30bf\u30b0\u30cf\u30f3\u30c9\u30e9\u30af\u30e9\u30b9 {0} \u3092 {1} \u306e\u305f\u3081\u306b\u5185\u7701\u3067\u304d\u307e\u305b\u3093
-jsp.error.bad_tag=\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9 {1}\u3067\u30a4\u30f3\u30dd\u30fc\u30c8\u3055\u308c\u305f\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u306f\u3001\u30bf\u30b0 {0} \u306f\u5b58\u5728\u3057\u307e\u305b\u3093
-jsp.error.xml.bad_tag=URI \"{1}\" \u306b\u95a2\u9023\u3065\u3051\u3089\u308c\u305f\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4e2d\u306b\u306f\u30bf\u30b0 \"{0}\" \u306f\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.bad_string_Character=\u9577\u30550\u306e\u914d\u5217\u304b\u3089\u306f\u6587\u5b57\u3092\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093
-jsp.error.bad_string_char=\u9577\u30550\u306e\u914d\u5217\u304b\u3089\u306f\u6587\u5b57\u3092\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093
-jsp.warning.compiler.class.cantcreate=\u6307\u5b9a\u3055\u308c\u305f\u30b3\u30f3\u30d1\u30a4\u30e9\u30d7\u30e9\u30b0\u30a4\u30f3\u30af\u30e9\u30b9 {0} \u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092 {1} \u306e\u305f\u3081\u306b\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u3092Sun\u306eJava\u30b3\u30f3\u30d1\u30a4\u30e9\u306b\u3057\u307e\u3059\u3002
-jsp.warning.compiler.class.notfound=\u6307\u5b9a\u3055\u308c\u305f\u30b3\u30f3\u30d1\u30a4\u30e9\u30d7\u30e9\u30b0\u30a4\u30f3\u30af\u30e9\u30b9 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002not found. \u30c7\u30d5\u30a9\u30eb\u30c8\u3092Sun\u306eJava\u30b3\u30f3\u30d1\u30a4\u30e9\u306b\u3057\u307e\u3059\u3002
-jsp.warning.compiler.path.notfound=\u6307\u5b9a\u3055\u308c\u305f\u30b3\u30f3\u30d1\u30a4\u30e9\u30d1\u30b9 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002\u30b7\u30b9\u30c6\u30e0\u306ePATH\u3092\u30c7\u30d5\u30a9\u30eb\u30c8\u306b\u3057\u307e\u3059\u3002
-jsp.error.jspc.uriroot_not_dir=-uriroot \u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u3001\u65e2\u306b\u5b58\u5728\u3059\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u6307\u5b9a\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.jspc.missingTarget=\u30bf\u30fc\u30b2\u30c3\u30c8\u304c\u3042\u308a\u307e\u305b\u3093: -webapp\u53c8\u306f-uriroot\uff0c\u53c8\u306f\u4e00\u3064\u4ee5\u4e0a\u306eJSP\u30da\u30fc\u30b8\u3092\u6307\u5b9a\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.jspc.no_uriroot=uriroot\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u306e\u3067\u3001\u6307\u5b9a\u3055\u308c\u305fJSP\u30d5\u30a1\u30a4\u30eb(\u7fa4)\u3092\u914d\u7f6e\u3067\u304d\u307e\u305b\u3093
-jspc.implicit.uriRoot=uriRoot\u306f\u30c7\u30d5\u30a9\u30eb\u30c8"{0}"\u306b\u8a2d\u5b9a\u3055\u308c\u307e\u3059
-jspc.usage=\u4f7f\u7528\u6cd5: jspc <options> [--] <jsp files>\n\
-JSP\u30d5\u30a1\u30a4\u30eb\u306e\u5834\u6240\u306f\u6b21\u306e\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u6307\u5b9a\u3059\u308b\u304b\u3001\n\
-\    -webapp <dir>   web-app\u3092\u542b\u3080\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3002\u3059\u3079\u3066\u306eJSP\u30d5\u30a1\u30a4\u30eb\u306f\n\
-\                    \u518d\u5e30\u7684\u306b\u89e3\u6790\u3055\u308c\u308b\n\
-\u53c8\u306f\u6b21\u306e\u4efb\u610f\u306e\u6570\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u6307\u5b9a\u3057\u307e\u3059\u3002\n\
-\    <file>          JSP\u3068\u3057\u3066\u89e3\u6790\u3055\u308c\u308b\u30d5\u30a1\u30a4\u30eb\n\
-\u30aa\u30d7\u30b7\u30e7\u30f3\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\n\
-\    -help           \u3053\u306e\u30d8\u30eb\u30d7\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u8868\u793a\n\
-\    -v              Verbose\u30e2\u30fc\u30c9\n\
-\    -d <dir>        \u51fa\u529b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n\
-\    -l              \u5931\u6557\u3057\u305fJSP\u30da\u30fc\u30b8\u306e\u540d\u524d\u306e\u51fa\u529b\n\
-\    -s              \u6210\u529f\u3057\u305fJSP\u30da\u30fc\u30b8\u306e\u540d\u524d\u306e\u51fa\u529b\n\
-\    -p <name>       \u30bf\u30fc\u30b2\u30c3\u30c8\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u540d\u524d  (\u30c7\u30d5\u30a9\u30eb\u30c8\u306forg.apache.jsp)\n\
-\    -c <name>       \u30bf\u30fc\u30b2\u30c3\u30c8\u30af\u30e9\u30b9\u306e\u540d\u524d (\u6700\u521d\u306eJSP\u30da\u30fc\u30b8\u3060\u3051\u306b\u9069\u7528\u3055\u308c\u308b)\n\
-\    -mapped         JSP\u306e\u5404HTML\u884c\u3054\u3068\u306bwrite()\u30b3\u30fc\u30eb\u3092\u751f\u6210\n\
-\    -die[#]         \u81f4\u547d\u7684\u30a8\u30e9\u30fc\u306b\u30a8\u30e9\u30fc\u30ea\u30bf\u30fc\u30f3\u30b3\u30fc\u30c9(#)\u3092\u751f\u6210 (\u30c7\u30d5\u30a9\u30eb\u30c8\u306f1)\n\
-\    -uribase <dir>  \u30b3\u30f3\u30d1\u30a4\u30eb\u304c\u76f8\u5bfe\u7684\u306b\u304a\u3053\u306a\u308f\u308c\u308buri\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n\
-\                    (\u30c7\u30d5\u30a9\u30eb\u30c8\u306f"/")\n\
-\    -uriroot <dir>  -webapp\u3068\u540c\u3058\n\
-\    -compile        \u751f\u6210\u3057\u305f\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u306e\u30b3\u30f3\u30d1\u30a4\u30eb\n\
-\    -webinc <file>  \u30d5\u30a1\u30a4\u30eb\u306b\u90e8\u5206\u7684\u306a\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u4f5c\u6210\n\
-\    -webxml <file>  \u30d5\u30a1\u30a4\u30eb\u306b\u5b8c\u5168\u306aweb.xml\u3092\u4f5c\u6210\n\
-\    -ieplugin <clsid>  Internet Explorer\u306eJava Plugin\u306eclassid\n\
-\    -classpath <path>  java.class.path\u30b7\u30b9\u30c6\u30e0\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u4e0a\u66f8\u304d\n\
-\    -xpoweredBy        X-Powered-By\u30ec\u30b9\u30dd\u30f3\u30b9\u30d8\u30c3\u30c0\u306e\u8ffd\u52a0\n\
-\    -trimSpaces        \u30a2\u30af\u30b7\u30e7\u30f3\u3084\u6307\u793a\u5b50\u306e\u9593\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30c6\u30ad\u30b9\u30c8\u4e2d\u306e\u30b9\u30da\u30fc\u30b9\u3092\u524a\u9664\n\
-\    -trimSpaces        Trim spaces in template text between actions, directives\n\
-\    -javaEncoding <enc> Set the encoding charset for Java classes (default UTF-8)\n\
-\    -source <version>   Set the -source argument to the compiler (default 1.4)\n\
-\    -target <version>   Set the -target argument to the compiler (default 1.4)\n\
-
-jspc.webxml.header=<?xml version="1.0" encoding="ISO-8859-1"?>\n\
-\n\
-<!DOCTYPE web-app\n\
-\    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"\n\
-\    "http://java.sun.com/dtd/web-app_2_3.dtd">\n\
-<!--\n\
-Automatically created by Apache Jakarta Tomcat JspC.\n\
--->\n\
-<web-app>\n\
-\n
-jspc.webxml.footer=\n\
-</web-app>\n\
-\n
-jspc.webinc.header=\n\
-<!--\n\
-Automatically created by Apache Jakarta Tomcat JspC.\n\
-Place this fragment in the web.xml before all icon, display-name,\n\
-description, distributable, and context-param elements.\n\
--->\n
-jspc.webinc.footer=\n\
-<!--\n\
-All session-config, mime-mapping, welcome-file-list, error-page, taglib,\n\
-resource-ref, security-constraint, login-config, security-role,\n\
-env-entry, and ejb-ref elements should follow this fragment.\n\
--->\n
-jspc.webinc.insertEnd=<!-- JSPC servlet mappings end -->
-jspc.webinc.insertStart=<!-- JSPC servlet mappings start -->
-jspc.error.jasperException=\u30a8\u30e9\u30fc: \u30d5\u30a1\u30a4\u30eb ''{0}'' \u306f\u6b21\u306e\u4f8b\u5916\u3092\u767a\u751f\u3057\u307e\u3057\u305f: {1}
-jspc.error.generalException=\u30a8\u30e9\u30fc: \u30d5\u30a1\u30a4\u30eb ''{0}'' \u306f\u6b21\u306e\u4f8b\u5916\u3092\u767a\u751f\u3057\u307e\u3057\u305f:
-jspc.error.fileDoesNotExist=\u30d5\u30a1\u30a4\u30eb\u5f15\u6570 ''{0}'' \u306f\u5b58\u5728\u3057\u307e\u305b\u3093\u3002
-jspc.error.emptyWebApp=-webapp\u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u306f\u3001\u30d5\u30a1\u30a4\u30eb\u5f15\u6570\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.library.invalid=\u30e9\u30a4\u30d6\u30e9\u30ea{0}\u306b\u5f93\u3046\u3068JSP\u30da\u30fc\u30b8\u306f\u7121\u52b9\u3067\u3059: {1}
-jsp.error.tlvclass.instantiation=TagLibraryValidator\u30af\u30e9\u30b9\u306e\u30ed\u30fc\u30c9\u53c8\u306f\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u306b\u5931\u6557\u3057\u307e\u3057\u305f: {0}
-jsp.error.tlv.invalid.page={0} \u306b\u5bfe\u3059\u308bTagLibraryValidator\u306e\u691c\u8a3c\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3067\u3059 ({1})
-jsp.error.tei.invalid.attributes={0} \u306b\u5bfe\u3059\u308bTagExtraInfo\u304b\u3089\u306e\u691c\u8a3c\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3067\u3059
-jsp.parser.sax.propertynotsupported=SAX\u30d7\u30ed\u30d1\u30c6\u30a3\u304c\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093: {0}
-jsp.parser.sax.propertynotrecognized=SAX\u30d7\u30ed\u30d1\u30c6\u30a3\u304c\u8a8d\u8b58\u3055\u308c\u307e\u305b\u3093: {0}
-jsp.parser.sax.featurenotsupported=SAX\u30d5\u30a3\u30fc\u30c1\u30e3\u304c\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093: {0}
-jsp.parser.sax.featurenotrecognized=SAX\u30d5\u30a3\u30fc\u30c1\u30e3\u304c\u8a8d\u8b58\u3055\u308c\u307e\u305b\u3093: {0}
-jsp.error.no.more.content=\u5fc5\u8981\u306a\u89e3\u6790\u4e2d\u306b\u5185\u5bb9\u306e\u6700\u5f8c\u307e\u3067\u9054\u3057\u307e\u3057\u305f: \u30bf\u30b0\u306e\u30cd\u30b9\u30c8\u306e\u30a8\u30e9\u30fc\u304b\u3082\u3057\u308c\u307e\u305b\u3093
-jsp.error.parse.xml=\u30d5\u30a1\u30a4\u30eb{0}\u306eXML\u89e3\u6790\u30a8\u30e9\u30fc
-jsp.error.parse.xml.line=\u30d5\u30a1\u30a4\u30eb{0}\u306eXML\u89e3\u6790\u30a8\u30e9\u30fc: (\u884c {1}, \u5217 {2})
-jsp.error.parse.xml.scripting.invalid.body={0} \u8981\u7d20\u306e\u30dc\u30c7\u30a3\u306fXML\u8981\u7d20\u3092\u542b\u3093\u3067\u306f\u3044\u3051\u307e\u305b\u3093
-jsp.error.internal.tldinit=TldLocationsCache\u3092\u521d\u671f\u5316\u4e2d\u306e\u4f8b\u5916\u3067\u3059: {0}
-jsp.error.internal.filenotfound=\u5185\u90e8\u30a8\u30e9\u30fc: \u30d5\u30a1\u30a4\u30eb {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-jsp.error.internal.evaluator_not_found=\u5185\u90e8\u30a8\u30e9\u30fc: \u5f0f\u691c\u8a3c\u5668\u3092\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093
-jsp.error.parse.xml.invalidPublicId=\u7121\u52b9\u306aPUBLIC ID: {0}
-jsp.error.include.flush.invalid.value=flush\u5c5e\u6027\u306b\u7121\u52b9\u306a\u5024\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059: {0}
-jsp.error.unsupported.encoding=\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3067\u3059: {0}
-tld.error.variableNotAllowed=null\u3067\u306a\u3044\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u8fd4\u3059TagExtraInfo\u3092\u6301\u3064\u4e00\u3064\u4ee5\u4e0a\u306e\u5909\u6570\u526f\u8981\u7d20\u3092\u6301\u3064\u30bf\u30b0\u306f\u30a8\u30e9\u30fc\u3067\u3059\u3002
-jsp.error.tldInWebDotXmlNotFound=web.xml\u3067\u6307\u5b9a\u3055\u308c\u305fURI {0} \u306bTLD\u3092\u914d\u7f6e\u3067\u304d\u307e\u305b\u3093
-jsp.error.taglibDirective.absUriCannotBeResolved=\u7d76\u5bfeURI:  {0} \u306fweb.xml\u3068\u3053\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u914d\u5099\u3057\u305fJAR\u30d5\u30a1\u30a4\u30eb\u306e\u3069\u3061\u3089\u304b\u3067\u3082\u89e3\u6c7a\u3067\u304d\u307e\u305b\u3093
-jsp.error.taglibDirective.missing.location=taglib\u6307\u793a\u5b50\u306e\u4e2d\u306b'uri'\u5c5e\u6027\u3068'tagdir'\u5c5e\u6027\u306e\u3069\u3061\u3089\u3082\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.taglibDirective.both_uri_and_tagdir=\'uri\'\u5c5e\u6027 \u3068 \'tagdir\'\u5c5e\u6027\u306e\u4e21\u65b9\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059
-jsp.error.invalid.tagdir=\u30bf\u30b0\u30d5\u30a1\u30a4\u30eb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {0} \u304c\"/WEB-INF/tags\"\u3067\u59cb\u307e\u308a\u307e\u305b\u3093
-jsp.error.unterminated.user.tag=\u672a\u7d42\u4e86\u306e\u30e6\u30fc\u30b6\u5b9a\u7fa9\u30bf\u30b0: \u7d42\u4e86\u30bf\u30b0 {0} \u304c\u898b\u3064\u304b\u3089\u306a\u3044\u304b\u3001\u30cd\u30b9\u30c8\u304c\u9593\u9055\u3063\u3066\u3044\u307e\u3059
-#jspx.error.templateDataNotInJspCdata=Validation Error: Element &lt;{0}&gt; cannot have template data. Template data must be encapsulated within a &lt;jsp:cdata&gt; element. [JSP1.2 PFD section 5.1.9]\nTemplate data in error: {1}
-jspx.error.templateDataNotInJspCdata=\u8a3c\u660e\u30a8\u30e9\u30fc: \u8981\u7d20&lt;{0}&gt;\u306f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30c7\u30fc\u30bf\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30c7\u30fc\u30bf\u306f\u3001&lt;jsp:text&gt;\u8981\u7d20\u306e\u4e2d\u3067\u96a0\u853d\u3055\u308c\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002[JSP1.2 PFD 5.1.9]\n\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30c7\u30fc\u30bf\u306e\u30a8\u30e9\u30fc\u3067\u3059: {1}
-#Error while processing taglib jar file {0}: {1}
-jsp.error.taglib.reserved.prefix=taglib\u30d7\u30ea\u30d5\u30a3\u30af\u30b9 {0} \u306f\u4e88\u7d04\u3055\u308c\u3066\u3044\u307e\u3059
-jsp.error.invalid.javaEncoding=\u7121\u52b9\u306aJava\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3067\u3059\u3002{0}\u3092\u8a66\u3057\u3066\u3001\u305d\u308c\u304b\u3089{1}\u3092\u8a66\u3057\u307e\u3057\u305f\u304c\u3001\u4e21\u65b9\u304c\u5931\u6557\u3057\u307e\u3057\u305f
-jsp.error.needAlternateJavaEncoding=\u30c7\u30d5\u30a9\u30eb\u30c8\u306eJava\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0 {0} \u306f\u3042\u306a\u305f\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u306f\u7121\u52b9\u3067\u3059\u3002JspServlet\u306e 'javaEncoding' \u30d1\u30e9\u30e1\u30bf\u3067\u3001\u5225\u306e\u5024\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002
-#Error when compiling, used for jsp line number error messages
-jsp.error.single.line.number=JSP\u30d5\u30a1\u30a4\u30eb: {1} \u306e\u4e2d\u306e{0}\u884c\u76ee\u3067\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f
-jsp.error.multiple.line.number=\n\nJPS\u30d5\u30a1\u30a4\u30eb: {2}\u306e\u4e2d\u306e{0}\u884c\u76ee\u3068{1}\u884c\u76ee\u306e\u9593\u3067\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\n\n
-jsp.error.corresponding.servlet=\u751f\u6210\u3055\u308c\u305f\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u306e\u30a8\u30e9\u30fc\u3067\u3059:\n
-jsp.error.empty.body.not.allowed={0} \u306b\u5bfe\u3057\u3066\u7a7a\u306e\u30dc\u30c7\u30a3\u306f\u8a31\u3055\u308c\u307e\u305b\u3093
-jsp.error.jspbody.required=jsp:attribute\u304c\u4f7f\u7528\u3055\u308c\u305f\u5834\u5408\u306b\u306f\u3001{0}\u306b\u30bf\u30b0\u30dc\u30c7\u30a3\u3092\u6307\u5b9a\u3059\u308b\u305f\u3081\u306bjsp:body\u3092\u4f7f\u7528\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.jspbody.emptybody.only={0} \u30bf\u30b0\u306f\u3001\u305d\u306e\u30dc\u30c7\u30a3\u4e2d\u306bjsp:attribute\u3060\u3051\u3092\u6301\u3064\u3053\u3068\u304c\u3067\u304d\u307e\u3059
-jsp.error.no.scriptlets=\u30b9\u30af\u30ea\u30d7\u30c6\u30a3\u30f3\u30b0\u8981\u7d20 ( &lt;%!\u3001&lt;jsp:declaration\u3001&lt;%=\u3001&lt;jsp:expression\u3001&lt;%\u3001&lt;jsp:scriptlet ) \u306f\u3053\u3053\u3067\u306f\u8a31\u3055\u308c\u307e\u305b\u3093
-jsp.error.internal.unexpected_node_type=\u5185\u90e8\u30a8\u30e9\u30fc: \u672a\u77e5\u306e\u30ce\u30fc\u30c9\u30bf\u30a4\u30d7\u304c\u8868\u308c\u307e\u3057\u305f
-jsp.error.tld.fn.invalid.signature=TLD\u306e\u4e2d\u306e\u95a2\u6570\u30b7\u30b0\u30cd\u30c1\u30e3\u306b\u5bfe\u3059\u308b\u7121\u52b9\u306a\u69cb\u6587\u3067\u3059\u3002\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea: {0}\u3001\u95a2\u6570: {1}
-jsp.error.tld.fn.duplicate.name=\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea {1} \u306e\u4e2d\u306e\u95a2\u6570\u540d {0} \u304c\u91cd\u8907\u3057\u3066\u3044\u307e\u3059
-jsp.error.tld.fn.invalid.signature.commaexpected=TLD\u306e\u4e2d\u306e\u95a2\u6570\u30b7\u30b0\u30cd\u30c1\u30e3\u306b\u5bfe\u3059\u308b\u7121\u52b9\u306a\u69cb\u6587\u3067\u3059\u3002\u30b3\u30f3\u30de ',' \u304c\u3042\u308a\u307e\u305b\u3093\u3002\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea: {0}\u3001\u95a2\u6570: {1}\u3002
-jsp.error.tld.fn.invalid.signature.parenexpected=TLD\u306e\u4e2d\u306e\u95a2\u6570\u30b7\u30b0\u30cd\u30c1\u30e3\u306b\u5bfe\u3059\u308b\u7121\u52b9\u306a\u69cb\u6587\u3067\u3059\u3002\u62ec\u5f27 '(' \u304c\u3042\u308a\u307e\u305b\u3093\u3002\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea: {0}\u3001\u95a2\u6570: {1}\u3002
-jsp.error.tld.mandatory.element.missing=\u5fc5\u9808TLD\u8981\u7d20\u304c\u306a\u3044\u3001\u53c8\u306f\u7a7a\u3067\u3059: {0}
-jsp.error.dynamic.attributes.not.implemented={0} \u30bf\u30b0\u306f\u305d\u308c\u304cdynamic\u5c5e\u6027\u3092\u53d7\u3051\u4ed8\u3051\u308b\u3068\u5ba3\u8a00\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u305d\u308c\u306b\u5fc5\u8981\u306a\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3092\u5b9f\u88c5\u3057\u3066\u3044\u307e\u305b\u3093
-jsp.error.nomatching.fragment=attribute\u6307\u793a\u5b50 (name={0}\u304a\u3088\u3073fragment=true\u3092\u6301\u3064) \u304cfragment\u6307\u793a\u5b50\u3088\u308a\u524d\u306b\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-jsp.error.attribute.noequal=\u7b49\u53f7\u8a18\u53f7\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.attribute.noquote=\u5f15\u7528\u7b26\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.attribute.unterminated={0} \u306e\u5c5e\u6027\u304c\u6b63\u3057\u304f\u7d42\u4e86\u3057\u3066\u3044\u307e\u305b\u3093
-jsp.error.missing.tagInfo={0} \u306b\u5bfe\u3059\u308bTagInfo\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304cTLD\u304b\u3089\u5931\u308f\u308c\u307e\u3057\u305f
-jsp.error.fragmentwithtype='fragment'\u5c5e\u6027\u3068'type'\u5c5e\u6027\u3092\u4e21\u65b9\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002'fragment'\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306b\u306f'type'\u306f'javax.servlet.jsp.tagext.JspFragment'\u306b\u56fa\u5b9a\u3055\u308c\u307e\u3059
-jsp.error.fragmentwithrtexprvalue='fragment'\u5c5e\u6027\u3068'rtexprvalue'\u5c5e\u6027\u3092\u4e21\u65b9\u6307\u5b9a\u3067\u304d\u307e\u305b\u3093\u3002'fragment'\u304c\u5b58\u5728\u3059\u308b\u5834\u5408\u306b\u306f'rtexprvalue'\u306f'true'\u306b\u56fa\u5b9a\u3055\u308c\u307e\u3059
-jsp.error.fragmentWithDeclareOrScope='fragment'\u5c5e\u6027\u3068'declare'\u5c5e\u6027\u306e\u4e21\u65b9\u53c8\u306f'scope'\u5c5e\u6027\u304cvariable\u6307\u793a\u5b50\u4e2d\u3067\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059
-jsp.error.var_and_varReader=\'var\'\u53c8\u306f\'varReader\'\u306e\u3069\u3061\u3089\u304b\u4e00\u3064\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059
-jsp.error.missing_var_or_varReader=\'var\'\u53c8\u306f\'varReader\'\u5c5e\u6027\u304c\u3042\u308a\u307e\u305b\u3093
-jsp.warning.bad.urlpattern.propertygroup=web.xml\u4e2d\u306eurl-pattern\u526f\u8981\u7d20\u4e2d\u306b\u8aa4\u3063\u305f\u5024 {0} \u304c\u3042\u308a\u307e\u3059
-jsp.error.unknown_attribute_type=\u5c5e\u6027 {0} \u306b\u5bfe\u3059\u308b\u672a\u77e5\u306e\u5c5e\u6027\u30bf\u30a4\u30d7\u3067\u3059
-jsp.error.jspelement.missing.name=\u5fc5\u9808\u306eXML\u30b9\u30bf\u30a4\u30eb\u306e'name'\u5c5e\u6027\u304cjsp:element\u4e2d\u306b\u3042\u308a\u307e\u305b\u3093
-jsp.error.xmlns.redefinition.notimplemented=\u5185\u90e8\u30a8\u30e9\u30fc: xmlns:{0}\u3092\u518d\u5b9a\u7fa9\u3057\u3088\u3046\u3068\u3057\u307e\u3057\u305f\u3002\u540d\u524d\u7a7a\u9593\u306e\u518d\u5b9a\u7fa9\u306f\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
-jsp.error.could.not.add.taglibraries=1\u3064\u4ee5\u4e0a\u306e\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u8ffd\u52a0\u3067\u304d\u307e\u305b\u3093
-jsp.error.duplicate.name.jspattribute=\u6a19\u6e96\u53c8\u306f\u30ab\u30b9\u30bf\u30e0\u30a2\u30af\u30b7\u30e7\u30f3\u4e2d\u3067\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u5c5e\u6027 {0} \u306f\u305d\u308c\u306b\u56f2\u307e\u308c\u305fjsp:attribute\u4e2d\u306ename\u5c5e\u6027\u306e\u5024\u3068\u3057\u3066\u3082\u8868\u308c\u307e\u3059
-jsp.error.not.in.template=\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30c6\u30ad\u30b9\u30c8\u30dc\u30c7\u30a3\u4e2d\u3067\u306f {0} \u306f\u8a31\u3055\u308c\u307e\u305b\u3093
-jsp.error.badStandardAction=\u7121\u52b9\u306a\u6a19\u6e96\u30a2\u30af\u30b7\u30e7\u30f3\u3067\u3059
-jsp.error.xml.badStandardAction=\u7121\u52b9\u306a\u6a19\u6e96\u30a2\u30af\u30b7\u30e7\u30f3\u3067\u3059: {0}
-jsp.error.tagdirective.badbodycontent=tag\u6307\u793a\u5b50\u4e2d\u306e\u7121\u52b9\u306abody-content ({0})\u3067\u3059
-jsp.error.simpletag.badbodycontent=\u30af\u30e9\u30b9 {0} \u306eTLD\u306fSimpleTag\u306b\u7121\u52b9\u306abody-content (JSP)\u3092\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059
-jsp.error.config_pagedir_encoding_mismatch=jsp-property-group\u4e2d\u306b\u6307\u5b9a\u3055\u308c\u3066\u3044\u308bPage-encoding ({0}) \u304cpage\u6307\u793a\u5b50\u4e2d\u306e\u6307\u5b9a ({1}) \u3068\u9055\u3044\u307e\u3059
-jsp.error.prolog_pagedir_encoding_mismatch=XML\u5c0e\u5165\u90e8\u3067\u6307\u5b9a\u3055\u308c\u305fpage-encoding ({0}) \u304cpage\u6307\u793a\u5b50\u4e2d\u306e\u6307\u5b9a ({1}) \u3068\u9055\u3044\u307e\u3059
-jsp.error.prolog_config_encoding_mismatch=XML\u5c0e\u5165\u90e8\u3067\u6307\u5b9a\u3055\u308c\u305fpage-encoding ({0}) \u304cjsp-property-group\u4e2d\u306e\u6307\u5b9a\u3068\u9055\u3044\u307e\u3059 ({1})
-jsp.error.attribute.custom.non_rt_with_expr=TLD\u53c8\u306f\u30bf\u30b0\u30d5\u30a1\u30a4\u30eb\u4e2d\u306eattribute\u6307\u793a\u5b50\u306b\u5f93\u3063\u3066\u5c5e\u6027{0}\u306f\u3069\u3093\u306a\u5f0f\u3082\u53d7\u3051\u4ed8\u3051\u307e\u305b\u3093
-jsp.error.attribute.standard.non_rt_with_expr={1} \u6a19\u6e96\u30a2\u30af\u30b7\u30e7\u30f3\u306e {0} \u5c5e\u6027\u306f\u3069\u3093\u306a\u5f0f\u3082\u53d7\u3051\u4ed8\u3051\u307e\u305b\u3093
-jsp.error.scripting.variable.missing_name=\u5c5e\u6027 {0} \u304b\u3089\u30b9\u30af\u30ea\u30d7\u30c8\u5909\u6570\u540d\u3092\u6c7a\u5b9a\u3067\u304d\u307e\u305b\u3093
-jasper.error.emptybodycontent.nonempty=TLD\u306b\u5f93\u3063\u3066\u30bf\u30b0 {0} \u306f\u7a7a\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u304c\u3001\u305d\u3046\u3067\u306f\u3042\u308a\u307e\u305b\u3093
-jsp.error.tagfile.nameNotUnique={2}\u884c\u76ee\u306e {0} \u306e\u5024\u3068 {1} \u306e\u5024\u306f\u540c\u3058\u3067\u3059
-jsp.error.tagfile.nameFrom.noAttribute=\u3053\u306ename-from-attribute\u5c5e\u6027\u306e\u5024\u3067\u3042\u308b\u5024 \"{0}\" \u306ename\u5c5e\u6027\u3092\u6301\u3064attribute\u6307\u793a\u5b50\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-jsp.error.tagfile.nameFrom.badAttribute=attribute\u6307\u793a\u5b50 ({1}\u884c\u76ee\u3067\u5ba3\u8a00\u3055\u308c\u3001\u305d\u306ename\u5c5e\u6027\u304c\"{0}\"\u3001\u3053\u306ename-from-attribute\u5c5e\u6027\u306e\u5024) \u306fjava.lang.String\u578b\u306e\"required\" \u3067 \"rtexprvalue\".\u3067\u3042\u3063\u3066\u306f\u3044\u3051\u307e\u305b\u3093
-jsp.error.page.noSession=\u30bb\u30c3\u30b7\u30e7\u30f3\u306b\u52a0\u308f\u3063\u3066\u3044\u306a\u3044\u30da\u30fc\u30b8\u306e\u4e2d\u3067\u306f\u30bb\u30c3\u30b7\u30e7\u30f3\u30b9\u30b3\u30fc\u30d7\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093
-jsp.error.useBean.noSession=JSP\u30da\u30fc\u30b8\u304c(page\u6307\u793a\u5b50\u306b\u3088\u308a)\u30bb\u30c3\u30b7\u30e7\u30f3\u4e2d\u3067\u5354\u8abf\u3057\u306a\u3044\u3053\u3068\u3092\u5ba3\u8a00\u3057\u3066\u3044\u308b\u6642\u3001\u30bb\u30c3\u30b7\u30e7\u30f3\u30b9\u30b3\u30fc\u30d7\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306euseBean\u304c\u4e0d\u6b63\u3067\u3059
-jsp.error.xml.encodingByteOrderUnsupported = \u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0 \"{0}\" \u306b\u6307\u5b9a\u3055\u308c\u305f\u30d0\u30a4\u30c8\u30aa\u30fc\u30c0\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.xml.encodingDeclInvalid = \u7121\u52b9\u306a\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u540d \"{0}\" \u3067\u3059
-jsp.error.xml.encodingDeclRequired = \u30c6\u30ad\u30b9\u30c8\u5ba3\u8a00\u4e2d\u306b\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u5ba3\u8a00\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.xml.morePseudoAttributes = \u3088\u308a\u591a\u304f\u306e\u7591\u4f3c\u5c5e\u6027\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.xml.noMorePseudoAttributes = \u3053\u308c\u4ee5\u4e0a\u306e\u7591\u4f3c\u5c5e\u6027\u306f\u8a31\u3055\u308c\u307e\u305b\u3093
-jsp.error.xml.versionInfoRequired = XML\u5ba3\u8a00\u306e\u4e2d\u306b\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.xml.xmlDeclUnterminated = XML\u5ba3\u8a00\u306f\"?>\"\u3067\u7d42\u3089\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.xml.reservedPITarget = \"[xX][mM][lL]\"\u306b\u4e00\u81f4\u3059\u308b\u51e6\u7406\u547d\u4ee4\u30bf\u30fc\u30b2\u30c3\u30c8\u306f\u8a31\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.xml.spaceRequiredInPI = \u7a7a\u767d\u304c\u51e6\u7406\u547d\u4ee4\u30bf\u30fc\u30b2\u30c3\u30c8\u3068\u30c7\u30fc\u30bf\u306e\u9593\u306b\u5fc5\u8981\u3067\u3059
-jsp.error.xml.invalidCharInContent = \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u7121\u52b9\u306aXML\u6587\u5b57 (Unicode: 0x{0}) \u304c\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u8981\u7d20\u5185\u5bb9\u306e\u4e2d\u306b\u898b\u3064\u304b\u308a\u307e\u3057\u305f
-jsp.error.xml.spaceRequiredBeforeStandalone = XML\u5ba3\u8a00\u306eencoding\u7591\u4f3c\u5c5e\u6027\u306e\u524d\u306b\u7a7a\u767d\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.xml.sdDeclInvalid = \u30b9\u30bf\u30f3\u30c9\u30a2\u30ed\u30f3\u6587\u66f8\u5ba3\u8a00\u5024\u306f\"yes\"\u53c8\u306f\"no\"\u306e\u3069\u3061\u3089\u304b\u3067\u3042\u308a\u3001\"{0}\"\u3067\u306f\u3044\u3051\u307e\u305b\u3093
-jsp.error.xml.invalidCharInPI = \u7121\u52b9\u306aXML\u6587\u5b57 (Unicode: 0x{0}) \u304c\u547d\u4ee4\u51e6\u7406\u4e2d\u306b\u898b\u3064\u304b\u308a\u307e\u3057\u305f
-jsp.error.xml.versionNotSupported = XML\u30d0\u30fc\u30b8\u30e7\u30f3 \"{0}\" \u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3001XML 1.0\u3060\u3051\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059
-jsp.error.xml.pseudoAttrNameExpected = \u7591\u4f3c\u5c5e\u6027\u540d\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.xml.expectedByte ={1}\u30d0\u30a4\u30c8UTF-8\u30b7\u30fc\u30b1\u30f3\u30b9\u306e\u30d0\u30a4\u30c8 {0} \u304c\u5fc5\u8981\u3067\u3059
-jsp.error.xml.invalidByte = {1}\u30d0\u30a4\u30c8UTF-8\u30b7\u30fc\u30b1\u30f3\u30b9\u306e\u7121\u52b9\u306a\u30d0\u30a4\u30c8 {0} \u3067\u3059
-jsp.error.xml.operationNotSupported = {1} reader\u306f\u64cd\u4f5c \"{0}\" \u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u305b\u3093
-jsp.error.xml.invalidHighSurrogate = UTF-8\u30b7\u30fc\u30b1\u30f3\u30b9\u306e\u30cf\u30a4\u30b5\u30ed\u30b2\u30fc\u30c8\u30d3\u30c3\u30c8\u306f0x10\u3092\u8d8a\u3048\u3066\u306f\u3044\u3051\u307e\u305b\u3093\u304c\u30010x{0}\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
-jsp.error.xml.invalidASCII = \u30d0\u30a4\u30c8 \"{0}\" \u306f7\u30d3\u30c3\u30c8ASCII\u3067\u306f\u3042\u308a\u307e\u305b\u3093
-jsp.error.xml.spaceRequiredBeforeEncodingInXMLDecl = XML\u5ba3\u8a00\u306eencoding\u7591\u4f3c\u5c5e\u6027\u306e\u524d\u306b\u7a7a\u767d\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.xml.spaceRequiredBeforeEncodingInTextDecl = \u30c6\u30ad\u30b9\u30c8\u5ba3\u8a00\u306eencoding\u7591\u4f3c\u5c5e\u6027\u306e\u524d\u306b\u7a7a\u767d\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.xml.spaceRequiredBeforeVersionInTextDecl = \u30c6\u30ad\u30b9\u30c8\u5ba3\u8a00\u306eversion\u7591\u4f3c\u5c5e\u6027\u306e\u524d\u306b\u7a7a\u767d\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.xml.spaceRequiredBeforeVersionInXMLDecl = XML\u5ba3\u8a00\u306eversion\u7591\u4f3c\u5c5e\u6027\u306e\u524d\u306b\u7a7a\u767d\u304c\u5fc5\u8981\u3067\u3059
-jsp.error.xml.eqRequiredInXMLDecl = XML\u5ba3\u8a00\u4e2d\u3067\"{0}\"\u306e\u6b21\u306b'' = '' \u6587\u5b57\u304c\u7d9a\u304b\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.xml.eqRequiredInTextDecl = \u30c6\u30ad\u30b9\u30c8\u5ba3\u8a00\u4e2d\u3067\"{0}\"\u306e\u6b21\u306b'' = ''\u6587\u5b57\u304c\u7d9a\u304b\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.xml.quoteRequiredInTextDecl = \u30c6\u30ad\u30b9\u30c8\u5ba3\u8a00\u4e2d\u306e\"{0}\"\u306b\u7d9a\u304f\u5024\u306f\u30af\u30aa\u30fc\u30c8\u3067\u56f2\u307e\u308c\u305f\u6587\u5b57\u5217\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.xml.quoteRequiredInXMLDecl = XML\u5ba3\u8a00\u4e2d\u306e\"{0}\"\u306b\u7d9a\u304f\u5024\u306f\u30af\u30aa\u30fc\u30c8\u3067\u56f2\u307e\u308c\u305f\u6587\u5b57\u5217\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.xml.invalidCharInTextDecl = \u30c6\u30ad\u30b9\u30c8\u5ba3\u8a00\u306e\u4e2d\u306b\u7121\u52b9\u306aXML\u6587\u5b57 (Unicode: 0x{0}) \u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
-jsp.error.xml.invalidCharInXMLDecl = XML\u5ba3\u8a00\u306e\u4e2d\u306b\u7121\u52b9\u306aXML\u6587\u5b57 (Unicode: 0x{0}) \u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
-jsp.error.xml.closeQuoteMissingInTextDecl = \u30c6\u30ad\u30b9\u30c8\u5ba3\u8a00\u4e2d\u306e\"{0}\"\u306b\u7d9a\u304f\u5024\u306e\u4e2d\u306e\u6700\u5f8c\u306e\u30af\u30aa\u30fc\u30c8\u304c\u3042\u308a\u307e\u305b\u3093
-jsp.error.xml.closeQuoteMissingInXMLDecl = XML\u5ba3\u8a00\u4e2d\u306e\"{0}\"\u306b\u7d9a\u304f\u5024\u306e\u4e2d\u306e\u6700\u5f8c\u306e\u30af\u30aa\u30fc\u30c8\u304c\u3042\u308a\u307e\u305b\u3093
-jsp.error.xml.invalidHighSurrogate = UTF-8\u30b7\u30fc\u30b1\u30f3\u30b9\u306e\u30cf\u30a4\u30b5\u30ed\u30b2\u30fc\u30c8\u30d3\u30c3\u30c8\u306f0x10\u3092\u8d8a\u3048\u3066\u306f\u3044\u3051\u307e\u305b\u3093\u304c\u30010x{0}\u304c\u898b\u3064\u304b\u308a\u307e\u3057\u305f
-jsp.error.multiple.jsp = \u8907\u6570\u306e\u4ed5\u69d8\u3092\u6e80\u305f\u3059\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
-jsp.error.jspoutput.conflict=&lt;jsp:output&gt;: \"{0}\"\u306b\u7570\u306a\u308b\u5024\u3092\u8907\u6570\u56de\u6307\u5b9a\u3059\u308b\u306e\u306f\u7121\u52b9\u3067\u3059 (\u65e7: {1}, \u65b0: {2})
-jsp.error.jspoutput.doctypenamesystem=&lt;jsp:output&gt;: 'doctype-root-element' \u53ca\u3073 'doctype-system' \u5c5e\u6027\u306f\u540c\u6642\u306b\u6307\u5b9a\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.jspoutput.doctypepulicsystem=&lt;jsp:output&gt;: 'doctype-public'\u5c5e\u6027\u3092\u6307\u5b9a\u3059\u308b\u5834\u5408\u306f\u3001'doctype-system' \u5c5e\u6027\u3082\u6307\u5b9a\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.jspoutput.nonemptybody=&lt;jsp:output&gt; \u30dc\u30c7\u30a3\u3092\u6301\u3063\u3066\u306f\u3044\u3051\u307e\u305b\u3093
-jsp.error.jspoutput.invalidUse=&lt;jsp:output&gt; \u6a19\u6e96\u69cb\u6587\u306e\u4e2d\u3067\u4f7f\u7528\u3057\u3066\u306f\u3044\u3051\u307e\u305b\u3093
-jsp.error.attributes.not.allowed = {0} \u306f\u5c5e\u6027\u3092\u6301\u3064\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
-jsp.error.tagfile.badSuffix=\u30bf\u30b0\u30d5\u30a1\u30a4\u30eb\u30d1\u30b9 {0} \u306e\u4e2d\u306b\".tag\" \u62e1\u5f35\u5b50\u304c\u3042\u308a\u307e\u305b\u3093
-jsp.error.tagfile.illegalPath=\u4e0d\u6b63\u306a\u30bf\u30b0\u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u3067\u3059: {0}\u3001\u3053\u308c\u306f\"/WEB-INF/tags\"\u53c8\u306f\"/META-INF/tags\"\u3067\u59cb\u307e\u3089\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.plugin.wrongRootElement={0} \u306e\u4e2d\u306e\u30eb\u30fc\u30c8\u8981\u7d20\u306e\u540d\u524d\u306f {1} \u3067\u306f\u3042\u308a\u307e\u305b\u3093
-jsp.error.attribute.invalidPrefix=\u5c5e\u6027\u306e\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9 {0} \u306f\u3069\u306e\u53d6\u308a\u8fbc\u307e\u308c\u305f\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u3082\u5bfe\u5fdc\u3057\u307e\u305b\u3093
-jsp.error.nested.jspattribute=jsp:attribute\u6a19\u6e96\u30a2\u30af\u30b7\u30e7\u30f3\u306f\u5225\u306ejsp:attribute\u6a19\u6e96\u30a2\u30af\u30b7\u30e7\u30f3\u306e\u7bc4\u56f2\u5185\u3067\u30cd\u30b9\u30c8\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
-jsp.error.nested.jspbody=jsp:body\u6a19\u6e96\u30a2\u30af\u30b7\u30e7\u30f3\u306f\u5225\u306ejsp:body\u53c8\u306fjsp:attribute\u6a19\u6e96\u30a2\u30af\u30b7\u30e7\u30f3\u306e\u7bc4\u56f2\u5185\u3067\u30cd\u30b9\u30c8\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
-jsp.error.variable.either.name=name-given\u53c8\u306fname-from-attribute\u5c5e\u6027\u306e\u3069\u3061\u3089\u304b\u3092variable\u6307\u793a\u5b50\u306e\u4e2d\u3067\u6307\u5b9a\u3055\u308c\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.variable.both.name=variable\u6307\u793a\u5b50\u4e2d\u3067name-given\u3068name-from-attribute\u5c5e\u6027\u306e\u4e21\u65b9\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093
-jsp.error.variable.alias=name-from-attribute\u304a\u3088\u3073alias\u5c5e\u6027\u306e\u4e21\u65b9\u3092variable\u6307\u793a\u5b50\u4e2d\u306b\u6307\u5b9a\u3059\u308b\u3001\u53c8\u306f\u3069\u3061\u3089\u3082\u6307\u5b9a\u3057\u306a\u3044\u3053\u3068\u304c\u3067\u304d\u307e\u3059
-jsp.error.attribute.null_name=\u7a7a\u306e\u5c5e\u6027\u540d\u3067\u3059
-jsp.error.jsptext.badcontent=\'&lt;\'\u304c&lt;jsp:text&gt;\u306e\u30dc\u30c7\u30a3\u306e\u4e2d\u306b\u73fe\u308c\u308b\u6642\u306f\u3001CDATA\u306e\u4e2d\u306b\u96a0\u853d\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.jsproot.version.invalid=\u7121\u52b9\u306a\u30d0\u30fc\u30b8\u30e7\u30f3\u756a\u53f7\u3067\u3059: \"{0}\"\u3001\"1.2\" \u53c8\u306f \"2.0\"\u3000\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.noFunctionPrefix=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u540d\u524d\u7a7a\u9593\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u306a\u3044\u6642\u306b\u306f\u3001\u95a2\u6570 {0} \u306f\u30d7\u30ea\u30d5\u30a3\u30af\u30b9\u4ed8\u304d\u3067\u4f7f\u7528\u3057\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093
-jsp.error.noFunction=\u95a2\u6570 {0} \u3092\u6307\u5b9a\u3055\u308c\u305f\u30d7\u30ea\u30d5\u30a3\u30af\u30b9\u3067\u914d\u7f6e\u3067\u304d\u307e\u305b\u3093
-jsp.error.noFunctionMethod=\u95a2\u6570 \"{1}\" \u306e\u30e1\u30bd\u30c3\u30c9 \"{0}\" \u304c \"{2}\" \u4e2d\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093
-jsp.error.function.classnotfound=TLD\u306e\u4e2d\u3067\u95a2\u6570 {1} \u306b\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u30af\u30e9\u30b9 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093: {2}
-jsp.error.signature.classnotfound=TLD\u306e\u4e2d\u306e\u30e1\u30bd\u30c3\u30c9\u30b7\u30b0\u30cd\u30c1\u30e3\u3067\u95a2\u6570 {1} \u306b\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u30af\u30e9\u30b9 {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 {2}
-jsp.error.text.has_subelement=&lt;jsp:text&gt; \u306f\u526f\u8981\u7d20\u3092\u6301\u3063\u3066\u306f\u3044\u3051\u307e\u305b\u3093
-jsp.error.data.file.read=\u30d5\u30a1\u30a4\u30eb \"{0}\" \u3092\u8aad\u307f\u8fbc\u307f\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f
-jsp.error.prefix.refined=\u30d7\u30ea\u30d5\u30a3\u30c3\u30af\u30b9 {0} \u304c\u73fe\u5728\u306e\u30b9\u30b3\u30fc\u30d7\u4e2d\u3067\u65e2\u306b {2} \u3068\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u306e\u3067 {1} \u306b\u518d\u5b9a\u7fa9\u3057\u307e\u3057\u305f
-jsp.error.nested_jsproot=\u5165\u308c\u5b50\u306b\u306a\u3063\u305f &lt;jsp:root&gt; \u3067\u3059
-jsp.error.unbalanced.endtag=\u7d42\u4e86\u30bf\u30b0 \"&lt;/{0}\" \u306e\u5bfe\u5fdc\u304c\u53d6\u308c\u3066\u3044\u307e\u305b\u3093
-jsp.error.invalid.bean=useBean\u306e\u30af\u30e9\u30b9\u5c5e\u6027 {0} \u306e\u5024\u304c\u7121\u52b9\u3067\u3059
-jsp.error.prefix.use_before_dcl=\u3053\u306e\u30bf\u30b0\u6307\u793a\u5b50\u3067\u6307\u5b9a\u3055\u308c\u3066\u3044\u308b\u30d7\u30ea\u30d5\u30a3\u30c3\u30af\u30b9 {0} \u306f\u3001\u3059\u3067\u306b\u30d5\u30a1\u30a4\u30eb {1} \u306e {2} \u884c\u76ee\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3067\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059
-

Modified: trunk/src/main/java/org/apache/jasper/runtime/HttpJspBase.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/runtime/HttpJspBase.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/runtime/HttpJspBase.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.runtime;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.IOException;
 
 import javax.servlet.ServletConfig;
@@ -25,10 +27,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.jsp.HttpJspPage;
-import javax.servlet.jsp.JspFactory;
 
-import org.apache.jasper.compiler.Localizer;
-
 /**
  * This is the super class of all JSP-generated servlets.
  *
@@ -53,7 +52,7 @@
     }
     
     public String getServletInfo() {
-	return Localizer.getMessage("jsp.engine.info");
+	return MESSAGES.jspInfo();
     }
 
     public final void destroy() {

Modified: trunk/src/main/java/org/apache/jasper/runtime/JspContextWrapper.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/runtime/JspContextWrapper.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/runtime/JspContextWrapper.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.runtime;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.IOException;
 import java.io.Writer;
 import java.util.ArrayList;
@@ -42,7 +44,6 @@
 import javax.servlet.jsp.tagext.BodyContent;
 import javax.servlet.jsp.tagext.VariableInfo;
 
-import org.apache.jasper.compiler.Localizer;
 import org.apache.jasper.util.Enumerator;
 
 /**
@@ -101,8 +102,7 @@
 	public Object getAttribute(String name) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		return pageAttributes.get(name);
@@ -111,8 +111,7 @@
 	public Object getAttribute(String name, int scope) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		if (scope == PAGE_SCOPE) {
@@ -125,8 +124,7 @@
 	public void setAttribute(String name, Object value) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		if (value != null) {
@@ -139,8 +137,7 @@
 	public void setAttribute(String name, Object value, int scope) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		if (scope == PAGE_SCOPE) {
@@ -157,8 +154,7 @@
 	public Object findAttribute(String name) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		Object o = pageAttributes.get(name);
@@ -180,8 +176,7 @@
 	public void removeAttribute(String name) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		pageAttributes.remove(name);
@@ -195,8 +190,7 @@
 	public void removeAttribute(String name, int scope) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		if (scope == PAGE_SCOPE) {
@@ -209,8 +203,7 @@
 	public int getAttributesScope(String name) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		if (pageAttributes.get(name) != null) {

Modified: trunk/src/main/java/org/apache/jasper/runtime/JspRuntimeLibrary.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/runtime/JspRuntimeLibrary.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/runtime/JspRuntimeLibrary.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.runtime;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.beans.PropertyEditor;
 import java.beans.PropertyEditorManager;
 import java.io.ByteArrayOutputStream;
@@ -39,7 +41,6 @@
 
 import org.apache.jasper.Constants;
 import org.apache.jasper.JasperException;
-import org.apache.jasper.compiler.Localizer;
 
 /**
  * Bunch of util methods that are used by code generated for useBean,
@@ -336,8 +337,7 @@
 	    if ( method != null ) {
 		if (type.isArray()) {
                     if (request == null) {
-			throw new JasperException(
-		            Localizer.getMessage("jsp.error.beans.setproperty.noindexset"));
+			throw new JasperException(MESSAGES.failedSettingBeanIndexedProperty());
                     }
 		    Class t = type.getComponentType();
 		    String[] values = request.getParameterValues(param);
@@ -362,16 +362,9 @@
 	}
         if (!ignoreMethodNF && (method == null)) {
             if (type == null) {
-		throw new JasperException(
-                    Localizer.getMessage("jsp.error.beans.noproperty",
-					 prop,
-					 bean.getClass().getName()));
+                throw new JasperException(MESSAGES.cannotFindBeanProperty(prop, bean.getClass().getName()));
             } else {
-		throw new JasperException(
-	            Localizer.getMessage("jsp.error.beans.nomethod.setproperty",
-					 prop,
-					 type.getName(),
-					 bean.getClass().getName()));
+                throw new JasperException(MESSAGES.cannotSetBeanProperty(prop, type.getName(), bean.getClass().getName()));
             }
         }
     }
@@ -600,8 +593,7 @@
     public static Object handleGetProperty(Object o, String prop)
     throws JasperException {
         if (o == null) {
-	    throw new JasperException(
-	            Localizer.getMessage("jsp.error.beans.nullbean"));
+	    throw new JasperException(MESSAGES.nullBean());
         }
 	Object value = null;
         try {
@@ -783,25 +775,16 @@
 		}
             } else {        
                 // just in case introspection silently fails.
-                throw new JasperException(
-                    Localizer.getMessage("jsp.error.beans.nobeaninfo",
-					 beanClass.getName()));
+                throw new JasperException(MESSAGES.cannotFindBeanInfo(beanClass.getName()));
             }
         } catch (Exception ex) {
             throw new JasperException (ex);
         }
         if (method == null) {
             if (type == null) {
-		throw new JasperException(
-                        Localizer.getMessage("jsp.error.beans.noproperty",
-					     prop,
-					     beanClass.getName()));
+                throw new JasperException(MESSAGES.cannotFindBeanProperty(prop, beanClass.getName()));
             } else {
-		throw new JasperException(
-		    Localizer.getMessage("jsp.error.beans.nomethod.setproperty",
-					 prop,
-					 type.getName(),
-					 beanClass.getName()));
+                throw new JasperException(MESSAGES.cannotSetBeanProperty(prop, type.getName(), beanClass.getName()));
             }
         }
         return method;
@@ -827,22 +810,16 @@
                 }
             } else {        
                 // just in case introspection silently fails.
-		throw new JasperException(
-                    Localizer.getMessage("jsp.error.beans.nobeaninfo",
-					 beanClass.getName()));
+		throw new JasperException(MESSAGES.cannotFindBeanInfo(beanClass.getName()));
 	    }
 	} catch (Exception ex) {
 	    throw new JasperException (ex);
 	}
         if (method == null) {
             if (type == null) {
-		throw new JasperException(
-                    Localizer.getMessage("jsp.error.beans.noproperty", prop,
-					 beanClass.getName()));
+                throw new JasperException(MESSAGES.cannotFindBeanProperty(prop, beanClass.getName()));
             } else {
-		throw new JasperException(
-                    Localizer.getMessage("jsp.error.beans.nomethod", prop,
-					 beanClass.getName()));
+                throw new JasperException(MESSAGES.cannotGetBeanProperty(prop, beanClass.getName()));
             }
         }
 
@@ -862,10 +839,8 @@
 	    pe.setAsText(attrValue);
 	    return pe.getValue();
 	} catch (Exception ex) {
-	    throw new JasperException(
-                Localizer.getMessage("jsp.error.beans.property.conversion",
-				     attrValue, attrClass.getName(), attrName,
-				     ex.getMessage()));
+	    throw new JasperException(MESSAGES.errorConvertingBeanProperty
+	            (attrValue, attrClass.getName(), attrName, ex.getMessage()));
 	}
     }
 
@@ -880,14 +855,11 @@
 		propEditor.setAsText(attrValue);
 		return propEditor.getValue();
 	    } else {
-		throw new IllegalArgumentException(
-                    Localizer.getMessage("jsp.error.beans.propertyeditor.notregistered"));
+		throw MESSAGES.noRegisteredPropertyEditor();
 	    }
 	} catch (IllegalArgumentException ex) {
-	    throw new JasperException(
-                Localizer.getMessage("jsp.error.beans.property.conversion",
-				     attrValue, attrClass.getName(), attrName,
-				     ex.getMessage()));
+	    throw new JasperException(MESSAGES.errorConvertingBeanProperty
+                (attrValue, attrClass.getName(), attrName, ex.getMessage()));
 	}
     }
 

Modified: trunk/src/main/java/org/apache/jasper/runtime/JspWriterImpl.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/runtime/JspWriterImpl.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/runtime/JspWriterImpl.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.runtime;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.IOException;
 import java.io.Writer;
 import java.security.AccessController;
@@ -26,7 +28,6 @@
 import javax.servlet.jsp.JspWriter;
 
 import org.apache.jasper.Constants;
-import org.apache.jasper.compiler.Localizer;
 import org.apache.jasper.security.SecurityUtil;
 
 /**
@@ -126,43 +127,28 @@
         }
     }
     
-    private String getLocalizeMessage(final String message){
-        if (SecurityUtil.isPackageProtectionEnabled()){
-            return (String)AccessController.doPrivileged(new PrivilegedAction(){
-                public Object run(){
-                    return Localizer.getMessage(message); 
-                }
-            });
-        } else {
-            return Localizer.getMessage(message);
-        }
-    }
-    
     /**
      * Discard the output buffer.
      */
     public final void clear() throws IOException {
         if ((bufferSize == 0) && (out != null))
             // clear() is illegal after any unbuffered output (JSP.5.5)
-            throw new IllegalStateException(
-                    getLocalizeMessage("jsp.error.ise_on_clear"));
+            throw MESSAGES.cannotClearWithNoBuffer();
         if (flushed)
-            throw new IOException(
-                    getLocalizeMessage("jsp.error.attempt_to_clear_flushed_buffer"));
+            throw MESSAGES.cannotClearAfterFlush();
         ensureOpen();
         nextChar = 0;
     }
     
     public void clearBuffer() throws IOException {
         if (bufferSize == 0)
-            throw new IllegalStateException(
-                    getLocalizeMessage("jsp.error.ise_on_clear"));
+            throw MESSAGES.cannotClearWithNoBuffer();
         ensureOpen();
         nextChar = 0;
     }
     
     private final void bufferOverflow() throws IOException {
-        throw new IOException(getLocalizeMessage("jsp.error.overflow"));
+        throw MESSAGES.bufferOverflow();
     }
     
     /**

Modified: trunk/src/main/java/org/apache/jasper/runtime/PageContextImpl.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/runtime/PageContextImpl.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/runtime/PageContextImpl.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.runtime;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.IOException;
 import java.io.Writer;
 import java.security.AccessController;
@@ -48,7 +50,6 @@
 import javax.servlet.jsp.tagext.BodyContent;
 
 import org.apache.jasper.Constants;
-import org.apache.jasper.compiler.Localizer;
 import org.apache.jasper.el.ELContextImpl;
 import org.apache.jasper.el.ExpressionEvaluatorImpl;
 import org.apache.jasper.el.FunctionMapperImpl;
@@ -188,8 +189,7 @@
 				((JspWriterImpl) out).flushBuffer();
 			}
 		} catch (IOException ex) {
-            IllegalStateException ise = new IllegalStateException(Localizer.getMessage("jsp.error.flush"), ex);
-            throw ise;
+            throw MESSAGES.errorFlushingData(ex);
 		} finally {
 		    servlet = null;
 		    config = null;
@@ -209,8 +209,7 @@
 	public Object getAttribute(final String name) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		if (SecurityUtil.isPackageProtectionEnabled()) {
@@ -232,8 +231,7 @@
 	public Object getAttribute(final String name, final int scope) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		if (SecurityUtil.isPackageProtectionEnabled()) {
@@ -258,8 +256,7 @@
 
 		case SESSION_SCOPE:
 			if (session == null) {
-				throw new IllegalStateException(Localizer
-						.getMessage("jsp.error.page.noSession"));
+				throw MESSAGES.cannotUseSessionScope();
 			}
 			return session.getAttribute(name);
 
@@ -267,15 +264,14 @@
 			return context.getAttribute(name);
 
 		default:
-			throw new IllegalArgumentException("Invalid scope");
+			throw MESSAGES.invalidScope();
 		}
 	}
 
 	public void setAttribute(final String name, final Object attribute) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		if (SecurityUtil.isPackageProtectionEnabled()) {
@@ -301,8 +297,7 @@
 	public void setAttribute(final String name, final Object o, final int scope) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		if (SecurityUtil.isPackageProtectionEnabled()) {
@@ -331,8 +326,7 @@
 
 			case SESSION_SCOPE:
 				if (session == null) {
-					throw new IllegalStateException(Localizer
-							.getMessage("jsp.error.page.noSession"));
+					throw MESSAGES.cannotUseSessionScope();
 				}
 				session.setAttribute(name, o);
 				break;
@@ -342,7 +336,7 @@
 				break;
 
 			default:
-				throw new IllegalArgumentException("Invalid scope");
+				throw MESSAGES.invalidScope();
 			}
 		} else {
 			removeAttribute(name, scope);
@@ -352,8 +346,7 @@
 	public void removeAttribute(final String name, final int scope) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 		if (SecurityUtil.isPackageProtectionEnabled()) {
 			AccessController.doPrivileged(new PrivilegedAction() {
@@ -379,8 +372,7 @@
 
 		case SESSION_SCOPE:
 			if (session == null) {
-				throw new IllegalStateException(Localizer
-						.getMessage("jsp.error.page.noSession"));
+				throw MESSAGES.cannotUseSessionScope();
 			}
 			session.removeAttribute(name);
 			break;
@@ -390,15 +382,14 @@
 			break;
 
 		default:
-			throw new IllegalArgumentException("Invalid scope");
+			throw MESSAGES.invalidScope();
 		}
 	}
 
 	public int getAttributesScope(final String name) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		if (SecurityUtil.isPackageProtectionEnabled()) {
@@ -441,8 +432,7 @@
 			return AccessController.doPrivileged(new PrivilegedAction() {
 				public Object run() {
 					if (name == null) {
-						throw new NullPointerException(Localizer
-								.getMessage("jsp.error.attribute.null_name"));
+						throw MESSAGES.nullAttributeName();
 					}
 
 					return doFindAttribute(name);
@@ -450,8 +440,7 @@
 			});
 		} else {
 			if (name == null) {
-				throw new NullPointerException(Localizer
-						.getMessage("jsp.error.attribute.null_name"));
+				throw MESSAGES.nullAttributeName();
 			}
 
 			return doFindAttribute(name);
@@ -505,8 +494,7 @@
 
 		case SESSION_SCOPE:
 			if (session == null) {
-				throw new IllegalStateException(Localizer
-						.getMessage("jsp.error.page.noSession"));
+				throw MESSAGES.cannotUseSessionScope();
 			}
 			return session.getAttributeNames();
 
@@ -514,15 +502,14 @@
 			return context.getAttributeNames();
 
 		default:
-			throw new IllegalArgumentException("Invalid scope");
+			throw MESSAGES.invalidScope();
 		}
 	}
 
 	public void removeAttribute(final String name) {
 
 		if (name == null) {
-			throw new NullPointerException(Localizer
-					.getMessage("jsp.error.attribute.null_name"));
+			throw MESSAGES.nullAttributeName();
 		}
 
 		if (SecurityUtil.isPackageProtectionEnabled()) {
@@ -685,10 +672,7 @@
 		try {
 			out.clear();
 		} catch (IOException ex) {
-			IllegalStateException ise = new IllegalStateException(Localizer
-					.getMessage("jsp.error.attempt_to_clear_flushed_buffer"));
-			ise.initCause(ex);
-			throw ise;
+			throw MESSAGES.illegalClearAfterFlush(ex);
 		}
 
 		// Make sure that the response object is not the wrapper for include

Modified: trunk/src/main/java/org/apache/jasper/servlet/JspServlet.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/servlet/JspServlet.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/servlet/JspServlet.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.servlet;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.IOException;
 import java.lang.reflect.Constructor;
 
@@ -31,10 +33,9 @@
 import org.apache.jasper.EmbeddedServletOptions;
 import org.apache.jasper.Options;
 import org.apache.jasper.compiler.JspRuntimeContext;
-import org.apache.jasper.compiler.Localizer;
 import org.apache.jasper.security.SecurityUtil;
 import org.apache.tomcat.PeriodicEventListener;
-import org.jboss.logging.Logger;
+import org.jboss.web.JasperLogger;
 
 /**
  * The JSP engine (a.k.a Jasper).
@@ -54,9 +55,6 @@
  */
 public class JspServlet extends HttpServlet implements PeriodicEventListener {
 
-    // Logger
-    private Logger log = Logger.getLogger(JspServlet.class);
-
     private ServletContext context;
     private ServletConfig config;
     private Options options;
@@ -91,8 +89,7 @@
                     Object[] args = { config, context };
                     options = (Options) ctor.newInstance(args);
                 } catch (Throwable e) {
-                    // Need to localize this.
-                    log.warn("Failed to load engineOptionsClass", e);
+                    JasperLogger.SERVLET_LOGGER.failedLoadingOptions(engineOptionsName, e);
                     // Use the default Options implementation
                     options = new EmbeddedServletOptions(config, context);
                 }
@@ -102,12 +99,6 @@
             }
         }
         rctxt = new JspRuntimeContext(context, options);
-        
-        if (log.isDebugEnabled()) {
-            log.debug(Localizer.getMessage("jsp.message.scratch.dir.is",
-                    options.getScratchDir().toString()));
-            log.debug(Localizer.getMessage("jsp.message.dont.modify.servlets"));
-        }
     }
 
 
@@ -264,10 +255,6 @@
     }
 
     public void destroy() {
-        if (log.isDebugEnabled()) {
-            log.debug("JspServlet.destroy()");
-        }
-
         rctxt.destroy();
     }
 
@@ -298,7 +285,7 @@
                         if (includeRequestUri != null) {
                             // This file was included. Throw an exception as
                             // a response.sendError() will be ignored
-                            String msg = Localizer.getMessage("jsp.error.file.not.found", jspUri);
+                            String msg = MESSAGES.fileNotFound(jspUri);
                             // Strictly, filtering this is an application
                             // responsibility but just in case...
                             throw new ServletException(SecurityUtil.filter(msg));
@@ -308,9 +295,7 @@
                                         HttpServletResponse.SC_NOT_FOUND,
                                         request.getRequestURI());
                             } catch (IllegalStateException ise) {
-                                log.error(Localizer.getMessage(
-                                        "jsp.error.file.not.found",
-                                        jspUri));
+                                JasperLogger.SERVLET_LOGGER.fileNotFound(jspUri);
                             }
                         }
                         return;

Modified: trunk/src/main/java/org/apache/jasper/servlet/JspServletWrapper.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/servlet/JspServletWrapper.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/servlet/JspServletWrapper.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,6 +17,8 @@
 
 package org.apache.jasper.servlet;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.net.URL;
@@ -37,12 +39,10 @@
 import org.apache.jasper.compiler.ErrorDispatcher;
 import org.apache.jasper.compiler.JavacErrorDetail;
 import org.apache.jasper.compiler.JspRuntimeContext;
-import org.apache.jasper.compiler.Localizer;
 import org.apache.jasper.runtime.InstanceManagerFactory;
 import org.apache.jasper.runtime.JspSourceDependent;
 import org.apache.tomcat.InstanceManager;
-import org.jboss.logging.Logger;
-import org.jboss.logging.Logger;
+import org.jboss.web.JasperLogger;
 
 /**
  * The JSP engine (a.k.a Jasper).
@@ -64,9 +64,6 @@
 
 public class JspServletWrapper {
 
-    // Logger
-    private Logger log = Logger.getLogger(JspServletWrapper.class);
-
     private Servlet theServlet;
     private String jspUri;
     private Class tagHandlerClass;
@@ -291,9 +288,8 @@
             if ((available > 0L) && (available < Long.MAX_VALUE)) {
                 if (available > System.currentTimeMillis()) {
                     response.setDateHeader("Retry-After", available);
-                    response.sendError
-                        (HttpServletResponse.SC_SERVICE_UNAVAILABLE,
-                         Localizer.getMessage("jsp.error.unavailable"));
+                    response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE,
+                         MESSAGES.unavailable());
                     return;
                 } else {
                     // Wait period has expired. Reset.
@@ -423,8 +419,7 @@
                 instanceManager.destroyInstance(theServlet);
             } catch (Exception e) {
                 // Log any exception, since it can't be passed along
-                log.error(Localizer.getMessage("jsp.error.file.not.found",
-                        e.getMessage()), e);
+                JasperLogger.SERVLET_LOGGER.errorDestroyingServletInstance(e);
             }
         }
     }
@@ -495,16 +490,11 @@
                 }
 
                 if (options.getDisplaySourceFragment()) {
-                    return new JasperException(Localizer.getMessage
-                            ("jsp.exception", detail.getJspFileName(),
-                                    "" + jspLineNumber) +
-                                    "\n\n" + detail.getJspExtract() +
-                                    "\n\nStacktrace:", ex);
+                    return new JasperException(MESSAGES.jspExceptionWithDetails(detail.getJspFileName(), 
+                            jspLineNumber, detail.getJspExtract()), ex);
                     
                 } else {
-                    return new JasperException(Localizer.getMessage
-                            ("jsp.exception", detail.getJspFileName(),
-                                    "" + jspLineNumber), ex);
+                    return new JasperException(MESSAGES.jspException(detail.getJspFileName(), jspLineNumber), ex);
                 }
             }
         } catch (Exception je) {

Modified: trunk/src/main/java/org/apache/jasper/xmlparser/ASCIIReader.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/xmlparser/ASCIIReader.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/xmlparser/ASCIIReader.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,10 +17,11 @@
 
 package org.apache.jasper.xmlparser;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.InputStream;
 import java.io.IOException;
 import java.io.Reader;
-import org.apache.jasper.compiler.Localizer;
 
 /**
  * A simple ASCII byte reader. This is an optimized reader for reading
@@ -86,8 +87,7 @@
     public int read() throws IOException {
         int b0 = fInputStream.read();
         if (b0 > 0x80) {
-            throw new IOException(Localizer.getMessage("jsp.error.xml.invalidASCII",
-						       Integer.toString(b0)));
+            throw MESSAGES.invalidByteRead(b0);
         }
         return b0;
     } // read():int
@@ -114,8 +114,7 @@
         for (int i = 0; i < count; i++) {
             int b0 = (0xff & fBuffer[i]); // Convert to unsigned
             if (b0 > 0x80) {
-                throw new IOException(Localizer.getMessage("jsp.error.xml.invalidASCII",
-							   Integer.toString(b0)));
+                throw MESSAGES.invalidByteRead(b0);
             }
             ch[offset + i] = (char)b0;
         }

Modified: trunk/src/main/java/org/apache/jasper/xmlparser/UTF8Reader.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/xmlparser/UTF8Reader.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/xmlparser/UTF8Reader.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -17,11 +17,12 @@
 
 package org.apache.jasper.xmlparser;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.InputStream;
 import java.io.IOException;
 import java.io.Reader;
 import java.io.UTFDataFormatException;
-import org.apache.jasper.compiler.Localizer;
 
 /**
  * @author Andy Clark, IBM
@@ -31,9 +32,6 @@
 public class UTF8Reader
     extends Reader {
 
-    private org.jboss.logging.Logger log=
-        org.jboss.logging.Logger.getLogger( UTF8Reader.class );
-    
     //
     // Constants
     //
@@ -41,11 +39,6 @@
     /** Default byte buffer size (2048). */
     public static final int DEFAULT_BUFFER_SIZE = 2048;
 
-    // debugging
-
-    /** Debug read. */
-    private static final boolean DEBUG_READ = false;
-
     //
     // Data
     //
@@ -207,11 +200,6 @@
             fSurrogate = -1;
         }
 
-        // return character
-        if (DEBUG_READ) {
-            if (log.isDebugEnabled())
-                log.debug("read(): 0x"+Integer.toHexString(c));
-        }
         return c;
 
     } // read():int
@@ -492,11 +480,6 @@
             invalidByte(1, 1, b0);
         }
 
-        // return number of characters converted
-        if (DEBUG_READ) {
-            if (log.isDebugEnabled())
-                log.debug("read(char[],"+offset+','+length+"): count="+count);
-        }
         return count;
 
     } // read(char[],int,int)
@@ -565,9 +548,7 @@
      *                          or if some other I/O error occurs
      */
     public void mark(int readAheadLimit) throws IOException {
-	throw new IOException(
-                Localizer.getMessage("jsp.error.xml.operationNotSupported",
-				     "mark()", "UTF-8"));
+	throw MESSAGES.markNotSupportedInUtf8Reader();
     }
 
     /**
@@ -606,30 +587,18 @@
     /** Throws an exception for expected byte. */
     private void expectedByte(int position, int count)
         throws UTFDataFormatException {
-
-        throw new UTFDataFormatException(
-                Localizer.getMessage("jsp.error.xml.expectedByte",
-				     Integer.toString(position),
-				     Integer.toString(count)));
-
+        throw new UTFDataFormatException(MESSAGES.errorUtf8ExpectedByte(position, count));
     } // expectedByte(int,int,int)
 
     /** Throws an exception for invalid byte. */
     private void invalidByte(int position, int count, int c) 
         throws UTFDataFormatException {
-
-        throw new UTFDataFormatException(
-                Localizer.getMessage("jsp.error.xml.invalidByte",
-				     Integer.toString(position),
-				     Integer.toString(count)));
+        throw new UTFDataFormatException(MESSAGES.errorUtf8InvalidByte(position, count));
     } // invalidByte(int,int,int,int)
 
     /** Throws an exception for invalid surrogate bits. */
     private void invalidSurrogate(int uuuuu) throws UTFDataFormatException {
-        
-        throw new UTFDataFormatException(
-                Localizer.getMessage("jsp.error.xml.invalidHighSurrogate",
-				     Integer.toHexString(uuuuu)));
+        throw new UTFDataFormatException(MESSAGES.errorUtf8InvalidHighSurrogate(Integer.toHexString(uuuuu)));
     } // invalidSurrogate(int)
 
 } // class UTF8Reader

Modified: trunk/src/main/java/org/apache/jasper/xmlparser/XMLEncodingDetector.java
===================================================================
--- trunk/src/main/java/org/apache/jasper/xmlparser/XMLEncodingDetector.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/apache/jasper/xmlparser/XMLEncodingDetector.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -25,6 +25,8 @@
 
 package org.apache.jasper.xmlparser;
 
+import static org.jboss.web.JasperMessages.MESSAGES;
+
 import java.io.EOFException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
@@ -224,8 +226,7 @@
                     return new UCSReader(inputStream, UCSReader.UCS4LE);
                 }
             } else {
-                err.jspError("jsp.error.xml.encodingByteOrderUnsupported",
-			     encoding);
+                err.jspError(MESSAGES.unsupportedByteOrderForEncoding(encoding));
             }
         }
         if (ENCODING.equals("ISO-10646-UCS-2")) {
@@ -237,8 +238,7 @@
                     return new UCSReader(inputStream, UCSReader.UCS2LE);
                 }
             } else {
-                err.jspError("jsp.error.xml.encodingByteOrderUnsupported",
-			     encoding);
+                err.jspError(MESSAGES.unsupportedByteOrderForEncoding(encoding));
             }
         }
 
@@ -246,7 +246,7 @@
         boolean validIANA = XMLChar.isValidIANAEncoding(encoding);
         boolean validJava = XMLChar.isValidJavaEncoding(encoding);
         if (!validIANA || (fAllowJavaEncodings && !validJava)) {
-            err.jspError("jsp.error.xml.encodingDeclInvalid", encoding);
+            err.jspError(MESSAGES.invalidEncodingDeclared(encoding));
             // NOTE: AndyH suggested that, on failure, we use ISO Latin 1
             //       because every byte is a valid ISO Latin 1 character.
             //       It may not translate correctly but if we failed on
@@ -264,7 +264,7 @@
             if (fAllowJavaEncodings) {
 		javaEncoding = encoding;
             } else {
-                err.jspError("jsp.error.xml.encodingDeclInvalid", encoding);
+                err.jspError(MESSAGES.invalidEncodingDeclared(encoding));
                 // see comment above.
                 javaEncoding = "ISO8859_1";
             }
@@ -1329,10 +1329,11 @@
                 case STATE_VERSION: {
                     if (name == fVersionSymbol) {
                         if (!sawSpace) {
-                            reportFatalError(scanningTextDecl
-                                       ? "jsp.error.xml.spaceRequiredBeforeVersionInTextDecl"
-                                       : "jsp.error.xml.spaceRequiredBeforeVersionInXMLDecl",
-                                             null);
+                            if (scanningTextDecl) {
+                                MESSAGES.requiredSpaceBeforeVersionInTextDeclaration();
+                            } else {
+                                MESSAGES.requiredSpaceBeforeVersionInXmlDeclaration();
+                            }
                         }
                         version = fString.toString();
                         state = STATE_ENCODING;
@@ -1340,38 +1341,38 @@
                             // REVISIT: XML REC says we should throw an error
 			    // in such cases.
                             // some may object the throwing of fatalError.
-                            err.jspError("jsp.error.xml.versionNotSupported",
-					 version);
+                            err.jspError(MESSAGES.unsupportedXmlVersion(version));
                         }
                     } else if (name == fEncodingSymbol) {
                         if (!scanningTextDecl) {
-                            err.jspError("jsp.error.xml.versionInfoRequired");
+                            err.jspError(MESSAGES.noXmlVersion());
                         }
                         if (!sawSpace) {
-                            reportFatalError(scanningTextDecl
-                                      ? "jsp.error.xml.spaceRequiredBeforeEncodingInTextDecl"
-                                      : "jsp.error.xml.spaceRequiredBeforeEncodingInXMLDecl",
-                                             null);
+                            if (scanningTextDecl) {
+                                MESSAGES.requiredSpaceBeforeEncodingInTextDeclaration();
+                            } else {
+                                MESSAGES.requiredSpaceBeforeEncodingInXmlDeclaration();
+                            }
                         }
                         encoding = fString.toString();
                         state = scanningTextDecl ? STATE_DONE : STATE_STANDALONE;
                     } else {
                         if (scanningTextDecl) {
-                            err.jspError("jsp.error.xml.encodingDeclRequired");
+                            err.jspError(MESSAGES.requiredEncodingDeclaration());
+                        } else {
+                            err.jspError(MESSAGES.requiredVersionDeclaration());
                         }
-                        else {
-                            err.jspError("jsp.error.xml.versionInfoRequired");
-                        }
                     }
                     break;
                 }
                 case STATE_ENCODING: {
                     if (name == fEncodingSymbol) {
                         if (!sawSpace) {
-                            reportFatalError(scanningTextDecl
-                                      ? "jsp.error.xml.spaceRequiredBeforeEncodingInTextDecl"
-                                      : "jsp.error.xml.spaceRequiredBeforeEncodingInXMLDecl",
-                                             null);
+                            if (scanningTextDecl) {
+                                err.jspError(MESSAGES.requiredSpaceBeforeEncodingInTextDeclaration());
+                            } else {
+                                err.jspError(MESSAGES.requiredSpaceBeforeEncodingInXmlDeclaration());
+                            }
                         }
                         encoding = fString.toString();
                         state = scanningTextDecl ? STATE_DONE : STATE_STANDALONE;
@@ -1379,62 +1380,62 @@
                         //       entity scanner
                     } else if (!scanningTextDecl && name == fStandaloneSymbol) {
                         if (!sawSpace) {
-                            err.jspError("jsp.error.xml.spaceRequiredBeforeStandalone");
+                            err.jspError(MESSAGES.requiredSpaceBeforeStandaloneInXmlDeclaration());
                         }
                         standalone = fString.toString();
                         state = STATE_DONE;
                         if (!standalone.equals("yes") && !standalone.equals("no")) {
-                            err.jspError("jsp.error.xml.sdDeclInvalid");
+                            err.jspError(MESSAGES.invalidStandaloneDeclaration(standalone));
                         }
                     } else {
-                        err.jspError("jsp.error.xml.encodingDeclRequired");
+                        err.jspError(MESSAGES.requiredEncodingDeclaration());
                     }
                     break;
                 }
                 case STATE_STANDALONE: {
                     if (name == fStandaloneSymbol) {
                         if (!sawSpace) {
-                            err.jspError("jsp.error.xml.spaceRequiredBeforeStandalone");
+                            err.jspError(MESSAGES.requiredSpaceBeforeStandaloneInXmlDeclaration());
                         }
                         standalone = fString.toString();
                         state = STATE_DONE;
                         if (!standalone.equals("yes") && !standalone.equals("no")) {
-                            err.jspError("jsp.error.xml.sdDeclInvalid");
+                            err.jspError(MESSAGES.invalidStandaloneDeclaration(standalone));
                         }
                     } else {
-			err.jspError("jsp.error.xml.encodingDeclRequired");
+                        err.jspError(MESSAGES.requiredEncodingDeclaration());
                     }
                     break;
                 }
                 default: {
-                    err.jspError("jsp.error.xml.noMorePseudoAttributes");
+                    err.jspError(MESSAGES.invalidPseudoAttribute());
                 }
             }
             sawSpace = skipSpaces();
         }
         // REVISIT: should we remove this error reporting?
         if (scanningTextDecl && state != STATE_DONE) {
-            err.jspError("jsp.error.xml.morePseudoAttributes");
+            err.jspError(MESSAGES.missingPseudoAttribute());
         }
         
         // If there is no data in the xml or text decl then we fail to report
 	// error for version or encoding info above.
         if (scanningTextDecl) {
             if (!dataFoundForTarget && encoding == null) {
-                err.jspError("jsp.error.xml.encodingDeclRequired");
+                err.jspError(MESSAGES.requiredEncodingDeclaration());
             }
         } else {
             if (!dataFoundForTarget && version == null) {
-                err.jspError("jsp.error.xml.versionInfoRequired");
+                err.jspError(MESSAGES.requiredVersionDeclaration());
             }
         }
 
         // end
         if (!skipChar('?')) {
-            err.jspError("jsp.error.xml.xmlDeclUnterminated");
+            err.jspError(MESSAGES.malformedXmlDeclaration());
         }
         if (!skipChar('>')) {
-            err.jspError("jsp.error.xml.xmlDeclUnterminated");
+            err.jspError(MESSAGES.malformedXmlDeclaration());
 
         }
         
@@ -1467,22 +1468,24 @@
 
         String name = scanName();
         if (name == null) {
-            err.jspError("jsp.error.xml.pseudoAttrNameExpected");
+            err.jspError(MESSAGES.missingPseudoAttributeName());
         }
         skipSpaces();
         if (!skipChar('=')) {
-            reportFatalError(scanningTextDecl ?
-			     "jsp.error.xml.eqRequiredInTextDecl"
-                             : "jsp.error.xml.eqRequiredInXMLDecl",
-			     name);
+            if (scanningTextDecl) {
+                err.jspError(MESSAGES.missingEqualsInTextDeclaration(name));
+            } else {
+                err.jspError(MESSAGES.missingEqualsInXmlDeclaration(name));
+            }
         }
         skipSpaces();
         int quote = peekChar();
         if (quote != '\'' && quote != '"') {
-            reportFatalError(scanningTextDecl ?
-			     "jsp.error.xml.quoteRequiredInTextDecl"
-                             : "jsp.error.xml.quoteRequiredInXMLDecl" ,
-			     name);
+            if (scanningTextDecl) {
+                err.jspError(MESSAGES.missingQuoteInTextDeclaration(name));
+            } else {
+                err.jspError(MESSAGES.missingQuoteInXmlDeclaration(name));
+            }
         }
         scanChar();
         int c = scanLiteral(quote, value);
@@ -1498,10 +1501,11 @@
                         scanSurrogates(fStringBuffer2);
                     }
                     else if (XMLChar.isInvalid(c)) {
-                        String key = scanningTextDecl
-                            ? "jsp.error.xml.invalidCharInTextDecl"
-			    : "jsp.error.xml.invalidCharInXMLDecl";
-                        reportFatalError(key, Integer.toString(c, 16));
+                        if (scanningTextDecl) {
+                            err.jspError(MESSAGES.invalidCharInTextDeclaration(Integer.toString(c, 16)));
+                        } else {
+                            err.jspError(MESSAGES.invalidCharInXmlDeclaration(Integer.toString(c, 16)));
+                        }
                         scanChar();
                     }
                 }
@@ -1511,10 +1515,11 @@
             value.setValues(fStringBuffer2);
         }
         if (!skipChar(quote)) {
-            reportFatalError(scanningTextDecl ?
-			     "jsp.error.xml.closeQuoteMissingInTextDecl"
-                             : "jsp.error.xml.closeQuoteMissingInXMLDecl",
-			     name);
+            if (scanningTextDecl) {
+                err.jspError(MESSAGES.missingClosingQuoteInTextDeclaration(name));
+            } else {
+                err.jspError(MESSAGES.missingClosingQuoteInXmlDeclaration(name));
+            }
         }
 
         // return
@@ -1570,8 +1575,7 @@
                     if (XMLChar.isHighSurrogate(c)) {
                         scanSurrogates(fStringBuffer);
                     } else if (XMLChar.isInvalid(c)) {
-                        err.jspError("jsp.error.xml.invalidCharInPI",
-				     Integer.toHexString(c));
+                        err.jspError(MESSAGES.invalidCharInProcessingInstruction(Integer.toHexString(c)));
                         scanChar();
                     }
                 }
@@ -1598,8 +1602,7 @@
         int high = scanChar();
         int low = peekChar();
         if (!XMLChar.isLowSurrogate(low)) {
-            err.jspError("jsp.error.xml.invalidCharInContent",
-			 Integer.toString(high, 16));
+            err.jspError(MESSAGES.invalidCharInContent(Integer.toString(high, 16)));
             return false;
         }
         scanChar();
@@ -1609,8 +1612,7 @@
 
         // supplemental character must be a valid XML character
         if (!XMLChar.isValid(c)) {
-            err.jspError("jsp.error.xml.invalidCharInContent",
-			 Integer.toString(c, 16)); 
+            err.jspError(MESSAGES.invalidCharInContent(Integer.toString(c, 16))); 
             return false;
         }
 
@@ -1622,16 +1624,6 @@
 
     }
 
-    // Adapted from:
-    // org.apache.xerces.impl.XMLScanner.reportFatalError
-    /**
-     * Convenience function used in all XML scanners.
-     */
-    private void reportFatalError(String msgId, String arg)
-                throws JasperException {
-        err.jspError(msgId, arg);
-    }
-
 }
 
 

Modified: trunk/src/main/java/org/jboss/web/JasperLogger.java
===================================================================
--- trunk/src/main/java/org/jboss/web/JasperLogger.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/jboss/web/JasperLogger.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -25,6 +25,7 @@
 import static org.jboss.logging.Logger.Level.ERROR;
 import static org.jboss.logging.Logger.Level.INFO;
 import static org.jboss.logging.Logger.Level.WARN;
+import static org.jboss.logging.Logger.Level.DEBUG;
 
 import org.jboss.logging.BasicLogger;
 import org.jboss.logging.Cause;
@@ -45,4 +46,122 @@
      */
     JasperLogger ROOT_LOGGER = Logger.getMessageLogger(JasperLogger.class, "org.apache.jasper");
 
+    /**
+     * A logger with the category of the package name.
+     */
+    JasperLogger COMPILER_LOGGER = Logger.getMessageLogger(JasperLogger.class, "org.apache.jasper.compiler");
+
+    /**
+     * A logger with the category of the package name.
+     */
+    JasperLogger SERVLET_LOGGER = Logger.getMessageLogger(JasperLogger.class, "org.apache.jasper.servlet");
+
+    @LogMessage(level = WARN)
+    @Message(id = 5000, value = "Invalid %s value for the initParam keepgenerated. Will use the default value of \"false\"")
+    void invalidKeepGeneratedValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5001, value = "Invalid %s value for the initParam trimSpaces. Will use the default value of \"false\"")
+    void invalidTrimSpacesValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5002, value = "Invalid %s value for the initParam enablePooling. Will use the default value of \"false\"")
+    void invalidEnablePoolingValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5003, value = "Invalid %s value for the initParam mappedfile. Will use the default value of \"true\"")
+    void invalidMappedFileValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5004, value = "Invalid %s value for the initParam sendErrToClient. Will use the default value of \"false\"")
+    void invalidSendErrToClientValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5005, value = "Invalid %s value for the initParam classdebuginfo. Will use the default value of \"true\"")
+    void invalidClassDebugInfoValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5006, value = "Invalid %s value for the initParam checkInterval. Will disable periodic checking")
+    void invalidCheckIntervalValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5007, value = "Invalid %s value for the initParam modificationTestInterval. Will use the default value of \"4\" seconds")
+    void invalidModificationTestIntervalValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5008, value = "Invalid %s value for the initParam recompileOnFail. Will use the default value of \"false\"")
+    void invalidRecompileOnFailValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5009, value = "Invalid %s value for the initParam development. Will use the default value of \"true\"")
+    void invalidDevelopmentValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5010, value = "Invalid %s value for the initParam suppressSmap. Will use the default value of \"false\"")
+    void invalidSuppressSmapValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5011, value = "Invalid %s value for the initParam dumpSmap. Will use the default value of \"false\"")
+    void invalidDumpSmapValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5012, value = "Invalid %s value for the initParam genStrAsCharArray. Will use the default value of \"false\"")
+    void invalidGenStrAsCharArrayValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5013, value = "Invalid %s value for the initParam errorOnUseBeanInvalidClassAttribute. Will use the default value of \"true\"")
+    void invalidErrorOnUseBeanInvalidClassAttributeValue(String value);
+
+    @LogMessage(level = ERROR)
+    @Message(id = 5014, value = "The JSP container needs a work directory")
+    void missingWorkDirectory();
+
+    @LogMessage(level = ERROR)
+    @Message(id = 5015, value = "The JSP container needs a valid work directory [%s]")
+    void missingWorkDirectory(String workDirectory);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5016, value = "Invalid %s value for the initParam fork. Will use the default value of \"true\"")
+    void invalidForkValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5017, value = "Invalid %s value for the initParam xpoweredBy. Will use the default value of \"true\"")
+    void invalidXpoweredByValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5018, value = "Invalid %s value for the initParam displaySourceFragment. Will use the default value of \"true\"")
+    void invalidDisplaySourceFragmentValue(String value);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5019, value = "Failed loading Java compiler %s")
+    void failedLoadingJavaCompiler(String className, @Cause Throwable t);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5020, value = "Failed loading custom options class %s")
+    void failedLoadingOptions(String className, @Cause Throwable t);
+
+    @LogMessage(level = ERROR)
+    @Message(id = 5021, value = "File \"%s\" not found")
+    void fileNotFound(String uri);
+
+    @LogMessage(level = ERROR)
+    @Message(id = 5022, value = "Error destroying JSP Servlet instance")
+    void errorDestroyingServletInstance(@Cause Throwable t);
+
+    @LogMessage(level = WARN)
+    @Message(id = 5023, value = "Bad value %s in the url-pattern subelement in the webapp descriptor")
+    void invalidJspPropertyGroupsUrlPattern(String value);
+
+    @LogMessage(level = DEBUG)
+    @Message(id = 5024, value = "Exception closing reader")
+    void errorClosingReader(@Cause Throwable t);
+
+    @LogMessage(level = DEBUG)
+    @Message(id = 5025, value = "Parent class loader is: %s")
+    void logParentClassLoader(String parentClassLoader);
+
+    @LogMessage(level = DEBUG)
+    @Message(id = 5026, value = "Compilation classpath: %s")
+    void logCompilationClasspath(String classpath);
+
 }

Modified: trunk/src/main/java/org/jboss/web/JasperMessages.java
===================================================================
--- trunk/src/main/java/org/jboss/web/JasperMessages.java	2012-09-14 12:33:07 UTC (rev 2082)
+++ trunk/src/main/java/org/jboss/web/JasperMessages.java	2012-09-21 14:14:07 UTC (rev 2083)
@@ -22,6 +22,8 @@
 
 package org.jboss.web;
 
+import java.io.IOException;
+
 import org.jboss.logging.Cause;
 import org.jboss.logging.Message;
 import org.jboss.logging.MessageBundle;
@@ -39,4 +41,634 @@
      */
     JasperMessages MESSAGES = Messages.getBundle(JasperMessages.class);
 
+    @Message(id = 4000, value = "No Java compiler available")
+    IllegalStateException noJavaCompiler();
+
+    @Message(id = 4001, value = "Unable to compile class for JSP")
+    String failedClassCompilation();
+
+    @Message(id = 4002, value = "Unable to load class for JSP")
+    String failedClassLoading();
+
+    @Message(id = 4003, value = "No output folder")
+    IllegalStateException noOutputFolder();
+
+    @Message(id = 4004, value = "No output folder")
+    IllegalStateException badOutputFolderUrl(@Cause Throwable t);
+
+    @Message(id = 4005, value = "Byte '%s' not 7-bit ASCII")
+    IOException invalidByteRead(int b);
+
+    @Message(id = 4006, value = "Mark is not supported by the UTF-8 reader")
+    IOException markNotSupportedInUtf8Reader();
+
+    @Message(id = 4007, value = "Expected byte %s of %s-byte UTF-8 sequence")
+    String errorUtf8ExpectedByte(int position, int count);
+
+    @Message(id = 4008, value = "Invalid byte %s of %s-byte UTF-8 sequence")
+    String errorUtf8InvalidByte(int position, int count);
+
+    @Message(id = 4009, value = "High surrogate bits in UTF-8 sequence must not exceed 0x10 but found 0x%s")
+    String errorUtf8InvalidHighSurrogate(String data);
+
+    @Message(id = 4010, value = "Given byte order for encoding \"%s\" is not supported")
+    String unsupportedByteOrderForEncoding(String encoding);
+
+    @Message(id = 4011, value = "Invalid encoding name \"%s\"")
+    String invalidEncodingDeclared(String encoding);
+
+    @Message(id = 4012, value = "XML version \"%s\" is not supported, only XML 1.0 is supported")
+    String unsupportedXmlVersion(String version);
+
+    @Message(id = 4013, value = "The version is required in the XML declaration")
+    String noXmlVersion();
+
+    @Message(id = 4014, value = "White space is required before the version pseudo attribute in the text declaration")
+    String requiredSpaceBeforeVersionInTextDeclaration();
+
+    @Message(id = 4015, value = "White space is required before the version pseudo attribute in the XML declaration")
+    String requiredSpaceBeforeVersionInXmlDeclaration();
+
+    @Message(id = 4016, value = "White space is required before the encoding pseudo attribute in the text declaration")
+    String requiredSpaceBeforeEncodingInTextDeclaration();
+
+    @Message(id = 4017, value = "White space is required before the encoding pseudo attribute in the XML declaration")
+    String requiredSpaceBeforeEncodingInXmlDeclaration();
+
+    @Message(id = 4018, value = "Encoding is required in the text declaration")
+    String requiredEncodingDeclaration();
+
+    @Message(id = 4019, value = "Version is required in the XML declaration")
+    String requiredVersionDeclaration();
+
+    @Message(id = 4020, value = "White space is required before the standalone pseudo attribute in the XML declaration")
+    String requiredSpaceBeforeStandaloneInXmlDeclaration();
+
+    @Message(id = 4021, value = "The standalone document declaration value must be \"yes\" or \"no\", not \"%s\"")
+    String invalidStandaloneDeclaration(String value);
+
+    @Message(id = 4022, value = "No more pseudo attributes is allowed")
+    String invalidPseudoAttribute();
+
+    @Message(id = 4023, value = "More pseudo attributes are expected")
+    String missingPseudoAttribute();
+
+    @Message(id = 4024, value = "The XML declaration must end with \"?&gt;\"")
+    String malformedXmlDeclaration();
+
+    @Message(id = 4025, value = "A pseudo attribute name is expected")
+    String missingPseudoAttributeName();
+
+    @Message(id = 4026, value = "The '=' character must follow \"%s\" in the text declaration")
+    String missingEqualsInTextDeclaration(String name);
+
+    @Message(id = 4027, value = "The '=' character must follow \"%s\" in the XML declaration")
+    String missingEqualsInXmlDeclaration(String name);
+
+    @Message(id = 4028, value = "The value following \"%s\" in the text declaration must be a quoted string")
+    String missingQuoteInTextDeclaration(String name);
+
+    @Message(id = 4029, value = "The value following \"%s\" in the XML declaration must be a quoted string")
+    String missingQuoteInXmlDeclaration(String name);
+
+    @Message(id = 4030, value = "An invalid XML character (Unicode: 0x%s) was found in the text declaration")
+    String invalidCharInTextDeclaration(String name);
+
+    @Message(id = 4031, value = "An invalid XML character (Unicode: 0x%s) was found in the XML declaration")
+    String invalidCharInXmlDeclaration(String name);
+
+    @Message(id = 4032, value = "Closing quote in the value following \"%s\" in the text declaration is missing")
+    String missingClosingQuoteInTextDeclaration(String name);
+
+    @Message(id = 4033, value = "Closing quote in the value following \"%s\" in the XML declaration is missing")
+    String missingClosingQuoteInXmlDeclaration(String name);
+
+    @Message(id = 4034, value = "An invalid XML character (Unicode: 0x%s) was found in the processing instruction")
+    String invalidCharInProcessingInstruction(String character);
+
+    @Message(id = 4035, value = "An invalid XML character (Unicode: 0x%s) was found in the element content of the document")
+    String invalidCharInContent(String character);
+
+    @Message(id = 4036, value = "File \"%s\" not found")
+    String fileNotFound(String uri);
+
+    @Message(id = 4037, value = "JSP has been marked unavailable")
+    String unavailable();
+
+    @Message(id = 4038, value = "An exception occurred processing JSP page %s at line %s\n\n%s\n\nStacktrace:")
+    String jspExceptionWithDetails(String jsp, int line, String extract);
+
+    @Message(id = 4039, value = "Jasper JSP 2.2 Engine")
+    String jspInfo();
+
+    @Message(id = 4040, value = "Null attribute name")
+    NullPointerException nullAttributeName();
+
+    @Message(id = 4041, value = "Cannot set indexed property")
+    String failedSettingBeanIndexedProperty();
+
+    @Message(id = 4042, value = "Cannot find any information on property '%s' in a bean of type '%s'")
+    String cannotFindBeanProperty(String property, String beanClass);
+
+    @Message(id = 4043, value = "Can't find a method to write property '%s' of type '%s' in a bean of type '%s'")
+    String cannotSetBeanProperty(String property, String propertyClass, String beanClass);
+
+    @Message(id = 4044, value = "Attempted a bean operation on a null object")
+    String nullBean();
+
+    @Message(id = 4045, value = "No BeanInfo for the bean of type '%s' could be found, the class likely does not exist")
+    String cannotFindBeanInfo(String beanClass);
+
+    @Message(id = 4046, value = "Cannot find a method to read property '%s' in a bean of type '%s'")
+    String cannotGetBeanProperty(String property, String beanClass);
+
+    @Message(id = 4047, value = "Unable to convert string \"%s\" to class \"%s\" for attribute \"%s\": %s")
+    String errorConvertingBeanProperty(String value, String valueClass, String property, String errorMessage);
+
+    @Message(id = 4048, value = "Property Editor not registered with the PropertyEditorManager")
+    IllegalArgumentException noRegisteredPropertyEditor();
+
+    @Message(id = 4049, value = "Illegal to clear() when buffer size == 0")
+    IllegalStateException cannotClearWithNoBuffer();
+
+    @Message(id = 4050, value = "Attempt to clear a buffer that's already been flushed")
+    IOException cannotClearAfterFlush();
+
+    @Message(id = 4051, value = "JSP Buffer overflow")
+    IOException bufferOverflow();
+
+    @Message(id = 4052, value = "Exception occurred when flushing data")
+    IllegalStateException errorFlushingData(@Cause Throwable t);
+
+    @Message(id = 4053, value = "Attempt to clear a buffer that's already been flushed")
+    IllegalStateException illegalClearAfterFlush(@Cause Throwable t);
+
+    @Message(id = 4054, value = "Cannot access session scope in page that does not participate in any session")
+    IllegalStateException cannotUseSessionScope();
+
+    @Message(id = 4055, value = "Invalid scope specified")
+    IllegalArgumentException invalidScope();
+
+    @Message(id = 4056, value = "Attribute value %s is quoted with %s which must be escaped when used within the value")
+    IllegalArgumentException missingEscaping(String value, String quote);
+
+    @Message(id = 4057, value = "Bad scope specified for useBean")
+    String badScopeForUseBean();
+
+    @Message(id = 4058, value = "Malformed library version number")
+    String malformedLibraryVersionNumber();
+
+    @Message(id = 4059, value = "Default java encoding %s is invalid on your java platform. An alternate can be specified via the 'javaEncoding' parameter of JspServlet")
+    String needAlternateEncoding(String encoding);
+
+    @Message(id = 4060, value = "An error occurred at line: %s in the jsp file: %s")
+    String errorInJspFile(int line, String fileName);
+
+    @Message(id = 4061, value = "An error occurred at line: %s in the generated java file")
+    String errorInJavaFile(int line);
+
+    @Message(id = 4062, value = "Unable to compile class for JSP: %s")
+    String failedClassCompilation(String errorReport);
+
+    @Message(id = 4063, value = "The value for the useBean class attribute %s is invalid")
+    String invalidUseBeanAttributeClass(String className);
+
+    @Message(id = 4064, value = "Unable to find setter method for attribute: %s")
+    String cannotFindSetterMethod(String attributeName);
+
+    @Message(id = 4065, value = "Error introspecting tag handler: %s")
+    String errorIntrospectingTagHandler(String tagHandlerClass);
+
+    @Message(id = 4066, value = "Tag file directory %s does not start with \"/WEB-INF/tags\"")
+    String invalidTagFileDirectory(String tagFileDirectory);
+
+    @Message(id = 4067, value = "Invalid implicit TLD for tag file at %s")
+    String invalidImplicitTld(String tagFile);
+
+    @Message(id = 4068, value = "Invalid JSP version defined in implicit TLD for tag file at %s")
+    String invalidImplicitTldVersion(String tagFile);
+
+    @Message(id = 4069, value = "Unable to display JSP extract. Probably due to a JRE bug (see Tomcat bug 48498 for details).")
+    String errorDisplayingJspExtract();
+
+    @Message(id = 4070, value = "Error reading file \"%s\"")
+    String errorReadingFile(String file);
+
+    @Message(id = 4071, value = "Error parsing file \"%s\"")
+    String errorParsingFile(String file);
+
+    @Message(id = 4072, value = "&lt;jsp:text&gt; must not have any subelements")
+    String invalidJspTextSubelements();
+
+    @Message(id = 4073, value = "Unterminated %s tag")
+    String unterminatedTag(String tag);
+
+    @Message(id = 4074, value = "According to TLD, tag %s must be empty, but is not")
+    String invalidEmptyTagSubelements(String tag);
+
+    @Message(id = 4075, value = "Could not add one or more tag libraries: %s")
+    String errorAddingTagLibraries(String errorMessage);
+
+    @Message(id = 4076, value = "Nested &lt;jsp:root&gt;")
+    String nestedJspRoot();
+
+    @Message(id = 4077, value = "%s directive cannot be used in a tag file")
+    String invalidDirectiveInTagFile(String directive);
+
+    @Message(id = 4078, value = "Scripting elements are disallowed here")
+    String invalidScriptingElement();
+
+    @Message(id = 4079, value = "%s action cannot be used in a tag file")
+    String invalidActionInTagFile(String action);
+
+    @Message(id = 4080, value = "Invalid standard action: %s")
+    String invalidStandardAction(String action);
+
+    @Message(id = 4081, value = "No tag \"%s\" defined in tag library associated with uri \"%s\"")
+    String unknownTag(String tag, String tagLibUri);
+
+    @Message(id = 4082, value = "Unable to load tag handler class \"%s\" for tag \"%s\"")
+    String errorLoadingTagHandler(String tagClass, String tag);
+
+    @Message(id = 4083, value = "Body of %s element must not contain any XML elements")
+    String invalidScriptingBody(String element);
+
+    @Message(id = 4084, value = "Unterminated quotes")
+    String unterminatedQuotes();
+
+    @Message(id = 4085, value = "Attribute value should be quoted")
+    String unquotedAttributeValue();
+
+    @Message(id = 4086, value = "Recursive include of file %s")
+    String invalidRecursiveInclude(String file);
+
+    @Message(id = 4087, value = "File %s not seen in include")
+    String invalidInclude(String file);
+
+    @Message(id = 4088, value = "Invalid scope %s specified")
+    String invalidScope(String scope);
+
+    @Message(id = 4089, value = "The attribute %s specified in the standard or custom action also appears as the value of the name attribute in the enclosed jsp:attribute")
+    String duplicateAttribute(String attributeName);
+
+    @Message(id = 4090, value = "%s: Mandatory attribute %s missing")
+    String missingMandatoryAttribute(String elementName, String attributeName);
+
+    @Message(id = 4091, value = "%s has invalid attribute: %s")
+    String invalidAttribute(String elementName, String attributeName);
+
+    @Message(id = 4092, value = "Missing \".tag\" suffix in tag file path %s")
+    String invalidTagFileName(String path);
+
+    @Message(id = 4093, value = "Unsupported encoding: %s")
+    String unsupportedEncoding(String encoding);
+
+    @Message(id = 4094, value = "Page directive: invalid language attribute")
+    String unsupportedPageDirectiveLanguage();
+
+    @Message(id = 4095, value = "Tag directive: invalid language attribute")
+    String unsupportedTagDirectiveLanguage();
+
+    @Message(id = 4096, value = "Page directive: invalid buffer size")
+    String invalidPageDirectiveBufferSize();
+
+    @Message(id = 4097, value = "Page directive: invalid value for session")
+    String invalidPageDirectiveSession();
+
+    @Message(id = 4098, value = "Page directive: invalid value for autoFlush")
+    String invalidPageDirectiveAutoFlush();
+
+    @Message(id = 4099, value = "Page directive: invalid value for isThreadSafe")
+    String invalidPageDirectiveIsThreadSafe();
+
+    @Message(id = 4100, value = "Page directive: invalid value for isErrorPage")
+    String invalidPageDirectiveIsErrorPage();
+
+    @Message(id = 4101, value = "Page directive: invalid value for isELIgnored")
+    String invalidPageDirectiveIsElIgnored();
+
+    @Message(id = 4102, value = "Tag directive: invalid value for isELIgnored")
+    String invalidTagDirectiveIsElIgnored();
+
+    @Message(id = 4103, value = "Page directive: invalid value for deferredSyntaxAllowedAsLiteral")
+    String invalidPageDirectiveDeferredSyntaxAllowedAsLiteral();
+
+    @Message(id = 4104, value = "Tag directive: invalid value for deferredSyntaxAllowedAsLiteral")
+    String invalidTagDirectiveDeferredSyntaxAllowedAsLiteral();
+
+    @Message(id = 4105, value = "Page directive: invalid value for trimDirectiveWhitespaces")
+    String invalidPageDirectiveTrimDirectiveWhitespaces();
+
+    @Message(id = 4106, value = "Tag directive: invalid value for trimDirectiveWhitespaces")
+    String invalidTagDirectiveTrimDirectiveWhitespaces();
+
+    @Message(id = 4107, value = "Page-encoding specified in XML prolog (%s) is different from that specified in jsp-property-group (%s)")
+    String encodingConflict(String prologEncoding, String propertyGroupEncoding);
+
+    @Message(id = 4108, value = "Unable to determine scripting variable name from attribute %s")
+    String cannotFindVariableNameFromAttribute(String attribute);
+
+    @Message(id = 4109, value = "Name of root element in %s different from %s")
+    String wrongRootElement(String file, String element);
+
+    @Message(id = 4110, value = "Invalid tag plugin %s")
+    String invalidTagPlugin(String file);
+
+    @Message(id = 4111, value = "Duplicate function name %s in tag library %s")
+    String duplicateTagLibraryFunctionName(String function, String library);
+
+    @Message(id = 4112, value = "Mandatory TLD element %s missing in %s")
+    String missingRequiredTagLibraryElement(String element, String library);
+
+    @Message(id = 4113, value = "The absolute uri: %s cannot be resolved in either web.xml or the jar files deployed with this application")
+    String unresolvableAbsoluteUri(String uri);
+
+    @Message(id = 4114, value = "Unable to get JAR resource \"%s\" containing TLD")
+    String errorAccessingJar(String jar);
+
+    @Message(id = 4115, value = "Missing JAR resource \"%s\" containing TLD")
+    String missingJar(String jar);
+
+    @Message(id = 4116, value = "Failed to load or instantiate TagExtraInfo class: %s")
+    String errorLoadingTagExtraInfo(String tei);
+
+    @Message(id = 4117, value = "Failed to load or instantiate TagLibraryValidator class: %s")
+    String errorLoadingTagLibraryValidator(String tlv);
+
+    @Message(id = 4118, value = "Invalid body-content (%s) in tag directive")
+    String invalidBodyContentInTagDirective(String content);
+
+    @Message(id = 4119, value = "Tag directive: illegal to have multiple occurrences of the attribute \"%s\" with different values (old: %s, new: %s)")
+    String invalidConflictingTagDirectiveAttributeValues(String attribute, String oldValue, String newValue);
+
+    @Message(id = 4120, value = "Cannot specify a value type if 'deferredValue' is not 'true'")
+    String cannotUseValueTypeWithoutDeferredValue();
+
+    @Message(id = 4121, value = "Cannot specify a method signature if 'deferredMethod' is not 'true'")
+    String cannotUseMethodSignatureWithoutDeferredMethod();
+
+    @Message(id = 4122, value = "'deferredValue' and 'deferredMethod' cannot be both 'true'")
+    String cannotUseBothDeferredValueAndMethod();
+
+    @Message(id = 4123, value = "Cannot specify both 'fragment' and 'type' attributes.  If 'fragment' is present, 'type' is fixed as 'javax.servlet.jsp.tagext.JspFragment'")
+    String cannotUseFragmentWithType();
+
+    @Message(id = 4124, value = "Cannot specify both 'fragment' and 'rtexprvalue' attributes.  If 'fragment' is present, 'rtexprvalue' is fixed as 'true'")
+    String cannotUseFragmentWithRtexprValue();
+
+    @Message(id = 4125, value = "Invalid JSP version defined for tag file at %s")
+    String invalidTagFileJspVersion(String file);
+
+    @Message(id = 4126, value = "Either name-given or name-from-attribute attribute must be specified in a variable directive")
+    String mustSpecifyVariableDirectiveEitherName();
+
+    @Message(id = 4127, value = "Cannot specify both name-given or name-from-attribute attributes in a variable directive")
+    String mustNotSpecifyVariableDirectiveBothName();
+
+    @Message(id = 4128, value = "Both or none of the name-from-attribute and alias attributes must be specified in a variable directive")
+    String mustNotSpecifyVariableDirectiveBothOrNoneName();
+
+    @Message(id = 4129, value = "The value of %s and the value of %s in line %s are the same")
+    String invalidDuplicateNames(String name, String name2, int line);
+
+    @Message(id = 4130, value = "Cannot find an attribute directive with a name attribute with a value \"%s\", the value of this name-from-attribute attribute.")
+    String cannotFindAttribute(String name);
+
+    @Message(id = 4131, value = "The attribute directive (declared in line %s and whose name attribute is \"%s\", the value of this name-from-attribute attribute) must be of type java.lang.String, is \"required\" and not a \"rtexprvalue\".")
+    String invalidAttributeFound(int line, String name);
+
+    @Message(id = 4132, value = "%s directive can only be used in a tag file")
+    String invalidDirectiveInPage(String directive);
+
+    @Message(id = 4133, value = "Invalid directive")
+    String invalidDirective();
+
+    @Message(id = 4134, value = "The attribute prefix %s does not correspond to any imported tag library")
+    String invalidAttributePrefix(String prefix);
+
+    @Message(id = 4135, value = "Equal symbol expected")
+    String missingEqual();
+
+    @Message(id = 4136, value = "Quote symbol expected")
+    String missingQuote();
+
+    @Message(id = 4137, value = "Attribute for %s is not properly terminated")
+    String unterminatedAttribute(String end);
+
+    @Message(id = 4138, value = "Unable to include %s")
+    String errorIncluding(String file);
+
+    @Message(id = 4139, value = "The prefix %s specified in this tag directive has been previously used by an action in file %s line %s")
+    String prefixAlreadyInUse(String prefix, String file, int line);
+
+    @Message(id = 4140, value = "Attempt to redefine the prefix %s to %s, when it was already defined as %s in the current scope")
+    String prefixRedefinition(String prefix, String uri, String previousUri);
+
+    @Message(id = 4141, value = "Expecting \"jsp:param\" standard action with \"name\" and \"value\" attributes")
+    String missingParamAction();
+
+    @Message(id = 4142, value = "The %s tag can only have jsp:attribute in its body")
+    String invalidEmptyBodyTag(String tag);
+
+    @Message(id = 4143, value = "Must use jsp:body to specify tag body for %s if jsp:attribute is used.")
+    String invalidTagBody(String tag);
+
+    @Message(id = 4144, value = "jsp:attribute must be the subelement of a standard or custom action")
+    String invalidJspAttribute();
+
+    @Message(id = 4145, value = "jsp:body must be the subelement of a standard or custom action")
+    String invalidJspBody();
+
+    @Message(id = 4146, value = "jsp:fallback must be a direct child of jsp:plugin")
+    String invalidJspFallback();
+
+    @Message(id = 4147, value = "jsp:params must be a direct child of jsp:plugin")
+    String invalidJspParams();
+
+    @Message(id = 4148, value = "The jsp:param action must not be used outside the jsp:include, jsp:forward, or jsp:params elements")
+    String invalidJspParam();
+
+    @Message(id = 4149, value = "jsp:output must not be used in standard syntax")
+    String invalidJspOutput();
+
+    @Message(id = 4150, value = "Invalid standard action")
+    String invalidStandardAction();
+
+    @Message(id = 4151, value = "No tag \"%s\" defined in tag library imported with prefix \"%s\"")
+    String unknownTagPrefix(String tag, String prefix);
+
+    @Message(id = 4152, value = "\'&lt;\', when appears in the body of &lt;jsp:text&gt;, must be encapsulated within a CDATA")
+    String badContent();
+
+    @Message(id = 4153, value = "%s not allowed in a template text body")
+    String invalidTemplateTextBody(String invalid);
+
+    @Message(id = 4154, value = "Custom tag is not allowed in a template text body")
+    String invalidTagInTemplateTextBody();
+
+    @Message(id = 4155, value = "The end tag \"&lt;/%s\" is unbalanced")
+    String unbalancedEndTag(String action);
+
+    @Message(id = 4156, value = "A jsp:attribute standard action cannot be nested within another jsp:attribute standard action")
+    String invalidJspAttributeNesting();
+
+    @Message(id = 4157, value = "A jsp:body standard action cannot be nested within another jsp:body or jsp:attribute standard action")
+    String invalidJspBodyNesting();
+
+    @Message(id = 4158, value = "Invalid body content type")
+    String invalidBodyContentType();
+
+    @Message(id = 4159, value = "Page directive: illegal to have multiple occurrences of '%s' with different values (old: %s, new: %s)")
+    String invalidConflictingPageDirectiveAttribute(String attribute, String oldValue, String newValue);
+
+    @Message(id = 4160, value = "Page directive must not have multiple occurrences of '%s'")
+    String invalidDuplicatePageDirectiveAttribute(String attribute);
+
+    @Message(id = 4161, value = "Page directive auto flush cannot be used with a buffer")
+    String invalidConflictingPageDirectiveAutoFlushBuffer();
+
+    @Message(id = 4162, value = "Tag directive must not have multiple occurrences of '%s'")
+    String invalidDuplicateTagDirectiveAttribute(String attribute);
+
+    @Message(id = 4163, value = "Page-encoding specified in jsp-property-group (%s) is different from that specified in page directive (%s)")
+    String pageEncodingConflictJspPropertyGroup(String jspPropertyGroupEncoding, String pageDirectiveEncoding);
+
+    @Message(id = 4164, value = "Page-encoding specified in XML prolog (%s) is different from that specified in page directive (%s)")
+    String pageEncodingConflictProlog(String prologEncoding, String pageDirectiveEncoding);
+
+    @Message(id = 4165, value = "Invalid version number: \"%s\", must be \"1.2\", \"2.0\", \"2.1\", or \"2.2\"")
+    String invalidJspVersionNumber(String version);
+
+    @Message(id = 4166, value = "Neither \'uri\' nor \'tagdir\' attribute specified")
+    String invalidTaglibDirectiveMissingLocation();
+
+    @Message(id = 4167, value = "Both \'uri\' and \'tagdir\' attributes specified")
+    String invalidTaglibDirectiveConflictingLocation();
+
+    @Message(id = 4168, value = "jsp:params must contain at least one nested jsp:param")
+    String invalidEmptyJspParams();
+
+    @Message(id = 4169, value = "setProperty: can't have non-null value when property=*")
+    String invalidSetProperty();
+
+    @Message(id = 4170, value = "setProperty: can't have non-null value whith param")
+    String invalidSetPropertyEitherParam();
+
+    @Message(id = 4171, value = "Missing type for useBean")
+    String missingUseBeanType();
+
+    @Message(id = 4172, value = "Duplicate bean name: %s")
+    String duplicateUseBeanName(String name);
+
+    @Message(id = 4173, value = "Illegal for useBean to use session scope when JSP page declares (via page directive) that it does not participate in sessions")
+    String cannotAccessSessionScopeWithUseBean();
+
+    @Message(id = 4174, value = "Cannot use both and attribute and a type in useBean")
+    String cannotUseBothAttributeAndTypeInUseBean();
+
+    @Message(id = 4175, value = "Type not declared in plugin")
+    String missingPluginType();
+
+    @Message(id = 4176, value = "Illegal value %s for 'type' attribute in plugin: must be 'bean' or 'applet'")
+    String badPluginType(String type);
+
+    @Message(id = 4177, value = "Code not declared in plugin")
+    String missingPluginCode();
+
+    @Message(id = 4178, value = "#{..} is not allowed in template text")
+    String invalidDeferredExpressionInTemplateText();
+
+    @Message(id = 4179, value = "TagInfo object for %s is missing from TLD")
+    String missingTagInfo(String tag);
+
+    @Message(id = 4180, value = "The TLD for the class %s specifies an invalid body-content (JSP) for a SimpleTag")
+    String invalidSimpleTagBodyContent(String tag);
+
+    @Message(id = 4181, value = "The %s tag declares that it accepts dynamic attributes but does not implement the required interface")
+    String unimplementedDynamicAttributes(String tag);
+
+    @Message(id = 4182, value = "Tag %s has one or more variable subelements and a TagExtraInfo class that returns one or more VariableInfo")
+    String invalidTeiWithVariableSubelements(String tag);
+
+    @Message(id = 4183, value = "Mandatory attributes missing")
+    String missingMandatoryAttributes();
+
+    @Message(id = 4184, value = "Mandatory XML-style \'name\' attribute missing")
+    String missingMandatoryNameAttribute();
+
+    @Message(id = 4185, value = "&lt;jsp:output&gt; must not have a body")
+    String invalidJspOutputBody();
+
+    @Message(id = 4186, value = "&lt;jsp:output&gt;: illegal to have multiple occurrences of \"%s\" with different values (old: %s, new: %s)")
+    String invalidJspOutputConflict(String attribute, String oldValue, String newValue);
+
+    @Message(id = 4187, value = "&lt;jsp:output&gt;: 'doctype-root-element' and 'doctype-system' attributes must appear together")
+    String errorJspOutputDoctype();
+
+    @Message(id = 4188, value = "&lt;jsp:output&gt;: 'doctype-system' attribute must appear if 'doctype-public' attribute appears")
+    String errorJspOutputMissingDoctype();
+
+    @Message(id = 4189, value = "Missing \'var\' or \'varReader\' attribute")
+    String missingVarAttribute();
+
+    @Message(id = 4190, value = "Only one of \'var\' or \'varReader\' may be specified")
+    String errorBothVarAttributes();
+
+    @Message(id = 4191, value = "Cannot use both ${} and #{} EL expressions in the same attribute value")
+    String errorUsingBothElTypes();
+
+    @Message(id = 4192, value = "A literal value was specified for attribute %s that is defined as a deferred method with a return type of void. JSP.2.3.4 does not permit literal values in this case")
+    String errorUsingLiteralValueWithDeferredVoidReturnTyep(String attribute);
+
+    @Message(id = 4193, value = "Unknown attribute type (%s) for attribute %s")
+    String unknownAttributeType(String attribute, String attributeType);
+
+    @Message(id = 4194, value = "Cannot coerce value (%s) to type (%s) for attribute %s")
+    String errorCoercingAttributeValue(String attribute, String attributeType, String value);
+
+    @Message(id = 4195, value = "According to TLD or attribute directive in tag file, attribute %s does not accept any expressions")
+    String noExpressionAllowedForAttribute(String attribute);
+
+    @Message(id = 4196, value = "%s contains invalid expression(s)")
+    String invalidExpression(String attributeValue);
+
+    @Message(id = 4197, value = "Attribute %s invalid for tag %s according to TLD")
+    String invalidAttributeForTag(String attribute, String tag);
+
+    @Message(id = 4198, value = "The %s attribute of the %s standard action does not accept any expressions")
+    String noExpressionAllowedForAttributeInAction(String attribute, String action);
+
+    @Message(id = 4199, value = "The function %s must be used with a prefix when a default namespace is not specified")
+    String missingFunctionPrefix(String function);
+
+    @Message(id = 4200, value = "The function prefix %s does not correspond to any imported tag library")
+    String unknownFunctionPrefix(String prefix);
+
+    @Message(id = 4201, value = "The function %s cannot be located with the specified prefix")
+    String unknownFunction(String function);
+
+    @Message(id = 4202, value = "Invalid syntax for function signature in TLD. Tag Library: %s, Function: %s")
+    String invalidFunctionSignature(String prefix, String function);
+
+    @Message(id = 4203, value = "Invalid syntax for function signature in TLD. Parenthesis '(' expected. Tag Library: %s, Function: %s")
+    String invalidFunctionSignatureMissingParent(String prefix, String function);
+
+    @Message(id = 4204, value = "The class %s specified in TLD for the function %s cannot be found")
+    String missingFunctionClass(String className, String function);
+
+    @Message(id = 4205, value = "The class %s specified in the method signature in TLD for the function %s cannot be found")
+    String missingSignatureClass(String className, String function);
+
+    @Message(id = 4206, value = "Method \"%s\" for function \"%s\" not found in class \"%s\"")
+    String missingMethodInClass(String method, String function, String className);
+
+    @Message(id = 4207, value = "Validation error messages from TagExtraInfo for %s")
+    String errorValidatingTag(String tag);
+
+    @Message(id = 4208, value = "Validation error messages from TagLibraryValidator for %s in %s")
+    String errorValidatingTaglibrary(String taglib, String jsp);
+
+    @Message(id = 4209, value = "An exception occurred processing JSP page %s at line %s")
+    String jspException(String jsp, int line);
+
 }



More information about the jbossweb-commits mailing list