aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Bentley <prb@google.com>2023-04-19 11:37:18 +0100
committerPete Bentley <prb@google.com>2023-04-19 11:37:18 +0100
commitdea851f1ecb4e8e416bbbf78e072e32f48fabf19 (patch)
treebf1239f221f4c8aab5d33153d9dcff6f142ba90f
parent5b2cd760309e5a46d50cebe2406bce5f92de10e7 (diff)
downloadvogar-dea851f1ecb4e8e416bbbf78e072e32f48fabf19.tar.gz
Add better diagnostics for missing Java files.
Vogar can't really tell which of its arguments are Java source files and which are classes somewhere along the classpath. However IFF we get to the point of creating class jars AND our supposed class name looks like a Java source file AND it doesn't exist THEN we can pretty safely assume it's a missing source file. Fixes: 239548304 Test: manual vogar runs Change-Id: I8b98f6d263030f9ff304e4ba653fabf3689e8da7
-rw-r--r--src/vogar/tasks/BuildActionTask.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/vogar/tasks/BuildActionTask.java b/src/vogar/tasks/BuildActionTask.java
index fd4c43a..04605fd 100644
--- a/src/vogar/tasks/BuildActionTask.java
+++ b/src/vogar/tasks/BuildActionTask.java
@@ -17,6 +17,7 @@
package vogar.tasks;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
@@ -90,7 +91,14 @@ public final class BuildActionTask extends Task {
if (run.debugging) {
javac.debug();
}
- if (javaFile != null) {
+ if (javaFile == null) {
+ if (JAVA_SOURCE_PATTERN.matcher(action.getTargetClass()).find()) {
+ // This is likely a missing source file rather than a class
+ // named something.java....
+ throw new FileNotFoundException("Unlikely classname, assuming missing source file: "
+ + action.getTargetClass());
+ }
+ } else {
if (!JAVA_SOURCE_PATTERN.matcher(javaFile.toString()).find()) {
throw new CommandFailedException(Collections.<String>emptyList(),
Collections.singletonList("Cannot compile: " + javaFile));