| /* |
| * 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 org.apache.jasper.JasperException; |
| |
| /** |
| * Default implementation of ErrorHandler interface. |
| * |
| * @author Jan Luehe |
| */ |
| class DefaultErrorHandler implements ErrorHandler { |
| |
| /* |
| * Processes the given JSP parse error. |
| * |
| * @param fname Name of the JSP file in which the parse error occurred |
| * @param line Parse error line number |
| * @param column Parse error column number |
| * @param errMsg Parse error message |
| * @param exception Parse exception |
| */ |
| public void jspError(String fname, int line, int column, String errMsg, |
| Exception ex) throws JasperException { |
| throw new JasperException(fname + "(" + line + "," + column + ")" |
| + " " + errMsg, ex); |
| } |
| |
| /* |
| * Processes the given JSP parse error. |
| * |
| * @param errMsg Parse error message |
| * @param exception Parse exception |
| */ |
| public void jspError(String errMsg, Exception ex) throws JasperException { |
| throw new JasperException(errMsg, ex); |
| } |
| |
| /* |
| * Processes the given javac compilation errors. |
| * |
| * @param details Array of JavacErrorDetail instances corresponding to the |
| * compilation errors |
| */ |
| public void javacError(JavacErrorDetail[] details) throws JasperException { |
| |
| if (details == null) { |
| return; |
| } |
| |
| Object[] args = null; |
| StringBuffer buf = new StringBuffer(); |
| |
| for (int i=0; i < details.length; i++) { |
| buf.append("\n"); |
| if (details[i].getJspBeginLineNumber() >= 0) { |
| args = new Object[] { |
| new Integer(details[i].getJspBeginLineNumber()), |
| details[i].getJspFileName() }; |
| buf.append("\n"); |
| buf.append(Localizer.getMessage("jsp.error.single.line.number", |
| args)); |
| buf.append("\n"); |
| buf.append(details[i].getErrorMessage()); |
| buf.append("\n"); |
| buf.append(details[i].getJspExtract()); |
| } |
| } |
| buf.append("\n\nStacktrace:"); |
| throw new JasperException(Localizer.getMessage("jsp.error.unable.compile") + ": " + buf); |
| } |
| |
| /** |
| * Processes the given javac error report and exception. |
| * |
| * @param errorReport Compilation error report |
| * @param exception Compilation exception |
| */ |
| public void javacError(String errorReport, Exception exception) |
| throws JasperException { |
| |
| throw new JasperException( |
| Localizer.getMessage("jsp.error.unable.compile"), exception); |
| } |
| |
| } |