]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-18882 Show clear message when Sarif file is not UTF-8 encoded
authorAurelien Poscia <aurelien.poscia@sonarsource.com>
Fri, 31 Mar 2023 08:49:29 +0000 (10:49 +0200)
committersonartech <sonartech@sonarsource.com>
Fri, 31 Mar 2023 20:03:27 +0000 (20:03 +0000)
sonar-core/src/main/java/org/sonar/core/sarif/SarifSerializerImpl.java
sonar-core/src/test/java/org/sonar/core/sarif/SarifSerializerTest.java
sonar-core/src/test/resources/org/sonar/core/sarif/sarif210-nonUtf8.json [new file with mode: 0644]

index 5164f3410c81e4d0381dbd2d3c1d65f134b45c25..487f81cf10aebf63b45fffbad0e36f5ea64af6e5 100644 (file)
@@ -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;
 
index 30357838fa07d099464b55411cce58e3a2d2efc3..245322678838cf25b6bf1e7372dbc132c5e3ca69 100644 (file)
@@ -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 (file)
index 0000000..9f0d213
--- /dev/null
@@ -0,0 +1 @@
\15@@\7f¥\85\99¢\89\96\95\7fz@\7fòKñKð\7fk\15@@\7f\83\88\85\94\81\7fz@\7f\88££\97¢zaa\99\81¦K\87\89£\88¤\82¤¢\85\99\83\96\95£\85\95£K\83\96\94a\96\81¢\89¢`£\83¢a¢\81\99\89\86\97\85\83a\94\81¢£\85\99\83\88\85\94\81£\81\81\99\89\86\83\88\85\94\81`òKñKðK\91¢\96\95\7fk\15@@\7f\99¤\95¢\7fz@I\15@@@@À\15@@@@@@\7f£\96\96\93\7fz@À\15@@@@@@@@\7f\84\99\89¥\85\99\7fz@À\15@@@@@@@@@@\7f\95\81\94\85\7fz@\7fâ\96\95\81\99ؤ\82\85\7fk\15@@@@@@@@@@\7f\96\99\87\81\95\89©\81£\89\96\95\7fz@\7fâ\96\95\81\99â\96¤\99\83\85\7fk\15@@@@@@@@@@\7f¢\85\94\81\95£\89\83å\85\99¢\89\96\95\7fz@\7fùKö\7fk\15@@@@@@@@@@\7f\99¤\93\85¢\7fz@I\15@@@@@@@@@@@@À\15@@@@@@@@@@@@@@\7f\89\84\7fz@\7f\91\81¥\81zâõñóò\7fk\15@@@@@@@@@@@@@@\7f\95\81\94\85\7fz@\7f\91\81¥\81zâõñóò\7fk\15@@@@@@@@@@@@@@\7f¢\88\96\99£Ä\85¢\83\99\89\97£\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@\7f£\85§£\7fz@\7fÔ\81\92\85\88\89¢@\86\89\95\81\93@¢£\81£\89\83@\86\89\85\93\84\96\96K\7f\15@@@@@@@@@@@@@@Ðk\15@@@@@@@@@@@@@@\7f\86¤\93\93Ä\85¢\83\99\89\97£\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@\7f£\85§£\7fz@\7fÔ\81\92\85\88\89¢@\86\89\95\81\93@¢£\81£\89\83@\86\89\85\93\84\96\96K\7f\15@@@@@@@@@@@@@@Ðk\15@@@@@@@@@@@@@@\7f\88\85\93\97\7fz@À\15@@@@@@@@@@@@@@@@\7f£\85§£\7fz@\7fÓ\96\99\85\94@\89\97¢¤\94@\84\96\93\96\99\89£@\81\94\85£k@\83\96\95¢\85\83£\85£¤\99@\81\84\89\97\89¢\83\89\95\87@\85\93\89£K@Õ\81\94@\88\85\95\84\99\85\99\89£@\95\89¢\89\85\84\96\93\93\89\83\89£¤\84\89\95@\97\85\93\93\85\95£\85¢\98¤\85K@Õ¤\95\83@\97\96¢¤\85\99\85@\97¤\99¤¢@\99\88\96\95\83¤¢@\97¤\93¥\89\95\81\99@\81\93\89\98¤\81\94K@ä£@\81\93\89\98¤\85£@£\99\89¢£\89\98¤\85@\95\89¢\93\89£\81\85\96\93¤£\97\81£K@Õ¤\93\93\81@\81\93\89\98¤\85£@\97\96\99££\89£\96\99\85\95\85\95\81£\89¢K@Ä\96\95\85\83@\81@\84¤\89@\85£@\84¤\89@\86\99\89\95\87\89\93\93\81@\83\96\95¢\85\83£\85£¤\99@\89\84@\95\85\83@\94\81¢¢\81K@Á\93\89\98¤\81\94@\85\99\81£@¥\96\93¤£\97\81£K@â\85\84@¤£@\84¤\89@¤£@\93\81\83¤¢@\84\89\83£¤\94@\86\85\99\94\85\95£¤\94\85\93\89\95\83\89\84¤\95£@\95\85\98¤\85K@â\85\84\85\84@\93\81\83\89\95\89\81@\93\85\83£¤¢K@Ĥ\89¢@¢\89£@\81\94\85£@¢\96\84\81\93\85¢@\86\85\93\89¢K@Ĥ\89¢@\95¤\95\83@\85\99\96¢k@\94\81££\89¢@\81£@\84¤\89@\81\83k@\83\96\95¥\81\93\93\89¢@¢\85\94\97\85\99@\99\89¢¤¢K@É\95@\81\84\89\97\89¢\83\89\95\87\93£\99\89\83\85¢@£\85\93\93¤¢k@\89\95@¢¤¢\83\89\97\89£@\94\81¢¢\81\85\88\89\83¤\93\81@\85¤K\7f\15@@@@@@@@@@@@@@Ðk\15@@@@@@@@@@@@@@\7f\97\99\96\97\85\99£\89\85¢\7fz@À\15@@@@@@@@@@@@@@@@\7f£\81\87¢\7fz@I\15@@@@@@@@@@@@@@@@@@\7f£\81\87ñ\7fk\15@@@@@@@@@@@@@@@@@@\7f£\81\87ò\7f\15@@@@@@@@@@@@@@@@Y\15@@@@@@@@@@@@@@Ð\15@@@@@@@@@@@@Ð\15@@@@@@@@@@Y\15@@@@@@@@Ð\15@@@@@@Ðk\15@@@@@@\7f\99\85¢¤\93£¢\7fz@I\15@@@@@@@@À\15@@@@@@@@@@\7f\99¤\93\85É\84\7fz@\7f\91\81¥\81zâõñóò\7fk\15@@@@@@@@@@\7f\94\85¢¢\81\87\85\7fz@À\15@@@@@@@@@@@@\7f£\85§£\7fz@\7f£\88\89¢@\89¢@£\88\85@\94\85¢¢\81\87\85\7f\15@@@@@@@@@@Ðk\15@@@@@@@@@@\7f\93\96\83\81£\89\96\95¢\7fz@I\15@@@@@@@@@@@@À\15@@@@@@@@@@@@@@\7f\97\88¨¢\89\83\81\93Ó\96\83\81£\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@\7f\81\99£\89\86\81\83£Ó\96\83\81£\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@@@\7f¤\99\89\7fz@\7f¦¦¦K\87\96\96\87\93\85K\83\96\94\7fk\15@@@@@@@@@@@@@@@@@@\7f¤\99\89Â\81¢\85É\84\7fz@\7flâÙÃÙÖÖã\7f\15@@@@@@@@@@@@@@@@Ðk\15@@@@@@@@@@@@@@@@\7f\99\85\87\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@@@\7f¢£\81\99£Ó\89\95\85\7fz@ññk\15@@@@@@@@@@@@@@@@@@\7f\85\95\84Ó\89\95\85\7fz@òòòk\15@@@@@@@@@@@@@@@@@@\7f¢£\81\99£Ã\96\93¤\94\95\7fz@õôk\15@@@@@@@@@@@@@@@@@@\7f\85\95\84Ã\96\93¤\94\95\7fz@ô\15@@@@@@@@@@@@@@@@Ð\15@@@@@@@@@@@@@@Ð\15@@@@@@@@@@@@Ð\15@@@@@@@@@@Yk\15@@@@@@@@@@\7f\97\81\99£\89\81\93Æ\89\95\87\85\99\97\99\89\95£¢\7fz@À\15@@@@@@@@@@@@\7f\97\99\89\94\81\99¨Ó\96\83\81£\89\96\95Ó\89\95\85È\81¢\88\7fz@\7f£\88\89¢ÉâãÈÅÈÁâ\7f\15@@@@@@@@@@Ðk\15@@@@@@@@@@\7f\83\96\84\85Æ\93\96¦¢\7fz@I\15@@@@@@@@@@@@À\15@@@@@@@@@@@@@@\7f£\88\99\85\81\84Æ\93\96¦¢\7fz@I\15@@@@@@@@@@@@@@@@À\15@@@@@@@@@@@@@@@@@@\7f\93\96\83\81£\89\96\95¢\7fz@I\15@@@@@@@@@@@@@@@@@@@@À\15@@@@@@@@@@@@@@@@@@@@@@\7f\93\96\83\81£\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@@@@@@@@@\7f\97\88¨¢\89\83\81\93Ó\96\83\81£\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@@@@@@@@@@@\7f\81\99£\89\86\81\83£Ó\96\83\81£\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@@@@@@@@@@@@@\7f¤\99\89\7fz@\7f¦¦¦K\87\96\96\87\93\85K\83\96\94\7fk\15@@@@@@@@@@@@@@@@@@@@@@@@@@@@\7f¤\99\89Â\81¢\85É\84\7fz@\7flâÙÃÙÖÖã\7f\15@@@@@@@@@@@@@@@@@@@@@@@@@@Ðk\15@@@@@@@@@@@@@@@@@@@@@@@@@@\7f\99\85\87\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@@@@@@@@@@@@@\7f¢£\81\99£Ó\89\95\85\7fz@ññk\15@@@@@@@@@@@@@@@@@@@@@@@@@@@@\7f\85\95\84Ó\89\95\85\7fz@òòòk\15@@@@@@@@@@@@@@@@@@@@@@@@@@@@\7f¢£\81\99£Ã\96\93¤\94\95\7fz@õôk\15@@@@@@@@@@@@@@@@@@@@@@@@@@@@\7f\85\95\84Ã\96\93¤\94\95\7fz@ô\15@@@@@@@@@@@@@@@@@@@@@@@@@@Ð\15@@@@@@@@@@@@@@@@@@@@@@@@Ð\15@@@@@@@@@@@@@@@@@@@@@@Ð\15@@@@@@@@@@@@@@@@@@@@Ðk\15@@@@@@@@@@@@@@@@@@@@À\15@@@@@@@@@@@@@@@@@@@@@@\7f\93\96\83\81£\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@@@@@@@@@\7f\97\88¨¢\89\83\81\93Ó\96\83\81£\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@@@@@@@@@@@\7f\81\99£\89\86\81\83£Ó\96\83\81£\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@@@@@@@@@@@@@\7f¤\99\89\7fz@\7f¦¦¦K\87\96\96\87\93\85K\83\96\94\7fk\15@@@@@@@@@@@@@@@@@@@@@@@@@@@@\7f¤\99\89Â\81¢\85É\84\7fz@\7flâÙÃÙÖÖã\7f\15@@@@@@@@@@@@@@@@@@@@@@@@@@Ðk\15@@@@@@@@@@@@@@@@@@@@@@@@@@\7f\99\85\87\89\96\95\7fz@À\15@@@@@@@@@@@@@@@@@@@@@@@@@@@@\7f¢£\81\99£Ó\89\95\85\7fz@òòk\15@@@@@@@@@@@@@@@@@@@@@@@@@@@@\7f\85\95\84Ó\89\95\85\7fz@ôóòók\15@@@@@@@@@@@@@@@@@@@@@@@@@@@@\7f¢£\81\99£Ã\96\93¤\94\95\7fz@õôõk\15@@@@@@@@@@@@@@@@@@@@@@@@@@@@\7f\85\95\84Ã\96\93¤\94\95\7fz@ôóòô\15@@@@@@@@@@@@@@@@@@@@@@@@@@Ð\15@@@@@@@@@@@@@@@@@@@@@@@@Ð\15@@@@@@@@@@@@@@@@@@@@@@Ð\15@@@@@@@@@@@@@@@@@@@@Ð\15@@@@@@@@@@@@@@@@@@Y\15@@@@@@@@@@@@@@@@Ð\15@@@@@@@@@@@@@@Y\15@@@@@@@@@@@@Ð\15@@@@@@@@@@Y\15@@@@@@@@Ð\15@@@@@@Yk\15@@@@@@\7f\93\81\95\87¤\81\87\85\7fz@\7f\85\95`¤¢\7fk\15@@@@@@\7f\83\96\93¤\94\95Ò\89\95\84\7fz@\7f¤£\86ñöÃ\96\84\85ä\95\89£¢\7f\15@@@@Ð\15@@Y\15Ð\15
\ No newline at end of file