diff options
author | Aurelien Poscia <aurelien.poscia@sonarsource.com> | 2023-03-31 10:49:29 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2023-03-31 20:03:27 +0000 |
commit | 286bf0ff2d8937f7edf3249cdd21e34d34abb5de (patch) | |
tree | b265dfa446fe013e606d66d8aee7c78024ee9494 /sonar-core/src | |
parent | 8a23d9c83223cfa3e0d4e1ae2683fa24b1207bb1 (diff) | |
download | sonarqube-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')
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ฃคคข
ฃ
ฃKaขข`ฃข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
Kk@@@@@@@@@@@@@@@@@@คยข
ษ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
Kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@คยข
ษz@lโูรูึึใ@@@@@@@@@@@@@@@@@@@@@@@@@@ะk@@@@@@@@@@@@@@@@@@@@@@@@@@
z@ภ@@@@@@@@@@@@@@@@@@@@@@@@@@@@ขฃฃำ
z@๑๑k@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ำ
z@๒๒๒k@@@@@@@@@@@@@@@@@@@@@@@@@@@@ขฃฃรคz@๕๔k@@@@@@@@@@@@@@@@@@@@@@@@@@@@
รคz@๔@@@@@@@@@@@@@@@@@@@@@@@@@@ะ@@@@@@@@@@@@@@@@@@@@@@@@ะ@@@@@@@@@@@@@@@@@@@@@@ะ@@@@@@@@@@@@@@@@@@@@ะk@@@@@@@@@@@@@@@@@@@@ภ@@@@@@@@@@@@@@@@@@@@@@ฃz@ภ@@@@@@@@@@@@@@@@@@@@@@@@จขำฃz@ภ@@@@@@@@@@@@@@@@@@@@@@@@@@ฃฃำฃz@ภ@@@@@@@@@@@@@@@@@@@@@@@@@@@@คz@ฆฆฆK
Kk@@@@@@@@@@@@@@@@@@@@@@@@@@@@คยข
ษ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 |