Improve Error reporting during build
Change-Id: I7d867eb3ab0b33210c21fd476008057c5428a508
Signed-off-by: Markus Duft <markus.duft@ssi-schaefer.com>
diff --git a/org.eclipse.tea.library.build/src/org/eclipse/tea/library/build/tasks/TaskBuildWorkspace.java b/org.eclipse.tea.library.build/src/org/eclipse/tea/library/build/tasks/TaskBuildWorkspace.java
index f977384..93c777e 100644
--- a/org.eclipse.tea.library.build/src/org/eclipse/tea/library/build/tasks/TaskBuildWorkspace.java
+++ b/org.eclipse.tea.library.build/src/org/eclipse/tea/library/build/tasks/TaskBuildWorkspace.java
@@ -53,12 +53,51 @@
IStatus result = chain.execute(tracker, config.failureThreshold);
if (result.getSeverity() > IStatus.WARNING) {
- log.error("Errors during build: " + result);
+ log.error("Errors during build: " + formatStatus(result, ""));
+
}
return result;
}
+ private String formatStatus(IStatus status, String indent) {
+ StringBuilder builder = new StringBuilder();
+
+ builder.append(indent).append(formatSeverity(status.getSeverity())).append(": ");
+ if (status.getPlugin() != null) {
+ builder.append(status.getPlugin()).append(": ");
+ }
+ if (status.getCode() != 0) {
+ builder.append("code=").append(status.getCode()).append(": ");
+ }
+ builder.append(status.getMessage());
+ if (status.getException() != null) {
+ builder.append(" (").append(status.getException().toString()).append(")");
+ }
+
+ for (IStatus child : status.getChildren()) {
+ builder.append('\n').append(formatStatus(child, indent + " "));
+ }
+
+ return builder.toString();
+ }
+
+ private String formatSeverity(int severity) {
+ if (severity == IStatus.OK) {
+ return "OK";
+ } else if (severity == IStatus.ERROR) {
+ return "ERROR";
+ } else if (severity == IStatus.WARNING) {
+ return "WARNING";
+ } else if (severity == IStatus.INFO) {
+ return "INFO";
+ } else if (severity == IStatus.CANCEL) {
+ return "CANCEL";
+ } else {
+ return "severity=" + severity;
+ }
+ }
+
/**
* After a successful build of the workspace, update the workspace build
* order to what we have calculated. This assures that the automatic build
diff --git a/org.eclipse.tea.library.build/src/org/eclipse/tea/library/build/util/TeaBuildUtil.java b/org.eclipse.tea.library.build/src/org/eclipse/tea/library/build/util/TeaBuildUtil.java
index ab2f6f4..d7dd188 100644
--- a/org.eclipse.tea.library.build/src/org/eclipse/tea/library/build/util/TeaBuildUtil.java
+++ b/org.eclipse.tea.library.build/src/org/eclipse/tea/library/build/util/TeaBuildUtil.java
@@ -126,7 +126,7 @@
// can be compiler confusion and dependencies between
// generated artifacts.
- log.info(logTxt + ": fast recompile (" + status + ")");
+ log.info(logTxt + ": fast recompile");
project.build(IncrementalProjectBuilder.FULL_BUILD, null);
status = getStatus(element);