Author: markt Date: Thu Nov 29 14:27:23 2007 New Revision: 599605 URL: http://svn.apache.org/viewvc?rev=599605&view=rev Log: Fix bug 43757. Rather than use string matching to work out the line in the JSP with the error, use the SMAP info and the knowledge that for a scriptlet there is a one to one line mapping.
Modified: tomcat/trunk/java/org/apache/jasper/compiler/ErrorDispatcher.java Modified: tomcat/trunk/java/org/apache/jasper/compiler/ErrorDispatcher.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/compiler/ErrorDispatcher.java?rev=599605&r1=599604&r2=599605&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/jasper/compiler/ErrorDispatcher.java (original) +++ tomcat/trunk/java/org/apache/jasper/compiler/ErrorDispatcher.java Thu Nov 29 14:27:23 2007 @@ -527,13 +527,26 @@ page.visit(errVisitor); Node errNode = errVisitor.getJspSourceNode(); if ((errNode != null) && (errNode.getStart() != null)) { - javacError = new JavacErrorDetail( - fname, - lineNum, - errNode.getStart().getFile(), - errNode.getStart().getLineNumber(), - errMsgBuf, - ctxt); + // If this is a scriplet node then there is a one to one mapping + // between JSP lines and Java lines + if (errVisitor.getJspSourceNode() instanceof Node.Scriptlet) { + javacError = new JavacErrorDetail( + fname, + lineNum, + errNode.getStart().getFile(), + errNode.getStart().getLineNumber() + lineNum - + errVisitor.getJspSourceNode().getBeginJavaLine(), + errMsgBuf, + ctxt); + } else { + javacError = new JavacErrorDetail( + fname, + lineNum, + errNode.getStart().getFile(), + errNode.getStart().getLineNumber(), + errMsgBuf, + ctxt); + } } else { /* * javac error line number cannot be mapped to JSP page --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]