This is an automated email from the ASF dual-hosted git repository.

bchapuis pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git


The following commit(s) were added to refs/heads/main by this push:
     new c259a2d7 Fix some issues detected by sonar (#869)
c259a2d7 is described below

commit c259a2d7b757cafd7770fc7e97471b6618d9c983
Author: Bertil Chapuis <[email protected]>
AuthorDate: Tue Jun 11 17:05:47 2024 +0200

    Fix some issues detected by sonar (#869)
    
    * Keep track of skipped bytes
    
    * Suppress warning on controlled input
---
 .../src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java | 2 +-
 .../src/main/java/org/apache/baremaps/pmtiles/PMTilesReader.java     | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java
 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java
index 1b2ae187..acd3a2f3 100644
--- 
a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java
+++ 
b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExecuteSql.java
@@ -92,7 +92,7 @@ public class ExecuteSql implements Task {
    * @param sql The SQL string.
    * @return The SQL statements.
    */
-  @SuppressWarnings("squid:S5852")
+  @SuppressWarnings({"squid:S5852", "squid:S5998"})
   public static Stream<String> split(String sql) {
     return Arrays.stream(sql.split("\\s*;\\s*(?=(?:[^']*'[^']*')*[^']*$)"));
   }
diff --git 
a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/PMTilesReader.java 
b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/PMTilesReader.java
index 3c7b0d29..55ff4c8d 100644
--- 
a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/PMTilesReader.java
+++ 
b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/PMTilesReader.java
@@ -60,7 +60,10 @@ public class PMTilesReader {
   public List<Entry> getDirectory(long offset) {
     var header = getHeader();
     try (var input = Files.newInputStream(path)) {
-      input.skip(offset);
+      long skipped = 0;
+      while (skipped < offset) {
+        skipped += input.skip(offset - skipped);
+      }
       try (var decompressed =
           new 
LittleEndianDataInputStream(header.getInternalCompression().decompress(input))) 
{
         return PMTiles.deserializeEntries(decompressed);

Reply via email to