diff options
author | Fabrice Bellingard <bellingard@gmail.com> | 2012-04-02 10:30:47 +0200 |
---|---|---|
committer | Fabrice Bellingard <bellingard@gmail.com> | 2012-04-02 10:30:47 +0200 |
commit | 79f0340fb247465924053de5fb59d5da7e6ba6b6 (patch) | |
tree | f1b2b7f2fc6fff7c89c0d6aa23a690f940291d9f /plugins | |
parent | 71675b44d74ffb48a5049deae72ab90e4b3e7914 (diff) | |
download | sonarqube-79f0340fb247465924053de5fb59d5da7e6ba6b6.tar.gz sonarqube-79f0340fb247465924053de5fb59d5da7e6ba6b6.zip |
SONAR-3315 Refactor code to better keep track of original file
Diffstat (limited to 'plugins')
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()); } |