peterreilly 2003/11/06 06:57:10
Modified: src/main/org/apache/tools/ant ProjectHelper.java
src/main/org/apache/tools/ant/taskdefs Ant.java Definer.java
ImportTask.java MacroInstance.java
Log:
Provide error stack for [*]ant[*] and macro call
use same code for import and antlib
Revision Changes Path
1.103 +27 -1 ant/src/main/org/apache/tools/ant/ProjectHelper.java
Index: ProjectHelper.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/ProjectHelper.java,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -r1.102 -r1.103
--- ProjectHelper.java 29 Oct 2003 10:18:14 -0000 1.102
+++ ProjectHelper.java 6 Nov 2003 14:57:10 -0000 1.103
@@ -531,5 +531,31 @@
}
return componentName.substring(0, index);
}
-//end class
+
+ /**
+ * Add location to build exception.
+ * @param ex the build exception, if the build exception
+ * does not include
+ * @param newLocation the location of the calling task (may be null)
+ * @return a new build exception based in the build exception with
+ * location set to newLocation. If the original exception
+ * did not have a location, just return the build exception
+ */
+ public static BuildException addLocationToBuildException(
+ BuildException ex, Location newLocation) {
+ if (ex.getLocation() == null || ex.getMessage() == null) {
+ return ex;
+ }
+ String errorMessage
+ = "Following error occured while executing this line"
+ + System.getProperty("line.separator")
+ + ex.getLocation().toString()
+ + ex.getMessage();
+ if (newLocation == null) {
+ return new BuildException(errorMessage);
+ } else {
+ return new BuildException(
+ errorMessage, newLocation);
+ }
+ }
}
1.94 +10 -2 ant/src/main/org/apache/tools/ant/taskdefs/Ant.java
Index: Ant.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Ant.java,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -r1.93 -r1.94
--- Ant.java 10 Oct 2003 13:19:46 -0000 1.93
+++ Ant.java 6 Nov 2003 14:57:10 -0000 1.94
@@ -378,7 +378,12 @@
}
}
- ProjectHelper.configureProject(newProject, new File(antFile));
+ try {
+ ProjectHelper.configureProject(newProject, new
File(antFile));
+ } catch (BuildException ex) {
+ throw ProjectHelper.addLocationToBuildException(
+ ex, getLocation());
+ }
if (target == null) {
target = newProject.getDefaultTarget();
@@ -413,7 +418,10 @@
try {
log("Entering " + antFile + "...", Project.MSG_VERBOSE);
newProject.executeTarget(target);
- } finally {
+ } catch (BuildException ex) {
+ throw ProjectHelper.addLocationToBuildException(
+ ex, getLocation());
+ } finally {
log("Exiting " + antFile + ".", Project.MSG_VERBOSE);
}
}
1.47 +2 -9 ant/src/main/org/apache/tools/ant/taskdefs/Definer.java
Index: Definer.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/Definer.java,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -r1.46 -r1.47
--- Definer.java 30 Oct 2003 15:43:13 -0000 1.46
+++ Definer.java 6 Nov 2003 14:57:10 -0000 1.47
@@ -343,15 +343,8 @@
antlib.setURI(getURI());
antlib.perform();
} catch (BuildException ex) {
- Location exLocation = ex.getLocation();
- if (exLocation == null) {
- throw ex;
- }
- throw new BuildException(
- "Error executing antlib"
- + System.getProperty("line.separator")
- + exLocation.toString()
- + " " + ex.getMessage());
+ throw ProjectHelper.addLocationToBuildException(
+ ex, getLocation());
}
}
1.21 +3 -10
ant/src/main/org/apache/tools/ant/taskdefs/ImportTask.java
Index: ImportTask.java
===================================================================
RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/ImportTask.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- ImportTask.java 3 Nov 2003 16:36:19 -0000 1.20
+++ ImportTask.java 6 Nov 2003 14:57:10 -0000 1.21
@@ -55,7 +55,7 @@
package org.apache.tools.ant.taskdefs;
import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Location;
+import org.apache.tools.ant.ProjectHelper;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectHelper;
import org.apache.tools.ant.Task;
@@ -183,15 +183,8 @@
try {
helper.parse(getProject(), importedFile);
} catch (BuildException ex) {
- Location exLocation = ex.getLocation();
- if (exLocation == null) {
- throw ex;
- }
- throw new BuildException(
- "Error executing import file"
- + System.getProperty("line.separator")
- + exLocation.toString()
- + " " + ex.getMessage());
+ throw ProjectHelper.addLocationToBuildException(
+ ex, getLocation());
}
}
1.8 +8 -2
ant/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java
Index: MacroInstance.java
===================================================================
RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/MacroInstance.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- MacroInstance.java 8 Oct 2003 08:44:46 -0000 1.7
+++ MacroInstance.java 6 Nov 2003 14:57:10 -0000 1.8
@@ -66,10 +66,11 @@
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DynamicConfigurator;
+import org.apache.tools.ant.ProjectHelper;
+import org.apache.tools.ant.RuntimeConfigurable;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.TaskContainer;
import org.apache.tools.ant.UnknownElement;
-import org.apache.tools.ant.RuntimeConfigurable;
/**
* The class to be placed in the ant type definition.
@@ -264,6 +265,11 @@
// need to set the project on unknown element
UnknownElement c = copy(macroDef.getNestedTask());
c.init();
- c.perform();
+ try {
+ c.perform();
+ } catch (BuildException ex) {
+ throw ProjectHelper.addLocationToBuildException(
+ ex, getLocation());
+ }
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]