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
commit 607861f1d8ff255a5b9a154ddf033bde4e4a962f Author: Bertil Chapuis <[email protected]> AuthorDate: Tue Jun 11 16:55:10 2024 +0200 Fix some issues detected by sonar (#868) * Close the underlying ressources * Handle null values * Cast operands to double * Capitalize enums * Remove unnecessary log * Suppress warnings when irrelevant * Refactor some code --- .../java/org/apache/baremaps/cli/map/Export.java | 2 +- .../java/org/apache/baremaps/cli/map/Serve.java | 76 ++++++++++++---------- .../storage/shapefile/ShapefileDataTable.java | 12 +++- .../shapefile/internal/ShapefileByteReader.java | 8 +-- .../shapefile/internal/ShapefileGeometryType.java | 30 ++++----- .../shapefile/internal/ShapefileInputStream.java | 9 ++- .../tilestore/postgres/PostgresTileStore.java | 5 +- .../org/apache/baremaps/utils/Compression.java | 20 +++--- .../apache/baremaps/utils/ObjectMapperUtils.java | 2 +- .../apache/baremaps/workflow/WorkflowExecutor.java | 4 -- .../baremaps/workflow/tasks/CleanContextCache.java | 4 +- .../baremaps/workflow/tasks/CleanContextData.java | 4 +- .../baremaps/workflow/tasks/DecompressFile.java | 20 +++--- .../baremaps/workflow/tasks/ExportVectorTiles.java | 18 ++--- .../baremaps/workflow/tasks/ImportGeoPackage.java | 1 + .../apache/baremaps/geocoderosm/OSMIndexTest.java | 4 +- .../org/apache/baremaps/workflow/WorkflowTest.java | 7 +- .../workflow/tasks/ExecuteSqlIntegrationTest.java | 1 + .../workflow/tasks/ExecuteSqlScriptTest.java | 1 + .../baremaps/data/algorithm/ExternalMergeSort.java | 1 + .../baremaps/data/collection/DataConversions.java | 2 +- .../org/apache/baremaps/data/storage/DataRow.java | 2 +- .../org/apache/baremaps/data/type/WKBDataType.java | 14 +++- .../geoparquet/data/GeoParquetGroupImpl.java | 8 +-- .../data/GeoParquetGroupRecordConverter.java | 4 +- .../baremaps/maplibre/expression/Expressions.java | 23 +++---- .../apache/baremaps/maplibre/tileset/Database.java | 4 +- .../maplibre/vectortile/VectorTileDecoder.java | 5 +- .../maplibre/vectortile/VectorTileEncoder.java | 2 +- .../maplibre/vectortile/VectorTileFunctions.java | 5 +- .../function/RelationMultiPolygonBuilder.java | 1 + .../openstreetmap/function/WayGeometryBuilder.java | 1 + .../baremaps/openstreetmap/state/StateReader.java | 4 +- .../org/apache/baremaps/pmtiles/Compression.java | 26 ++++---- .../org/apache/baremaps/pmtiles/PMTilesWriter.java | 4 +- .../java/org/apache/baremaps/pmtiles/TileType.java | 12 ++-- .../org/apache/baremaps/pmtiles/PMTilesTest.java | 18 ++--- .../org/apache/baremaps/server/ChangeResource.java | 1 + .../baremaps/testing/GeometryAssertions.java | 10 ++- 39 files changed, 210 insertions(+), 165 deletions(-) diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Export.java b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Export.java index 520a7aac..741e3403 100644 --- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Export.java +++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Export.java @@ -55,7 +55,7 @@ public class Export implements Callable<Integer> { @Option(names = {"--format"}, paramLabel = "FORMAT", description = "The format of the repository.") - private ExportVectorTiles.Format format = ExportVectorTiles.Format.file; + private ExportVectorTiles.Format format = ExportVectorTiles.Format.FILE; @Override public Integer call() throws Exception { diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Serve.java b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Serve.java index 34a054bf..cd99a8d2 100644 --- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Serve.java +++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Serve.java @@ -90,54 +90,58 @@ public class Serve implements Callable<Integer> { var tileset = objectMapper.readValue(configReader.read(tilesetPath), Tileset.class); var datasource = PostgresUtils.createDataSourceFromObject(tileset.getDatabase()); - var tileStore = new PostgresTileStore(datasource, tileset); - var tileCache = new TileCache(tileStore, caffeineSpec); - var tileStoreSupplier = (Supplier<TileStore>) () -> tileCache; + try ( + var tileStore = new PostgresTileStore(datasource, tileset); + var tileCache = new TileCache(tileStore, caffeineSpec)) { - var style = objectMapper.readValue(configReader.read(stylePath), Style.class); - var styleSupplier = (Supplier<Style>) () -> style; + var tileStoreSupplier = (Supplier<TileStore>) () -> tileCache; - var tileJSON = objectMapper.readValue(configReader.read(tilesetPath), TileJSON.class); - var tileJSONSupplier = (Supplier<TileJSON>) () -> tileJSON; + var style = objectMapper.readValue(configReader.read(stylePath), Style.class); + var styleSupplier = (Supplier<Style>) () -> style; - var serverBuilder = Server.builder(); - serverBuilder.http(port); + var tileJSON = objectMapper.readValue(configReader.read(tilesetPath), TileJSON.class); + var tileJSONSupplier = (Supplier<TileJSON>) () -> tileJSON; - var jsonResponseConverter = new JacksonResponseConverterFunction(objectMapper); - serverBuilder.annotatedService(new TileResource(tileStoreSupplier), jsonResponseConverter); - serverBuilder.annotatedService(new StyleResource(styleSupplier), jsonResponseConverter); - serverBuilder.annotatedService(new TileJSONResource(tileJSONSupplier), jsonResponseConverter); - serverBuilder.annotatedService(new SearchResource(datasource), jsonResponseConverter); + var serverBuilder = Server.builder(); + serverBuilder.http(port); - var index = HttpFile.of(ClassLoader.getSystemClassLoader(), "/static/server.html"); - serverBuilder.service("/", index.asService()); - serverBuilder.serviceUnder("/", FileService.of(ClassLoader.getSystemClassLoader(), "/static")); + var jsonResponseConverter = new JacksonResponseConverterFunction(objectMapper); + serverBuilder.annotatedService(new TileResource(tileStoreSupplier), jsonResponseConverter); + serverBuilder.annotatedService(new StyleResource(styleSupplier), jsonResponseConverter); + serverBuilder.annotatedService(new TileJSONResource(tileJSONSupplier), jsonResponseConverter); + serverBuilder.annotatedService(new SearchResource(datasource), jsonResponseConverter); - if (assetsPath != null) { - serverBuilder.serviceUnder("/assets", FileService.of(assetsPath)); - } + var index = HttpFile.of(ClassLoader.getSystemClassLoader(), "/static/server.html"); + serverBuilder.service("/", index.asService()); + serverBuilder.serviceUnder("/", + FileService.of(ClassLoader.getSystemClassLoader(), "/static")); + + if (assetsPath != null) { + serverBuilder.serviceUnder("/assets", FileService.of(assetsPath)); + } - serverBuilder.decorator(CorsService.builderForAnyOrigin() - .allowRequestMethods(HttpMethod.GET, HttpMethod.POST, HttpMethod.PUT, HttpMethod.DELETE, - HttpMethod.OPTIONS, HttpMethod.HEAD) - .allowRequestHeaders(HttpHeaderNames.ORIGIN, HttpHeaderNames.CONTENT_TYPE, - HttpHeaderNames.ACCEPT, HttpHeaderNames.AUTHORIZATION) - .allowCredentials() - .exposeHeaders(HttpHeaderNames.LOCATION) - .newDecorator()); + serverBuilder.decorator(CorsService.builderForAnyOrigin() + .allowRequestMethods(HttpMethod.GET, HttpMethod.POST, HttpMethod.PUT, HttpMethod.DELETE, + HttpMethod.OPTIONS, HttpMethod.HEAD) + .allowRequestHeaders(HttpHeaderNames.ORIGIN, HttpHeaderNames.CONTENT_TYPE, + HttpHeaderNames.ACCEPT, HttpHeaderNames.AUTHORIZATION) + .allowCredentials() + .exposeHeaders(HttpHeaderNames.LOCATION) + .newDecorator()); - serverBuilder.serviceUnder("/docs", new DocService()); + serverBuilder.serviceUnder("/docs", new DocService()); - serverBuilder.disableServerHeader(); - serverBuilder.disableDateHeader(); + serverBuilder.disableServerHeader(); + serverBuilder.disableDateHeader(); - var server = serverBuilder.build(); + var server = serverBuilder.build(); - var startFuture = server.start(); - startFuture.join(); + var startFuture = server.start(); + startFuture.join(); - var shutdownFuture = server.closeOnJvmShutdown(); - shutdownFuture.join(); + var shutdownFuture = server.closeOnJvmShutdown(); + shutdownFuture.join(); + } return 0; } diff --git a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/ShapefileDataTable.java b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/ShapefileDataTable.java index 1ee7f693..3b170ddf 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/ShapefileDataTable.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/ShapefileDataTable.java @@ -119,7 +119,11 @@ public class ShapefileDataTable implements DataTable { return next != null; } catch (IOException e) { logger.error("Malformed shapefile", e); - shapefileInputStream.close(); + try { + shapefileInputStream.close(); + } catch (IOException ex) { + // ignore + } return false; } } @@ -137,7 +141,11 @@ public class ShapefileDataTable implements DataTable { next = null; return current; } catch (Exception e) { - shapefileInputStream.close(); + try { + shapefileInputStream.close(); + } catch (IOException ex) { + // ignore + } throw new NoSuchElementException(); } } diff --git a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileByteReader.java b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileByteReader.java index 61b1e39f..0a88c19a 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileByteReader.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileByteReader.java @@ -278,19 +278,19 @@ public class ShapefileByteReader extends CommonByteReader { } switch (shapefileGeometryType) { - case NullShape: + case NULL_SHAPE: loadNullRow(row); break; - case Point: + case POINT: loadPointRow(row); break; - case Polygon: + case POLYGON: loadPolygonRow(row); break; - case PolyLine: + case POLY_LINE: loadPolylineRow(row); break; diff --git a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileGeometryType.java b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileGeometryType.java index 18da5295..94f22267 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileGeometryType.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileGeometryType.java @@ -35,22 +35,20 @@ import java.util.Map; * Specification</a> */ public enum ShapefileGeometryType { - NullShape(0), - Point(1), - PolyLine(3), - Polygon(5), - MultiPoint(8), - PointZ(11), - PolyLineZ( - 13), - PolygonZ(15), - MultiPointZ( - 18), - PointM(21), - PolyLineM(23), - PolygonM(25), - MultiPointM(28), - MultiPatch(31); + NULL_SHAPE(0), + POINT(1), + POLY_LINE(3), + POLYGON(5), + MULTI_POINT(8), + POINT_Z(11), + POLY_LINE_Z(13), + POLYGON_Z(15), + MULTI_POINT_Z(18), + POINT_M(21), + POLY_LINE_M(23), + POLYGON_M(25), + MULTI_POINT_M(28), + MULTI_PATCH(31); // used for initializing the enumeration private int value; diff --git a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileInputStream.java b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileInputStream.java index bd7a1e9a..3e9140ff 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileInputStream.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/storage/shapefile/internal/ShapefileInputStream.java @@ -109,7 +109,14 @@ public class ShapefileInputStream extends InputStream { /** @see java.io.InputStream#close() */ @Override - public void close() {} + public void close() throws IOException { + if (this.dbaseReader != null) { + this.dbaseReader.close(); + } + if (this.shapefileReader != null) { + this.shapefileReader.close(); + } + } /** * Read next feature responding to the SQL query. diff --git a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/postgres/PostgresTileStore.java b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/postgres/PostgresTileStore.java index af132f0a..fe72fbd4 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/tilestore/postgres/PostgresTileStore.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/tilestore/postgres/PostgresTileStore.java @@ -125,6 +125,7 @@ public class PostgresTileStore implements TileStore { * @param zoom the zoom level * @return */ + @SuppressWarnings("squid:S3776") protected static Query prepareQuery(Tileset tileset, int zoom) { // Initialize a builder for the tile sql var tileSql = new StringBuilder(); @@ -164,8 +165,8 @@ public class PostgresTileStore implements TileStore { .replace("$zoom", String.valueOf(zoom)); var querySqlWithParams = String.format( "SELECT ST_AsMVTGeom(t.geom, ST_TileEnvelope(?, ?, ?)) AS geom, t.tags - 'id' AS tags, t.id AS id " - + - "FROM (%s) AS t WHERE t.geom IS NOT NULL AND t.geom && ST_TileEnvelope(?, ?, ?, margin => (64.0/4096))", + + "FROM (%s) AS t WHERE t.geom IS NOT NULL " + + "AND t.geom && ST_TileEnvelope(?, ?, ?, margin => (64.0/4096))", querySql); layerSql.append(querySqlWithParams); diff --git a/baremaps-core/src/main/java/org/apache/baremaps/utils/Compression.java b/baremaps-core/src/main/java/org/apache/baremaps/utils/Compression.java index 46a2569a..852e9ef8 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/utils/Compression.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/utils/Compression.java @@ -27,32 +27,32 @@ import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; import org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream; public enum Compression { - none, - gzip, - bzip2; + NONE, + GZIP, + BZIP2; public static Compression detect(Path file) { if (file.toString().endsWith(".gz")) { - return gzip; + return GZIP; } else if (file.toString().endsWith(".bz2")) { - return bzip2; + return BZIP2; } else { - return none; + return NONE; } } public InputStream decompress(InputStream inputStream) throws IOException { return switch (this) { - case gzip -> new GZIPInputStream(inputStream); - case bzip2 -> new BZip2CompressorInputStream(inputStream); + case GZIP -> new GZIPInputStream(inputStream); + case BZIP2 -> new BZip2CompressorInputStream(inputStream); default -> inputStream; }; } public OutputStream compress(OutputStream outputStream) throws IOException { return switch (this) { - case gzip -> new GZIPOutputStream(outputStream); - case bzip2 -> new BZip2CompressorOutputStream(outputStream); + case GZIP -> new GZIPOutputStream(outputStream); + case BZIP2 -> new BZip2CompressorOutputStream(outputStream); default -> outputStream; }; } diff --git a/baremaps-core/src/main/java/org/apache/baremaps/utils/ObjectMapperUtils.java b/baremaps-core/src/main/java/org/apache/baremaps/utils/ObjectMapperUtils.java index 2c9ea560..0b642399 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/utils/ObjectMapperUtils.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/utils/ObjectMapperUtils.java @@ -28,7 +28,7 @@ public class ObjectMapperUtils { public static ObjectMapper objectMapper() { return new ObjectMapper() - .registerModule(Expressions.jacksonModule()) + .registerModule(Expressions.createModule()) .configure(Feature.IGNORE_UNKNOWN, true) .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) .configure(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true) diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowExecutor.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowExecutor.java index 36d3c38b..7295c448 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowExecutor.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/WorkflowExecutor.java @@ -98,8 +98,6 @@ public class WorkflowExecutor implements AutoCloseable { if (Graphs.hasCycle(this.graph)) { throw new WorkflowException("The workflow must be a directed acyclic graph"); } - - logger.info("Workflow graph: {}", this.graph); } /** @@ -230,10 +228,8 @@ public class WorkflowExecutor implements AutoCloseable { if (workflowStart.isPresent() && workflowEnd.isPresent()) { var workflowDuration = Duration.ofMillis(workflowEnd.getAsLong() - workflowStart.getAsLong()); - logger.info("Workflow graph: {}", this.graph); logger.info(" Duration: {}", formatDuration(workflowDuration)); } else { - logger.info("Workflow graph: {}", this.graph); logger.info(" Duration: unknown"); } diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextCache.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextCache.java index 625506a7..a9f8a075 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextCache.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextCache.java @@ -29,7 +29,9 @@ public class CleanContextCache implements Task { /** * Constructs an {@code CleanContextCache}. */ - public CleanContextCache() {} + public CleanContextCache() { + // Default constructor + } /** * {@inheritDoc} diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextData.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextData.java index c90696a1..56062bfb 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextData.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/CleanContextData.java @@ -29,7 +29,9 @@ public class CleanContextData implements Task { /** * Constructs an {@code CleanContextData}. */ - public CleanContextData() {} + public CleanContextData() { + // Default constructor + } @Override public void execute(WorkflowContext context) throws Exception { diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DecompressFile.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DecompressFile.java index ac364246..d3d0d65b 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DecompressFile.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/DecompressFile.java @@ -45,11 +45,11 @@ public class DecompressFile implements Task { * The compression format. */ public enum Compression { - zip, - targz, - tarbz2, - gzip, - bzip2; + ZIP, + TARGZ, + TARBZ2, + GZIP, + BZIP2; } private Path source; @@ -84,11 +84,11 @@ public class DecompressFile implements Task { var sourcePath = source.toAbsolutePath(); var targetPath = target.toAbsolutePath(); switch (compression) { - case zip -> decompressZip(sourcePath, targetPath); - case targz -> decompressTarGz(sourcePath, targetPath); - case tarbz2 -> decompressTarBz2(sourcePath, targetPath); - case gzip -> decompressGzip(sourcePath, targetPath); - case bzip2 -> decompressBzip2(sourcePath, targetPath); + case ZIP -> decompressZip(sourcePath, targetPath); + case TARGZ -> decompressTarGz(sourcePath, targetPath); + case TARBZ2 -> decompressTarBz2(sourcePath, targetPath); + case GZIP -> decompressGzip(sourcePath, targetPath); + case BZIP2 -> decompressBzip2(sourcePath, targetPath); } } diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExportVectorTiles.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExportVectorTiles.java index 0875a5d9..0a1b9f0c 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExportVectorTiles.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ExportVectorTiles.java @@ -54,9 +54,9 @@ public class ExportVectorTiles implements Task { private static final Logger logger = LoggerFactory.getLogger(ExportVectorTiles.class); public enum Format { - file, - mbtiles, - pmtiles + FILE, + MBTILES, + PMTILES } private Path tileset; @@ -101,9 +101,9 @@ public class ExportVectorTiles implements Task { // Write the static files var directory = switch (format) { - case file -> repository; - case mbtiles -> repository.getParent(); - case pmtiles -> repository.getParent(); + case FILE -> repository; + case MBTILES -> repository.getParent(); + case PMTILES -> repository.getParent(); }; Files.createDirectories(directory); try (var html = this.getClass().getResourceAsStream("/static/server.html")) { @@ -171,16 +171,16 @@ public class ExportVectorTiles implements Task { private TileStore targetTileStore(Tileset source) throws TileStoreException, IOException { switch (format) { - case file: + case FILE: return new FileTileStore(repository.resolve("tiles")); - case mbtiles: + case MBTILES: Files.deleteIfExists(repository); var dataSource = SqliteUtils.createDataSource(repository, false); var tilesStore = new MBTilesStore(dataSource); tilesStore.initializeDatabase(); tilesStore.writeMetadata(metadata(source)); return tilesStore; - case pmtiles: + case PMTILES: Files.deleteIfExists(repository); return new PMTilesStore(repository, source); default: diff --git a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportGeoPackage.java b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportGeoPackage.java index 88801a53..cf8078a8 100644 --- a/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportGeoPackage.java +++ b/baremaps-core/src/main/java/org/apache/baremaps/workflow/tasks/ImportGeoPackage.java @@ -33,6 +33,7 @@ import org.slf4j.LoggerFactory; /** * Import a GeoPackage into a database. */ +@SuppressWarnings("squid:S2699") public class ImportGeoPackage implements Task { private static final Logger logger = LoggerFactory.getLogger(ImportGeoPackage.class); diff --git a/baremaps-core/src/test/java/org/apache/baremaps/geocoderosm/OSMIndexTest.java b/baremaps-core/src/test/java/org/apache/baremaps/geocoderosm/OSMIndexTest.java index 7b4d8a7d..f267f600 100644 --- a/baremaps-core/src/test/java/org/apache/baremaps/geocoderosm/OSMIndexTest.java +++ b/baremaps-core/src/test/java/org/apache/baremaps/geocoderosm/OSMIndexTest.java @@ -18,8 +18,7 @@ package org.apache.baremaps.geocoderosm; import static org.apache.baremaps.testing.TestFiles.SAMPLE_OSM_PBF; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import java.io.IOException; import java.nio.file.Files; @@ -162,6 +161,7 @@ public class OSMIndexTest { for (ScoreDoc scoreDoc : topDocs.scoreDocs) { System.out.println(searcher.doc(scoreDoc.doc)); } + assertNotNull(topDocs); } } diff --git a/baremaps-core/src/test/java/org/apache/baremaps/workflow/WorkflowTest.java b/baremaps-core/src/test/java/org/apache/baremaps/workflow/WorkflowTest.java index 9aadd107..d55d913a 100644 --- a/baremaps-core/src/test/java/org/apache/baremaps/workflow/WorkflowTest.java +++ b/baremaps-core/src/test/java/org/apache/baremaps/workflow/WorkflowTest.java @@ -27,6 +27,7 @@ import org.apache.baremaps.workflow.tasks.DecompressFile.Compression; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +@SuppressWarnings("squid:S2699") class WorkflowTest extends PostgresContainerTest { @Test @@ -36,7 +37,7 @@ class WorkflowTest extends PostgresContainerTest { new DownloadUrl("https://naciscdn.org/naturalearth/packages/natural_earth_vector.gpkg.zip", Paths.get("natural_earth_vector.gpkg.zip"), false), new DecompressFile(Paths.get("natural_earth_vector.gpkg.zip"), - Paths.get("natural_earth_vector"), Compression.zip), + Paths.get("natural_earth_vector"), Compression.ZIP), new ImportGeoPackage(Paths.get("natural_earth_vector/packages/natural_earth_vector.gpkg"), 4326, jdbcUrl(), 3857))))); @@ -51,7 +52,7 @@ class WorkflowTest extends PostgresContainerTest { new DownloadUrl("https://osmdata.openstreetmap.de/download/coastlines-split-4326.zip", Paths.get("coastlines-split-4326.zip"), false), new DecompressFile(Paths.get("coastlines-split-4326.zip"), - Paths.get("coastlines-split-4326"), Compression.zip), + Paths.get("coastlines-split-4326"), Compression.ZIP), new ImportShapefile(Paths.get("coastlines-split-4326/coastlines-split-4326/lines.shp"), 4326, jdbcUrl(), 3857))))); @@ -109,7 +110,7 @@ class WorkflowTest extends PostgresContainerTest { new Step("unzip-shapefile", List.of("fetch-shapefile"), List.of( new DecompressFile(Paths.get("downloads/simplified-water-polygons-split-3857.zip"), - Paths.get("archives"), Compression.zip))), + Paths.get("archives"), Compression.ZIP))), new Step("fetch-projection", List.of("unzip-shapefile"), List.of(new DownloadUrl("https://spatialreference.org/ref/sr-org/epsg3857/prj/", Paths.get( diff --git a/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlIntegrationTest.java b/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlIntegrationTest.java index 9355db58..91e2c43f 100644 --- a/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlIntegrationTest.java +++ b/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlIntegrationTest.java @@ -24,6 +24,7 @@ import org.apache.baremaps.workflow.WorkflowContext; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +@SuppressWarnings("squid:S2699") class ExecuteSqlIntegrationTest extends PostgresContainerTest { @Test diff --git a/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlScriptTest.java b/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlScriptTest.java index fcd8e1c5..aeb04aac 100644 --- a/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlScriptTest.java +++ b/baremaps-core/src/test/java/org/apache/baremaps/workflow/tasks/ExecuteSqlScriptTest.java @@ -25,6 +25,7 @@ import org.apache.baremaps.workflow.WorkflowContext; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +@SuppressWarnings("squid:S2699") class ExecuteSqlScriptTest extends PostgresContainerTest { @Test diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/algorithm/ExternalMergeSort.java b/baremaps-data/src/main/java/org/apache/baremaps/data/algorithm/ExternalMergeSort.java index 37232e10..040886ff 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/algorithm/ExternalMergeSort.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/algorithm/ExternalMergeSort.java @@ -30,6 +30,7 @@ import org.apache.baremaps.data.collection.DataList; * <a href="https://github.com/lemire/externalsortinginjava">externalsortinginjava</a> (public * domain). */ +@SuppressWarnings({"squid:S2095", "squid:S3776"}) public class ExternalMergeSort { /** diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataConversions.java b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataConversions.java index f0e63dfb..4a315fb2 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataConversions.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/collection/DataConversions.java @@ -219,7 +219,7 @@ public class DataConversions { @Override public long addIndexed(E value) { list.add(value); - return list.size() - 1; + return list.size() - 1L; } @Override diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/storage/DataRow.java b/baremaps-data/src/main/java/org/apache/baremaps/data/storage/DataRow.java index 25476c20..5c8df9cc 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/storage/DataRow.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/storage/DataRow.java @@ -36,7 +36,7 @@ public interface DataRow { * * @return the values of the columns in the row */ - List<?> values(); + List<Object> values(); /** * Returns the value of the specified column. diff --git a/baremaps-data/src/main/java/org/apache/baremaps/data/type/WKBDataType.java b/baremaps-data/src/main/java/org/apache/baremaps/data/type/WKBDataType.java index 49c2dea8..1c3b3bfe 100644 --- a/baremaps-data/src/main/java/org/apache/baremaps/data/type/WKBDataType.java +++ b/baremaps-data/src/main/java/org/apache/baremaps/data/type/WKBDataType.java @@ -36,7 +36,11 @@ public class WKBDataType implements DataType<Geometry> { @Override public int size(final Geometry value) { byte[] bytes = serialize(value); - return Integer.BYTES + bytes.length; + if (bytes == null) { + return Integer.BYTES; + } else { + return Integer.BYTES + bytes.length; + } } /** {@inheritDoc} */ @@ -49,8 +53,12 @@ public class WKBDataType implements DataType<Geometry> { @Override public void write(final ByteBuffer buffer, final int position, final Geometry value) { byte[] bytes = serialize(value); - buffer.putInt(position, Integer.BYTES + bytes.length); - buffer.put(position + Integer.BYTES, bytes); + if (bytes == null) { + buffer.putInt(position, Integer.BYTES); + } else { + buffer.putInt(position, Integer.BYTES + bytes.length); + buffer.put(position + Integer.BYTES, bytes); + } } /** {@inheritDoc} */ diff --git a/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupImpl.java b/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupImpl.java index 9da6d93d..7e85b013 100644 --- a/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupImpl.java +++ b/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupImpl.java @@ -437,16 +437,16 @@ public class GeoParquetGroupImpl implements GeoParquetGroup { public List<Envelope> getEnvelopeValues(int fieldIndex) { return getGroupValues(fieldIndex).stream().map(group -> { double xMin = group.getSchema().fields().get(0).type().equals(Type.FLOAT) - ? group.getFloatValue(0) + ? (double) group.getFloatValue(0) : group.getDoubleValue(0); double yMin = group.getSchema().fields().get(1).type().equals(Type.FLOAT) - ? group.getFloatValue(1) + ? (double) group.getFloatValue(1) : group.getDoubleValue(1); double xMax = group.getSchema().fields().get(2).type().equals(Type.FLOAT) - ? group.getFloatValue(2) + ? (double) group.getFloatValue(2) : group.getDoubleValue(2); double yMax = group.getSchema().fields().get(0).type().equals(Type.FLOAT) - ? group.getFloatValue(3) + ? (double) group.getFloatValue(3) : group.getDoubleValue(3); return new Envelope(xMin, xMax, yMin, yMax); }).toList(); diff --git a/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupRecordConverter.java b/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupRecordConverter.java index 54cfb797..ad1b1d2d 100644 --- a/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupRecordConverter.java +++ b/baremaps-geoparquet/src/main/java/org/apache/baremaps/geoparquet/data/GeoParquetGroupRecordConverter.java @@ -51,7 +51,9 @@ public class GeoParquetGroupRecordConverter extends RecordMaterializer<GeoParque } @Override - public void end() {} + public void end() { + // Do nothing + } }; } diff --git a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/expression/Expressions.java b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/expression/Expressions.java index c20eab16..72eae357 100644 --- a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/expression/Expressions.java +++ b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/expression/Expressions.java @@ -503,24 +503,14 @@ public interface Expressions { "Unknown expression: " + arrayList.get(0).asText()); }; } - } - static Expression read(String json) throws IOException { - var mapper = new ObjectMapper(); - var simpleModule = new SimpleModule("SimpleModule", new Version(1, 0, 0, null)); - simpleModule.addDeserializer(Expression.class, new ExpressionDeserializer()); - mapper.registerModule(simpleModule); - return mapper.readValue(new StringReader(json), Expression.class); + return createObjectMapper().readValue(new StringReader(json), Expression.class); } static String write(Expression expression) throws IOException { - var mapper = new ObjectMapper(); - var simpleModule = new SimpleModule("SimpleModule", new Version(1, 0, 0, null)); - simpleModule.addSerializer(Expression.class, new ExpressionSerializer()); - mapper.registerModule(simpleModule); - return mapper.writeValueAsString(expression); + return createObjectMapper().writeValueAsString(expression); } static Predicate<Feature> asPredicate(Expression expression) { @@ -534,8 +524,15 @@ public interface Expressions { }; } - public static Module jacksonModule() { + static ObjectMapper createObjectMapper() { + var mapper = new ObjectMapper(); + mapper.registerModule(createModule()); + return mapper; + } + + static Module createModule() { var simpleModule = new SimpleModule("SimpleModule", new Version(1, 0, 0, null)); + simpleModule.addSerializer(Expression.class, new ExpressionSerializer()); simpleModule.addDeserializer(Expression.class, new ExpressionDeserializer()); return simpleModule; } diff --git a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/tileset/Database.java b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/tileset/Database.java index d4e4334e..b332357d 100644 --- a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/tileset/Database.java +++ b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/tileset/Database.java @@ -61,7 +61,9 @@ public class Database { @JsonProperty("readOnly") private Boolean readOnly; - public Database() {} + public Database() { + // Default constructor + } public String getDataSourceClassName() { return dataSourceClassName; diff --git a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileDecoder.java b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileDecoder.java index b0537992..b37abc6c 100644 --- a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileDecoder.java +++ b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileDecoder.java @@ -48,7 +48,9 @@ public class VectorTileDecoder { /** * Constructs a new vector tile decoder. */ - public VectorTileDecoder() {} + public VectorTileDecoder() { + // Default constructor + } /** * Decodes a vector tile. @@ -208,6 +210,7 @@ public class VectorTileDecoder { * @param encoding The encoding of the point geometry * @return The decoded point geometry */ + @SuppressWarnings("squid:S3776") protected Geometry decodePoint(List<Integer> encoding) { List<Coordinate> coordinates = new ArrayList<>(); diff --git a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileEncoder.java b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileEncoder.java index e51ab027..8af06bbe 100644 --- a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileEncoder.java +++ b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileEncoder.java @@ -47,7 +47,7 @@ public class VectorTileEncoder { * Constructs a vector tile encoder. */ public VectorTileEncoder() { - + // Default constructor } /** diff --git a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileFunctions.java b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileFunctions.java index c65a8f34..d0b06401 100644 --- a/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileFunctions.java +++ b/baremaps-maplibre/src/main/java/org/apache/baremaps/maplibre/vectortile/VectorTileFunctions.java @@ -123,8 +123,9 @@ public class VectorTileFunctions { * @return The clipped geometry */ private static Geometry clipToTile(Geometry geometry, int extent, int buffer) { - Envelope envelope = - new Envelope(-buffer, extent + buffer, -buffer, extent + buffer); + Envelope envelope = new Envelope( + -buffer, (double) extent + buffer, + -buffer, (double) extent + buffer); GeometryFactory geometryFactory = new GeometryFactory(); Geometry tile = geometryFactory.toGeometry(envelope); return geometry.intersection(tile); diff --git a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/RelationMultiPolygonBuilder.java b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/RelationMultiPolygonBuilder.java index 5009f64b..73a674f5 100644 --- a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/RelationMultiPolygonBuilder.java +++ b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/RelationMultiPolygonBuilder.java @@ -81,6 +81,7 @@ public class RelationMultiPolygonBuilder implements Consumer<Entity> { } } + @SuppressWarnings("squid:S3776") private void buildMultiPolygon(Relation relation) { // Categorize the members of the relation by their role var outerMembers = new ArrayList<Member>(); diff --git a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/WayGeometryBuilder.java b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/WayGeometryBuilder.java index a93e9903..1df439ac 100644 --- a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/WayGeometryBuilder.java +++ b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/function/WayGeometryBuilder.java @@ -51,6 +51,7 @@ public class WayGeometryBuilder implements Consumer<Entity> { /** {@inheritDoc} */ @Override + @SuppressWarnings("squid:S3776") public void accept(Entity entity) { if (entity instanceof Way way) { try { diff --git a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/state/StateReader.java b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/state/StateReader.java index ded415dd..d9e84dd5 100644 --- a/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/state/StateReader.java +++ b/baremaps-openstreetmap/src/main/java/org/apache/baremaps/openstreetmap/state/StateReader.java @@ -109,6 +109,7 @@ public class StateReader implements Reader<State> { * @param timestamp the timestamp * @return the state */ + @SuppressWarnings("squid:S3776") public Optional<State> getStateFromTimestamp(LocalDateTime timestamp) { var upper = getState(Optional.empty()); if (upper.isEmpty()) { @@ -147,7 +148,8 @@ public class StateReader implements Reader<State> { - lower.get().getTimestamp().toEpochSecond(ZoneOffset.UTC); var seqInt = upper.get().getSequenceNumber() - lower.get().getSequenceNumber(); var goal = timestamp.getSecond() - lower.get().getTimestamp().getSecond(); - baseSplitId = lower.get().getSequenceNumber() + (long) Math.ceil(goal * seqInt / tsInt); + baseSplitId = + lower.get().getSequenceNumber() + (long) Math.ceil((double) (goal * seqInt) / tsInt); if (baseSplitId >= upper.get().getSequenceNumber()) { baseSplitId = upper.get().getSequenceNumber() - 1; } diff --git a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/Compression.java b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/Compression.java index facc0138..f2891b27 100644 --- a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/Compression.java +++ b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/Compression.java @@ -22,18 +22,18 @@ import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; enum Compression { - Unknown, - None, - Gzip, - Brotli, - Zstd; + UNKNOWN, + NONE, + GZIP, + BROTLI, + ZSTD; InputStream decompress(InputStream inputStream) throws IOException { return switch (this) { - case None -> inputStream; - case Gzip -> decompressGzip(inputStream); - case Brotli -> decompressBrotli(inputStream); - case Zstd -> decompressZstd(inputStream); + case NONE -> inputStream; + case GZIP -> decompressGzip(inputStream); + case BROTLI -> decompressBrotli(inputStream); + case ZSTD -> decompressZstd(inputStream); default -> throw new RuntimeException("Unknown compression"); }; } @@ -52,10 +52,10 @@ enum Compression { OutputStream compress(OutputStream outputStream) throws IOException { return switch (this) { - case None -> outputStream; - case Gzip -> compressGzip(outputStream); - case Brotli -> compressBrotli(outputStream); - case Zstd -> compressZstd(outputStream); + case NONE -> outputStream; + case GZIP -> compressGzip(outputStream); + case BROTLI -> compressBrotli(outputStream); + case ZSTD -> compressZstd(outputStream); default -> throw new RuntimeException("Unknown compression"); }; } diff --git a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/PMTilesWriter.java b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/PMTilesWriter.java index 5d767022..a6e1e940 100644 --- a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/PMTilesWriter.java +++ b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/PMTilesWriter.java @@ -28,7 +28,7 @@ import java.util.*; public class PMTilesWriter { - private Compression compression = Compression.Gzip; + private Compression compression = Compression.GZIP; private Path path; @@ -183,7 +183,7 @@ public class PMTilesWriter { header.setInternalCompression(compression); header.setTileCompression(compression); - header.setTileType(TileType.mvt); + header.setTileType(TileType.MVT); header.setRootOffset(rootOffset); header.setRootLength(rootLength); header.setMetadataOffset(metadataOffset); diff --git a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/TileType.java b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/TileType.java index b97cd981..001db982 100644 --- a/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/TileType.java +++ b/baremaps-pmtiles/src/main/java/org/apache/baremaps/pmtiles/TileType.java @@ -18,10 +18,10 @@ package org.apache.baremaps.pmtiles; enum TileType { - unknown, - mvt, - png, - jpeg, - webp, - avif, + UNKNOWN, + MVT, + PNG, + JPEG, + WEBP, + AVIF, } diff --git a/baremaps-pmtiles/src/test/java/org/apache/baremaps/pmtiles/PMTilesTest.java b/baremaps-pmtiles/src/test/java/org/apache/baremaps/pmtiles/PMTilesTest.java index affb0514..5bb38642 100644 --- a/baremaps-pmtiles/src/test/java/org/apache/baremaps/pmtiles/PMTilesTest.java +++ b/baremaps-pmtiles/src/test/java/org/apache/baremaps/pmtiles/PMTilesTest.java @@ -144,9 +144,9 @@ class PMTilesTest { assertEquals(header.getNumTileEntries(), 1); assertEquals(header.getNumTileContents(), 1); assertFalse(header.isClustered()); - assertEquals(header.getInternalCompression(), Compression.Gzip); - assertEquals(header.getTileCompression(), Compression.Gzip); - assertEquals(header.getTileType(), TileType.mvt); + assertEquals(header.getInternalCompression(), Compression.GZIP); + assertEquals(header.getTileCompression(), Compression.GZIP); + assertEquals(header.getTileType(), TileType.MVT); assertEquals(header.getMinZoom(), 0); assertEquals(header.getMaxZoom(), 0); assertEquals(header.getMinLon(), 0); @@ -173,9 +173,9 @@ class PMTilesTest { 1, 10, false, - Compression.Gzip, - Compression.Gzip, - TileType.mvt, + Compression.GZIP, + Compression.GZIP, + TileType.MVT, 0, 0, 0, @@ -254,7 +254,7 @@ class PMTilesTest { @Test void buildRootLeaves() throws IOException { var entries = List.of(new Entry(100, 1, 1, 0)); - var directories = PMTiles.buildRootLeaves(entries, 1, Compression.None); + var directories = PMTiles.buildRootLeaves(entries, 1, Compression.NONE); assertEquals(directories.getNumLeaves(), 1); } @@ -264,7 +264,7 @@ class PMTilesTest { var random = new Random(3857); var entries = new ArrayList<Entry>(); entries.add(new Entry(0, 0, 100, 1)); - var directories = PMTiles.optimizeDirectories(entries, 100, Compression.None); + var directories = PMTiles.optimizeDirectories(entries, 100, Compression.NONE); assertFalse(directories.getLeaves().length > 0); assertEquals(0, directories.getNumLeaves()); @@ -275,7 +275,7 @@ class PMTilesTest { entries.add(new Entry(i, offset, randTileSize, 1)); offset += randTileSize; } - directories = PMTiles.optimizeDirectories(entries, 1024, Compression.None); + directories = PMTiles.optimizeDirectories(entries, 1024, Compression.NONE); assertFalse(directories.getRoot().length > 1024); assertFalse(directories.getNumLeaves() == 0); assertFalse(directories.getLeaves().length == 0); diff --git a/baremaps-server/src/main/java/org/apache/baremaps/server/ChangeResource.java b/baremaps-server/src/main/java/org/apache/baremaps/server/ChangeResource.java index 32ccae71..f4e81371 100644 --- a/baremaps-server/src/main/java/org/apache/baremaps/server/ChangeResource.java +++ b/baremaps-server/src/main/java/org/apache/baremaps/server/ChangeResource.java @@ -87,6 +87,7 @@ public final class ChangeResource { * Detects changes in the tileset and style and broadcasts them. */ @Override + @SuppressWarnings("squid:S3776") public void run() { try (WatchService watchService = FileSystems.getDefault().newWatchService()) { if (tileset != null && Files.exists(tileset)) { diff --git a/baremaps-testing/src/main/java/org/apache/baremaps/testing/GeometryAssertions.java b/baremaps-testing/src/main/java/org/apache/baremaps/testing/GeometryAssertions.java index 4b9e2ed1..e42b3bda 100644 --- a/baremaps-testing/src/main/java/org/apache/baremaps/testing/GeometryAssertions.java +++ b/baremaps-testing/src/main/java/org/apache/baremaps/testing/GeometryAssertions.java @@ -23,15 +23,19 @@ import org.locationtech.jts.precision.GeometryPrecisionReducer; public class GeometryAssertions { + private static void throwAssertionError(Object expected, Object actual) { + throw new AssertionError("Expected " + expected + " but was " + actual); + } + public static void assertGeometryEquals(Geometry expected, Geometry actual) { if (expected == null && actual == null) { return; } if (expected == null || actual == null) { - throw new AssertionError("Expected " + expected + " but was " + actual); + throwAssertionError(expected, actual); } if (!expected.equalsExact(actual)) { - throw new AssertionError("Expected " + expected + " but was " + actual); + throwAssertionError(expected, actual); } } @@ -40,7 +44,7 @@ public class GeometryAssertions { return; } if (expected == null || actual == null) { - throw new AssertionError("Expected " + expected + " but was " + actual); + throwAssertionError(expected, actual); } PrecisionModel precisionModel = new PrecisionModel(tolerance); GeometryPrecisionReducer reducer = new GeometryPrecisionReducer(precisionModel);
