aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-core/src
diff options
context:
space:
mode:
authorAurelien Poscia <aurelien.poscia@sonarsource.com>2023-03-31 10:49:29 +0200
committersonartech <sonartech@sonarsource.com>2023-03-31 20:03:27 +0000
commit286bf0ff2d8937f7edf3249cdd21e34d34abb5de (patch)
treeb265dfa446fe013e606d66d8aee7c78024ee9494 /sonar-core/src
parent8a23d9c83223cfa3e0d4e1ae2683fa24b1207bb1 (diff)
downloadsonarqube-286bf0ff2d8937f7edf3249cdd21e34d34abb5de.tar.gz
sonarqube-286bf0ff2d8937f7edf3249cdd21e34d34abb5de.zip
SONAR-18882 Show clear message when Sarif file is not UTF-8 encoded
Diffstat (limited to 'sonar-core/src')
-rw-r--r--sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializerImpl.java2
-rw-r--r--sonar-core/src/test/java/org/sonar/core/sarif/SarifSerializerTest.java12
-rw-r--r--sonar-core/src/test/resources/org/sonar/core/sarif/sarif210-nonUtf8.json1
3 files changed, 13 insertions, 2 deletions
diff --git a/sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializerImpl.java b/sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializerImpl.java
index 5164f3410c8..487f81cf10a 100644
--- a/sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializerImpl.java
+++ b/sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializerImpl.java
@@ -38,7 +38,7 @@ import static java.nio.file.Files.newBufferedReader;
@ComputeEngineSide
public class SarifSerializerImpl implements SarifSerializer {
private static final String SARIF_REPORT_ERROR = "Failed to read SARIF report at '%s'";
- private static final String SARIF_JSON_SYNTAX_ERROR = SARIF_REPORT_ERROR + ": invalid JSON syntax";
+ private static final String SARIF_JSON_SYNTAX_ERROR = SARIF_REPORT_ERROR + ": invalid JSON syntax or file is not UTF-8 encoded";
private final Gson gson;
diff --git a/sonar-core/src/test/java/org/sonar/core/sarif/SarifSerializerTest.java b/sonar-core/src/test/java/org/sonar/core/sarif/SarifSerializerTest.java
index 30357838fa0..24532267883 100644
--- a/sonar-core/src/test/java/org/sonar/core/sarif/SarifSerializerTest.java
+++ b/sonar-core/src/test/java/org/sonar/core/sarif/SarifSerializerTest.java
@@ -79,7 +79,17 @@ public class SarifSerializerTest {
assertThatThrownBy(() -> serializer.deserialize(sarif))
.isInstanceOf(IllegalStateException.class)
- .hasMessage(format("Failed to read SARIF report at '%s': invalid JSON syntax", sarif));
+ .hasMessage(format("Failed to read SARIF report at '%s': invalid JSON syntax or file is not UTF-8 encoded", sarif));
+ }
+
+ @Test
+ public void deserialize_whenFileIsNotUtf8encoded_shouldFail() throws URISyntaxException {
+ URL sarifResource = requireNonNull(getClass().getResource("sarif210-nonUtf8.json"));
+ Path sarif = Paths.get(sarifResource.toURI());
+
+ assertThatThrownBy(() -> serializer.deserialize(sarif))
+ .isInstanceOf(IllegalStateException.class)
+ .hasMessage(format("Failed to read SARIF report at '%s': invalid JSON syntax or file is not UTF-8 encoded", sarif));
}
@Test
diff --git a/sonar-core/src/test/resources/org/sonar/core/sarif/sarif210-nonUtf8.json b/sonar-core/src/test/resources/org/sonar/core/sarif/sarif210-nonUtf8.json
new file mode 100644
index 00000000000..9f0d2136322
--- /dev/null
+++ b/sonar-core/src/test/resources/org/sonar/core/sarif/sarif210-nonUtf8.json
@@ -0,0 +1 @@
+ภ@@ฅ…™ข‰–•z@๒K๑K๐k@@[ขƒˆ…”z@ˆฃฃ—ขzaa™ฆK‡‰ฃˆค‚คข…™ƒ–•ฃ…•ฃKƒ–”a–ข‰ข`ฃƒขaข™‰†`ข—…ƒa”ขฃ…™aโƒˆ…”ฃaข™‰†`ขƒˆ…”`๒K๑K๐K‘ข–•k@@™ค•ขz@I@@@@ภ@@@@@@ฃ––“z@ภ@@@@@@@@„™‰ฅ…™z@ภ@@@@@@@@@@•”…z@โ–•™ุค‚…k@@@@@@@@@@–™‡•‰ฉฃ‰–•z@โ–•™โ–ค™ƒ…k@@@@@@@@@@ข…”•ฃ‰ƒๅ…™ข‰–•z@๙K๖k@@@@@@@@@@™ค“…ขz@I@@@@@@@@@@@@ภ@@@@@@@@@@@@@@‰„z@‘ฅzโ๕๑๓๒k@@@@@@@@@@@@@@•”…z@‘ฅzโ๕๑๓๒k@@@@@@@@@@@@@@ขˆ–™ฃฤ…ขƒ™‰—ฃ‰–•z@ภ@@@@@@@@@@@@@@@@ฃ…งฃz@ิ’…@ฃˆ‰ข@†‰•“@ขฃฃ‰ƒ@†‰…“„@ฃ––K@@@@@@@@@@@@@@ะk@@@@@@@@@@@@@@†ค““ฤ…ขƒ™‰—ฃ‰–•z@ภ@@@@@@@@@@@@@@@@ฃ…งฃz@ิ’…@ฃˆ‰ข@†‰•“@ขฃฃ‰ƒ@†‰…“„@ฃ––K@@@@@@@@@@@@@@ะk@@@@@@@@@@@@@@ˆ…“—z@ภ@@@@@@@@@@@@@@@@ฃ…งฃz@ำ–™…”@‰—ขค”@„–“–™@ข‰ฃ@”…ฃk@ƒ–•ข…ƒฃ…ฃค™@„‰—‰ขƒ‰•‡@…“‰ฃK@ี”@ˆ…•„™…™‰ฃ@•‰ข‰@ข…„@ข–““‰ƒ‰ฃค„‰•@—…““…•ฃ…ข˜ค…K@ีค•ƒ@—–ขค…™…@—ค™คข@™ˆ–•ƒคข@—ค“ฅ‰•™@“‰˜ค”K@ไฃ@“‰˜ค…ฃ@ฃ™‰ขฃ‰˜ค…@•‰ข“@ฅ‰ฃ…@ฅ–“คฃ—ฃK@ีค““@“‰˜ค…ฃ@—–™ฃฃ‰ฃ–™@ฅ…•…•ฃ‰ขK@ฤ–•…ƒ@@„ค‰@…ฃ@„ค‰@†™‰•‡‰““@ƒ–•ข…ƒฃ…ฃค™@‰„@•…ƒ@”ขขK@ม“‰˜ค”@…™ฃ@ฅ–“คฃ—ฃK@โ…„@คฃ@„ค‰@คฃ@“ƒคข@„‰ƒฃค”@†…™”…•ฃค”@ฅ…“@ฃ‰•ƒ‰„ค•ฃ@•…˜ค…K@โ…„@ข…„@“ƒ‰•‰@“…ƒฃคขK@ฤค‰ข@ข‰ฃ@”…ฃ@ข–„“…ข@†…“‰ขK@ฤค‰ข@•ค•ƒ@…™–ขk@”ฃฃ‰ข@ฃ@„ค‰@ƒk@ƒ–•ฅ““‰ข@ข…”—…™@™‰ขคขK@ษ•@„‰—‰ขƒ‰•‡@ค“ฃ™‰ƒ…ข@ฃ…““คขk@‰•@ขคขƒ‰—‰ฃ@”ขข@ฅ…ˆ‰ƒค“@…คK@@@@@@@@@@@@@@ะk@@@@@@@@@@@@@@—™–—…™ฃ‰…ขz@ภ@@@@@@@@@@@@@@@@ฃ‡ขz@I@@@@@@@@@@@@@@@@@@ฃ‡๑k@@@@@@@@@@@@@@@@@@ฃ‡๒@@@@@@@@@@@@@@@@Y@@@@@@@@@@@@@@ะ@@@@@@@@@@@@ะ@@@@@@@@@@Y@@@@@@@@ะ@@@@@@ะk@@@@@@™…ขค“ฃขz@I@@@@@@@@ภ@@@@@@@@@@™ค“…ษ„z@‘ฅzโ๕๑๓๒k@@@@@@@@@@”…ขข‡…z@ภ@@@@@@@@@@@@ฃ…งฃz@ฃˆ‰ข@‰ข@ฃˆ…@”…ขข‡…@@@@@@@@@@ะk@@@@@@@@@@“–ƒฃ‰–•ขz@I@@@@@@@@@@@@ภ@@@@@@@@@@@@@@—ˆจข‰ƒ“ำ–ƒฃ‰–•z@ภ@@@@@@@@@@@@@@@@™ฃ‰†ƒฃำ–ƒฃ‰–•z@ภ@@@@@@@@@@@@@@@@@@ค™‰z@ฆฆฆK‡––‡“…Kƒ–”k@@@@@@@@@@@@@@@@@@ค™‰ยข…ษ„z@lโูรูึึใ@@@@@@@@@@@@@@@@ะk@@@@@@@@@@@@@@@@™…‡‰–•z@ภ@@@@@@@@@@@@@@@@@@ขฃ™ฃำ‰•…z@๑๑k@@@@@@@@@@@@@@@@@@…•„ำ‰•…z@๒๒๒k@@@@@@@@@@@@@@@@@@ขฃ™ฃร–“ค”•z@๕๔k@@@@@@@@@@@@@@@@@@…•„ร–“ค”•z@๔@@@@@@@@@@@@@@@@ะ@@@@@@@@@@@@@@ะ@@@@@@@@@@@@ะ@@@@@@@@@@Yk@@@@@@@@@@—™ฃ‰“ฦ‰•‡…™—™‰•ฃขz@ภ@@@@@@@@@@@@—™‰”™จำ–ƒฃ‰–•ำ‰•…ศขˆz@ฃˆ‰ขษโใศลศมโ@@@@@@@@@@ะk@@@@@@@@@@ƒ–„…ฦ“–ฆขz@I@@@@@@@@@@@@ภ@@@@@@@@@@@@@@ฃˆ™…„ฦ“–ฆขz@I@@@@@@@@@@@@@@@@ภ@@@@@@@@@@@@@@@@@@“–ƒฃ‰–•ขz@I@@@@@@@@@@@@@@@@@@@@ภ@@@@@@@@@@@@@@@@@@@@@@“–ƒฃ‰–•z@ภ@@@@@@@@@@@@@@@@@@@@@@@@—ˆจข‰ƒ“ำ–ƒฃ‰–•z@ภ@@@@@@@@@@@@@@@@@@@@@@@@@@™ฃ‰†ƒฃำ–ƒฃ‰–•z@ภ@@@@@@@@@@@@@@@@@@@@@@@@@@@@ค™‰z@ฆฆฆK‡––‡“…Kƒ–”k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ค™‰ยข…ษ„z@lโูรูึึใ@@@@@@@@@@@@@@@@@@@@@@@@@@ะk@@@@@@@@@@@@@@@@@@@@@@@@@@™…‡‰–•z@ภ@@@@@@@@@@@@@@@@@@@@@@@@@@@@ขฃ™ฃำ‰•…z@๑๑k@@@@@@@@@@@@@@@@@@@@@@@@@@@@…•„ำ‰•…z@๒๒๒k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ขฃ™ฃร–“ค”•z@๕๔k@@@@@@@@@@@@@@@@@@@@@@@@@@@@…•„ร–“ค”•z@๔@@@@@@@@@@@@@@@@@@@@@@@@@@ะ@@@@@@@@@@@@@@@@@@@@@@@@ะ@@@@@@@@@@@@@@@@@@@@@@ะ@@@@@@@@@@@@@@@@@@@@ะk@@@@@@@@@@@@@@@@@@@@ภ@@@@@@@@@@@@@@@@@@@@@@“–ƒฃ‰–•z@ภ@@@@@@@@@@@@@@@@@@@@@@@@—ˆจข‰ƒ“ำ–ƒฃ‰–•z@ภ@@@@@@@@@@@@@@@@@@@@@@@@@@™ฃ‰†ƒฃำ–ƒฃ‰–•z@ภ@@@@@@@@@@@@@@@@@@@@@@@@@@@@ค™‰z@ฆฆฆK‡––‡“…Kƒ–”k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ค™‰ยข…ษ„z@lโูรูึึใ@@@@@@@@@@@@@@@@@@@@@@@@@@ะk@@@@@@@@@@@@@@@@@@@@@@@@@@™…‡‰–•z@ภ@@@@@@@@@@@@@@@@@@@@@@@@@@@@ขฃ™ฃำ‰•…z@๒๒k@@@@@@@@@@@@@@@@@@@@@@@@@@@@…•„ำ‰•…z@๔๓๒๓k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ขฃ™ฃร–“ค”•z@๕๔๕k@@@@@@@@@@@@@@@@@@@@@@@@@@@@…•„ร–“ค”•z@๔๓๒๔@@@@@@@@@@@@@@@@@@@@@@@@@@ะ@@@@@@@@@@@@@@@@@@@@@@@@ะ@@@@@@@@@@@@@@@@@@@@@@ะ@@@@@@@@@@@@@@@@@@@@ะ@@@@@@@@@@@@@@@@@@Y@@@@@@@@@@@@@@@@ะ@@@@@@@@@@@@@@Y@@@@@@@@@@@@ะ@@@@@@@@@@Y@@@@@@@@ะ@@@@@@Yk@@@@@@“•‡ค‡…z@…•`คขk@@@@@@ƒ–“ค”•า‰•„z@คฃ†๑๖ร–„…ไ•‰ฃข@@@@ะ@@Yะ \ No newline at end of file