jstrachan 2002/12/16 02:46:43
Modified: jelly/src/test/org/apache/commons/jelly/junit suite.jelly
jelly/src/java/org/apache/commons/jelly/impl TagScript.java
Log:
Applied the new test case supplied by Todd Jonker that demonstrated the bug in
missing line/col info on a unit test case failure.
This bug has now been fixed as well.
Revision Changes Path
1.11 +5 -1
jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/junit/suite.jelly
Index: suite.jelly
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/junit/suite.jelly,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- suite.jelly 10 Dec 2002 08:59:42 -0000 1.10
+++ suite.jelly 16 Dec 2002 10:46:42 -0000 1.11
@@ -92,9 +92,13 @@
</test:assertThrows>
</j:catch>
- <test:assert test="${ex != null}">We should have created an
exception</test:assert>
+ <test:assert test="${ex != null}">assertThrows should fail when
nothing is thrown from within it</test:assert>
<test:assert test="${ex.message.startsWith('No exception was thrown.')}"/>
+ <test:assertEquals actual="${ex.elementName}" expected="test:assertThrows"/>
+ <test:assert test="${ex.fileName != null}">fileName not set</test:assert>
+ <test:assert test="${ex.lineNumber gt 0}">lineNumber not set</test:assert>
+ <test:assert test="${ex.columnNumber gt 0}">columnNumber not set</test:assert>
</test:case>
<!--
1.30 +30 -10
jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/TagScript.java
Index: TagScript.java
===================================================================
RCS file:
/home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/TagScript.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- TagScript.java 28 Nov 2002 08:35:48 -0000 1.29
+++ TagScript.java 16 Dec 2002 10:46:42 -0000 1.30
@@ -283,6 +283,9 @@
catch (Exception e) {
handleException(e);
}
+ catch (Error e) {
+ handleException(e);
+ }
}
@@ -632,14 +635,14 @@
* while adding line number information etc.
*/
protected void handleException(Exception e) throws Exception {
- if (log.isTraceEnabled()) {
- log.trace( "Caught exception: " + e, e );
- }
+ if (log.isTraceEnabled()) {
+ log.trace( "Caught exception: " + e, e );
+ }
if (e instanceof LocationAware) {
applyLocation((LocationAware) e);
}
-
+
if ( e instanceof JellyException ) {
e.fillInStackTrace();
throw e;
@@ -653,6 +656,23 @@
lineNumber );
}
- throw new JellyException(e, fileName, elementName, columnNumber,
lineNumber);
+ throw new JellyException(e, fileName, elementName, columnNumber,
lineNumber);
+ }
+
+ /**
+ * A helper method to handle this non-Jelly exception.
+ * This method will rethrow the exception, wrapped in a JellyException
+ * while adding line number information etc.
+ */
+ protected void handleException(Error e) throws Error, JellyException {
+ if (log.isTraceEnabled()) {
+ log.trace( "Caught exception: " + e, e );
+ }
+
+ if (e instanceof LocationAware) {
+ applyLocation((LocationAware) e);
+ }
+
+ throw new JellyException(e, fileName, elementName, columnNumber,
lineNumber);
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>