OSDN Git Service

Integrate 3f18a506 into tools_r10
authorXavier Ducrohet <xav@android.com>
Fri, 11 Feb 2011 00:00:30 +0000 (16:00 -0800)
committerXavier Ducrohet <xav@android.com>
Fri, 11 Feb 2011 00:03:53 +0000 (16:03 -0800)
Fix builder to not stop on java warning markers.

Change-Id: I8e9b2dba20524aedd3c3e533d74695ccfc0e9c46

eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/BaseBuilder.java
eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java

index 451b5aa..af4d0ab 100644 (file)
@@ -309,17 +309,29 @@ public abstract class BaseBuilder extends IncrementalProjectBuilder {
        }
 
         // abort if there are TARGET or ADT type markers
-        stopOnMarker(iProject, AndroidConstants.MARKER_TARGET, IResource.DEPTH_ZERO);
-        stopOnMarker(iProject, AndroidConstants.MARKER_ADT, IResource.DEPTH_ZERO);
+        stopOnMarker(iProject, AndroidConstants.MARKER_TARGET, IResource.DEPTH_ZERO,
+                false /*checkSeverity*/);
+        stopOnMarker(iProject, AndroidConstants.MARKER_ADT, IResource.DEPTH_ZERO,
+                false /*checkSeverity*/);
     }
 
-    protected void stopOnMarker(IProject project, String markerType, int depth)
+    protected void stopOnMarker(IProject project, String markerType, int depth,
+            boolean checkSeverity)
             throws AbortBuildException {
         try {
             IMarker[] markers = project.findMarkers(markerType, false /*includeSubtypes*/, depth);
 
             if (markers.length > 0) {
-                throw new AbortBuildException();
+                if (checkSeverity == false) {
+                    throw new AbortBuildException();
+                } else {
+                    for (IMarker marker : markers) {
+                        int severity = marker.getAttribute(IMarker.SEVERITY, -1 /*defaultValue*/);
+                        if (severity == IMarker.SEVERITY_ERROR) {
+                            throw new AbortBuildException();
+                        }
+                    }
+                }
             }
         } catch (CoreException e) {
             // don't stop, something's really screwed up and the build will break later with
index 1e818d5..1d3d13b 100644 (file)
@@ -641,16 +641,21 @@ public class PostCompilerBuilder extends BaseBuilder {
 
         IProject iProject = getProject();
 
-        // do a (hopefully quick) search for Precompiler type markers.
-        stopOnMarker(iProject, AndroidConstants.MARKER_AAPT_COMPILE, IResource.DEPTH_INFINITE);
-        stopOnMarker(iProject, AndroidConstants.MARKER_AIDL, IResource.DEPTH_INFINITE);
-        stopOnMarker(iProject, AndroidConstants.MARKER_RENDERSCRIPT, IResource.DEPTH_INFINITE);
-        stopOnMarker(iProject, AndroidConstants.MARKER_ANDROID, IResource.DEPTH_ZERO);
-
-        // do a search for JDT markers.
+        // do a (hopefully quick) search for Precompiler type markers. Those are always only
+        // errors.
+        stopOnMarker(iProject, AndroidConstants.MARKER_AAPT_COMPILE, IResource.DEPTH_INFINITE,
+                false /*checkSeverity*/);
+        stopOnMarker(iProject, AndroidConstants.MARKER_AIDL, IResource.DEPTH_INFINITE,
+                false /*checkSeverity*/);
+        stopOnMarker(iProject, AndroidConstants.MARKER_RENDERSCRIPT, IResource.DEPTH_INFINITE,
+                false /*checkSeverity*/);
+        stopOnMarker(iProject, AndroidConstants.MARKER_ANDROID, IResource.DEPTH_ZERO,
+                false /*checkSeverity*/);
+
+        // do a search for JDT markers. Those can be errors or warnings
         stopOnMarker(iProject, IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER,
-                IResource.DEPTH_INFINITE);
+                IResource.DEPTH_INFINITE, true /*checkSeverity*/);
         stopOnMarker(iProject, IJavaModelMarker.BUILDPATH_PROBLEM_MARKER,
-                IResource.DEPTH_INFINITE);
+                IResource.DEPTH_INFINITE, true /*checkSeverity*/);
     }
 }