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);