aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorFabrice Bellingard <bellingard@gmail.com>2012-04-02 10:30:47 +0200
committerFabrice Bellingard <bellingard@gmail.com>2012-04-02 10:30:47 +0200
commit79f0340fb247465924053de5fb59d5da7e6ba6b6 (patch)
treef1b2b7f2fc6fff7c89c0d6aa23a690f940291d9f /plugins
parent71675b44d74ffb48a5049deae72ab90e4b3e7914 (diff)
downloadsonarqube-79f0340fb247465924053de5fb59d5da7e6ba6b6.tar.gz
sonarqube-79f0340fb247465924053de5fb59d5da7e6ba6b6.zip
SONAR-3315 Refactor code to better keep track of original file
Diffstat (limited to 'plugins')
-rw-r--r--plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/JavaSourceImporter.java17
-rw-r--r--plugins/sonar-squid-java-plugin/src/test/java/org/sonar/plugins/squid/JavaSourceImporterTest.java2
2 files changed, 15 insertions, 4 deletions
diff --git a/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/JavaSourceImporter.java b/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/JavaSourceImporter.java
index 3adb55000fd..2845c2ac94d 100644
--- a/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/JavaSourceImporter.java
+++ b/plugins/sonar-squid-java-plugin/src/main/java/org/sonar/plugins/squid/JavaSourceImporter.java
@@ -79,15 +79,24 @@ public final class JavaSourceImporter implements Sensor {
}
void importSource(SensorContext context, JavaFile javaFile, InputFile inputFile, Charset sourcesEncoding) {
+ String source = null;
+ if (importSources) {
+ source = loadSourceFromFile(inputFile, sourcesEncoding);
+ }
+
try {
context.index(javaFile);
-
- if (importSources) {
- String source = FileUtils.readFileToString(inputFile.getFile(), sourcesEncoding.name());
+ if (source != null) {
context.saveSource(javaFile, source);
}
} catch (SonarException e) {
- throw e;
+ throw new SonarException(e.getMessage() + ", on file: " + inputFile.getFile().getAbsolutePath(), e);
+ }
+ }
+
+ protected String loadSourceFromFile(InputFile inputFile, Charset sourcesEncoding) {
+ try {
+ return FileUtils.readFileToString(inputFile.getFile(), sourcesEncoding.name());
} catch (Exception e) {
throw new SonarException("Unable to read and import the source file : '" + inputFile.getFile().getAbsolutePath() + "' with the charset : '"
+ sourcesEncoding.name() + "'.", e);
diff --git a/plugins/sonar-squid-java-plugin/src/test/java/org/sonar/plugins/squid/JavaSourceImporterTest.java b/plugins/sonar-squid-java-plugin/src/test/java/org/sonar/plugins/squid/JavaSourceImporterTest.java
index 9727e5e525e..0cd45d4e473 100644
--- a/plugins/sonar-squid-java-plugin/src/test/java/org/sonar/plugins/squid/JavaSourceImporterTest.java
+++ b/plugins/sonar-squid-java-plugin/src/test/java/org/sonar/plugins/squid/JavaSourceImporterTest.java
@@ -97,6 +97,8 @@ public class JavaSourceImporterTest {
thrown.expect(SonarException.class);
thrown.expectMessage("Duplicate source for resource");
+ thrown.expectMessage(", on file:");
+ thrown.expectMessage("UndocumentedApi.java");
importer.importSource(context, javaFile, inputFile, Charset.defaultCharset());
}