]> source.dussan.org Git - aspectj.git/commitdiff
240360 - test and fix for -proceedOnError and weaving in the face of broken source
authoraclement <aclement>
Thu, 17 Jul 2008 20:07:59 +0000 (20:07 +0000)
committeraclement <aclement>
Thu, 17 Jul 2008 20:07:59 +0000 (20:07 +0000)
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/AjPipeliningCompilerAdapter.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java
org.aspectj.ajdt.core/testsrc/org/aspectj/ajdt/internal/compiler/batch/ProceedOnErrorTestCase.java

index 46f4b25bbba2b05e0033f863597069e89a8f5824..e35ae9bc9da3400ee6e4f639c7e9730a2de30062 100644 (file)
@@ -373,7 +373,7 @@ public class AjPipeliningCompilerAdapter extends AbstractCompilerAdapter {
                        intermediateResultsRequestor.acceptResult(intRes);
                }
                
-               if (isXTerminateAfterCompilation || (reportedErrors && !proceedOnError)) {
+               if (unit.compilationResult.hasErrors() || (isXTerminateAfterCompilation || (reportedErrors && !proceedOnError))) {
                        acceptResult(unit.compilationResult);
                } else {
                        queueForWeaving(intRes);
index 368b84ae356e799dcd4f960b193a68a3226f080e..6723462a5bf4a55fad317e62b1206aea4cb3b373 100644 (file)
@@ -103,9 +103,6 @@ public class AjBuildManager implements IOutputClassFileNameProvider,IBinarySourc
     // If runtime version check fails, warn or fail? (unset?)
     static final boolean FAIL_IF_RUNTIME_NOT_FOUND = false;
     
-    // support for producing .class files containing errors and maintaining 'state' even when the
-    // project is broken (meaning all builds after the first are incremental)
-    public static boolean continueWhenErrors = true;
     
     private static final FileFilter binarySourceFilter = 
                new FileFilter() {
@@ -268,7 +265,7 @@ public class AjBuildManager implements IOutputClassFileNameProvider,IBinarySourc
                 binarySourcesForTheNextCompile = state.getBinaryFilesToCompile(true);
                 performCompilation(buildConfig.getFiles());
                 state.clearBinarySourceFiles(); // we don't want these hanging around...
-                if (!continueWhenErrors && handler.hasErrors()) {
+                if (!proceedOnError() && handler.hasErrors()) {
                        CompilationAndWeavingContext.leavingPhase(ct);
                        if (AsmManager.isReporting())
                                    AsmManager.getDefault().reportModelInfo("After a batch build");
@@ -296,7 +293,7 @@ public class AjBuildManager implements IOutputClassFileNameProvider,IBinarySourc
                     // System.err.println("XXXX inc: " + files);
                
                     performCompilation(files);
-                    if ((!continueWhenErrors && handler.hasErrors()) || (progressListener!=null && progressListener.isCancelledRequested())) {
+                    if ((!proceedOnError() && handler.hasErrors()) || (progressListener!=null && progressListener.isCancelledRequested())) {
                         CompilationAndWeavingContext.leavingPhase(ct);
                         return false;
                     } 
@@ -1030,7 +1027,7 @@ public class AjBuildManager implements IOutputClassFileNameProvider,IBinarySourc
                        public void acceptResult(CompilationResult unitResult) {
                                // end of compile, must now write the results to the output destination
                                // this is either a jar file or a file in a directory
-                               if (!((unitResult.hasErrors() && !continueWhenErrors) && !proceedOnError())) {                  
+                               if (!unitResult.hasErrors() || proceedOnError()) {                      
                                        Collection classFiles = unitResult.compiledTypes.values();
                                        boolean shouldAddAspectName = (buildConfig.getOutxmlName() != null);
                                        for (Iterator iter = classFiles.iterator(); iter.hasNext();) {
index 4caa987bdca3d68a8c3bd719b5217a5b17d858fa..5e353cc3c6fd6e6d3d3b3c7aa111dbdb6ce76a30 100644 (file)
@@ -31,8 +31,8 @@ public class ProceedOnErrorTestCase extends CommandTestCase {
         * C2.java.
         */
        public void testNoProceedOnError() throws IOException {
-               try {
-                       AjBuildManager.continueWhenErrors=false;
+//             try {
+//                     AjBuildManager.continueWhenErrors=false;
                        checkCompile("src1/C1.java", NO_ERRORS);
                    File f =new File(getSandboxName(),"C.class");
                    long oldmodtime = f.lastModified();
@@ -44,9 +44,9 @@ public class ProceedOnErrorTestCase extends CommandTestCase {
                    assertTrue("The .class file should not have been modified as '-proceedOnError' was not supplied (old="+
                                   new Date(oldmodtime).toString()+")(new="+new Date(newmodtime).toString()+")",
                                   oldmodtime==newmodtime);
-               } finally {
-                       AjBuildManager.continueWhenErrors=true;
-               }
+//             } finally {
+//                     AjBuildManager.continueWhenErrors=true;
+//             }
        }
 
        public void testProceedOnError() throws IOException {