Skip to content

Commit 9a983da

Browse files
fjalvingholamy
authored andcommitted
All tests (even the meaningless ones) run.
1 parent d775465 commit 9a983da

File tree

2 files changed

+28
-13
lines changed

2 files changed

+28
-13
lines changed

plexus-compilers/plexus-compiler-eclipse/src/main/java/org/codehaus/plexus/compiler/eclipse/EclipseJavaCompiler.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
import java.io.StringWriter;
5858
import java.io.Writer;
5959
import java.util.ArrayList;
60+
import java.util.Collections;
6061
import java.util.Iterator;
6162
import java.util.LinkedHashMap;
6263
import java.util.List;
@@ -259,7 +260,7 @@ public CompilerResult performCompile( CompilerConfiguration config )
259260
args.add(config.getOutputLocation());
260261

261262
//-- Write .class files even when error occur, but make sure methods with compile errors do abort when called
262-
args.add("-proceedOnError:Fatal");
263+
//args.add("-proceedOnError:Fatal"); probably not a good plan as it will cause incremental compile to not work
263264

264265
//-- classpath
265266
List<String> classpathEntries = config.getClasspathEntries();
@@ -280,14 +281,22 @@ public CompilerResult performCompile( CompilerConfiguration config )
280281
args.add("-log");
281282
args.add(errorF.toString());
282283

284+
// Add all sources.
285+
int argCount = args.size();
283286
for(String source : config.getSourceLocations()) {
284287
File srcFile = new File(source);
285288
if(srcFile.exists()) {
286289
Set<String> ss = getSourceFilesForSourceRoot( config, source );
287290
args.addAll(ss);
288291
}
289292
}
290-
293+
for(String extraSourceDir : extraSourceDirs) {
294+
args.add(extraSourceDir);
295+
}
296+
if(args.size() == argCount) {
297+
//-- Nothing to do -> bail out
298+
return new CompilerResult(true, Collections.EMPTY_LIST);
299+
}
291300

292301
System.out.println(">>>> ECJ: " + args);
293302

@@ -320,10 +329,11 @@ public CompilerResult performCompile( CompilerConfiguration config )
320329
List<CompilerMessage> messageList;
321330
boolean hasError = false;
322331
if(errorF.length() < 80) {
323-
messageList = new ArrayList<>();
324-
messageList.add(new CompilerMessage("Internal compiler error"));
325-
System.err.println(">> " + sw.toString());
326-
return new CompilerResult(false, messageList);
332+
throw new IOException("Failed to run the ECJ compiler:\n" + sw.toString());
333+
//messageList = new ArrayList<>();
334+
//messageList.add(new CompilerMessage("Internal compiler error"));
335+
//System.err.println(">> " + sw.toString());
336+
//return new CompilerResult(false, messageList);
327337
}
328338
messageList = new EcjResponseParser().parse(errorF, errorsAsWarnings);
329339

plexus-compilers/plexus-compiler-eclipse/src/test/java/org/codehaus/plexus/compiler/eclipse/EclipseCompilerErrorsAsWarningsTest.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package org.codehaus.plexus.compiler.eclipse;
22

3-
import java.util.Arrays;
4-
import java.util.Collection;
5-
63
import org.codehaus.plexus.compiler.AbstractCompilerTest;
74
import org.codehaus.plexus.compiler.CompilerConfiguration;
85

6+
import java.util.Arrays;
7+
import java.util.Collection;
8+
99
public class EclipseCompilerErrorsAsWarningsTest extends AbstractCompilerTest
1010
{
1111

@@ -39,9 +39,14 @@ protected int expectedWarnings()
3939

4040
protected Collection<String> expectedOutputFiles()
4141
{
42-
return Arrays.asList( new String[] { "org/codehaus/foo/Deprecation.class",
43-
"org/codehaus/foo/ExternalDeps.class", "org/codehaus/foo/Person.class",
44-
"org/codehaus/foo/ReservedWord.class", "org/codehaus/foo/Bad.class",
45-
"org/codehaus/foo/UnknownSymbol.class", "org/codehaus/foo/RightClassname.class" } );
42+
return Arrays.asList( new String[] {
43+
"org/codehaus/foo/Deprecation.class",
44+
"org/codehaus/foo/ExternalDeps.class",
45+
"org/codehaus/foo/Person.class",
46+
"org/codehaus/foo/ReservedWord.class",
47+
//"org/codehaus/foo/Bad.class", // This one has no class file generated as it's one big issue
48+
//"org/codehaus/foo/UnknownSymbol.class",
49+
//"org/codehaus/foo/RightClassname.class"
50+
});
4651
}
4752
}

0 commit comments

Comments
 (0)