From 58c467290fe0e570da3121c266fd59dde3ca5213 Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Thu, 8 May 2025 18:22:21 +0200 Subject: [PATCH 1/2] Fix raw type warnings --- src/test/java/com/maxmind/db/DecoderTest.java | 6 +- .../com/maxmind/db/MultiThreadedTest.java | 14 ++--- src/test/java/com/maxmind/db/ReaderTest.java | 63 +++++++++---------- 3 files changed, 39 insertions(+), 44 deletions(-) diff --git a/src/test/java/com/maxmind/db/DecoderTest.java b/src/test/java/com/maxmind/db/DecoderTest.java index 2668bd58..7a986f64 100644 --- a/src/test/java/com/maxmind/db/DecoderTest.java +++ b/src/test/java/com/maxmind/db/DecoderTest.java @@ -257,10 +257,10 @@ private static Map booleans() { return booleans; } - private static Map maps() { - Map maps = new HashMap<>(); + private static Map, byte[]> maps() { + Map, byte[]> maps = new HashMap<>(); - Map empty = new HashMap(); + Map empty = Map.of(); maps.put(empty, new byte[] {(byte) 0xe0}); Map one = new HashMap<>(); diff --git a/src/test/java/com/maxmind/db/MultiThreadedTest.java b/src/test/java/com/maxmind/db/MultiThreadedTest.java index bbf6b4a3..b1d9a54e 100644 --- a/src/test/java/com/maxmind/db/MultiThreadedTest.java +++ b/src/test/java/com/maxmind/db/MultiThreadedTest.java @@ -19,7 +19,7 @@ public class MultiThreadedTest { @Test public void multipleMmapOpens() throws InterruptedException, ExecutionException { - Callable task = () -> { + Callable> task = () -> { try (Reader reader = new Reader(ReaderTest.getFile("MaxMind-DB-test-decoder.mmdb"))) { return reader.get(InetAddress.getByName("::1.1.1.0"), Map.class); } @@ -45,20 +45,20 @@ public void mmapThreadTest() throws IOException, InterruptedException, private static void threadTest(final Reader reader) throws InterruptedException, ExecutionException { - Callable task = () -> reader.get(InetAddress.getByName("::1.1.1.0"), Map.class); + Callable> task = () -> reader.get(InetAddress.getByName("::1.1.1.0"), Map.class); MultiThreadedTest.runThreads(task); } - private static void runThreads(Callable task) + private static void runThreads(Callable> task) throws InterruptedException, ExecutionException { int threadCount = 256; - List> tasks = Collections.nCopies(threadCount, task); + List>> tasks = Collections.nCopies(threadCount, task); ExecutorService executorService = Executors .newFixedThreadPool(threadCount); - List> futures = executorService.invokeAll(tasks); + List>> futures = executorService.invokeAll(tasks); - for (Future future : futures) { - Map record = future.get(); + for (Future> future : futures) { + Map record = future.get(); assertEquals(268435456, (long) record.get("uint32")); assertEquals("unicode! ☯ - ♫", record.get("utf8_string")); } diff --git a/src/test/java/com/maxmind/db/ReaderTest.java b/src/test/java/com/maxmind/db/ReaderTest.java index 004ecb24..19898920 100644 --- a/src/test/java/com/maxmind/db/ReaderTest.java +++ b/src/test/java/com/maxmind/db/ReaderTest.java @@ -85,13 +85,13 @@ public void testNetworks() throws IOException, InvalidDatabaseException, Invalid File file = getFile("MaxMind-DB-test-ipv" + ipVersion + "-" + recordSize + ".mmdb"); Reader reader = new Reader(file); - Networks networks = reader.networks(false, Map.class); + Networks networks = reader.networks(false, Map.class); while(networks.hasNext()) { - DatabaseRecord> iteration = networks.next(); - Map data = iteration.getData(); + DatabaseRecord iteration = networks.next(); + Map data = (Map) iteration.getData(); - InetAddress actualIPInData = InetAddress.getByName(data.get("ip")); + InetAddress actualIPInData = InetAddress.getByName((String) data.get("ip")); assertEquals( iteration.getNetwork().getNetworkAddress(), @@ -110,11 +110,11 @@ public void testNetworksWithInvalidSearchTree() throws IOException, InvalidNetwo File file = getFile("MaxMind-DB-test-broken-search-tree-24.mmdb"); Reader reader = new Reader(file); - Networks networks = reader.networks(false, Map.class); + Networks networks = reader.networks(false, Map.class); Exception exception = assertThrows(RuntimeException.class, () -> { while(networks.hasNext()){ - DatabaseRecord iteration = networks.next(); + assertNotNull(networks.next()); } }); @@ -339,11 +339,11 @@ public void testNetworksWithin() throws IOException, InvalidNetworkException{ Network network = new Network(address, test.prefix); boolean includeAliasedNetworks = !test.skipAliasedNetworks; - Networks networks = reader.networksWithin(network, includeAliasedNetworks, Map.class); + Networks networks = reader.networksWithin(network, includeAliasedNetworks, Map.class); - ArrayList innerIPs = new ArrayList<>(); + List innerIPs = new ArrayList<>(); while(networks.hasNext()){ - DatabaseRecord> iteration = networks.next(); + DatabaseRecord iteration = networks.next(); innerIPs.add(iteration.getNetwork().toString()); } @@ -376,11 +376,11 @@ public void testGeoIPNetworksWithin() throws IOException, InvalidNetworkExceptio InetAddress address = InetAddress.getByName(test.network); Network network = new Network(address, test.prefix); - Networks networks = reader.networksWithin(network, test.skipAliasedNetworks, Map.class); + Networks networks = reader.networksWithin(network, test.skipAliasedNetworks, Map.class); ArrayList innerIPs = new ArrayList<>(); while(networks.hasNext()){ - DatabaseRecord> iteration = networks.next(); + DatabaseRecord iteration = networks.next(); innerIPs.add(iteration.getNetwork().toString()); } @@ -408,7 +408,7 @@ public void testGetRecord() throws IOException { }; for (GetRecordTest test : mapTests) { try (Reader reader = new Reader(test.db)) { - DatabaseRecord record = reader.getRecord(test.ip, Map.class); + DatabaseRecord record = reader.getRecord(test.ip, Map.class); assertEquals(test.network, record.getNetwork().toString()); @@ -432,7 +432,7 @@ public void testGetRecord() throws IOException { }; for (GetRecordTest test : stringTests) { try (Reader reader = new Reader(test.db)) { - DatabaseRecord record = reader.getRecord(test.ip, String.class); + DatabaseRecord record = reader.getRecord(test.ip, String.class); assertEquals(test.network, record.getNetwork().toString()); @@ -497,7 +497,7 @@ public void testDecodingTypesPointerDecoderFile() throws IOException { } private void testDecodingTypes(Reader reader, boolean booleanValue) throws IOException { - Map record = reader.get(InetAddress.getByName("::1.1.1.0"), Map.class); + Map record = reader.get(InetAddress.getByName("::1.1.1.0"), Map.class); if (booleanValue) { assertTrue((boolean) record.get("boolean")); @@ -510,21 +510,19 @@ private void testDecodingTypes(Reader reader, boolean booleanValue) throws IOExc assertEquals("unicode! ☯ - ♫", record.get("utf8_string")); - @SuppressWarnings("unchecked") - List array = (List) record.get("array"); + List array = (List) record.get("array"); assertEquals(3, array.size()); assertEquals(1, (long) array.get(0)); assertEquals(2, (long) array.get(1)); assertEquals(3, (long) array.get(2)); - Map map = (Map) record.get("map"); + Map map = (Map) record.get("map"); assertEquals(1, map.size()); - Map mapX = (Map) map.get("mapX"); + Map mapX = (Map) map.get("mapX"); assertEquals(2, mapX.size()); - @SuppressWarnings("unchecked") - List arrayX = (List) mapX.get("arrayX"); + List arrayX = (List) mapX.get("arrayX"); assertEquals(3, arrayX.size()); assertEquals(7, (long) arrayX.get(0)); assertEquals(8, (long) arrayX.get(1)); @@ -816,7 +814,7 @@ public void testZerosStream() throws IOException { } private void testZeros(Reader reader) throws IOException { - Map record = reader.get(InetAddress.getByName("::"), Map.class); + Map record = reader.get(InetAddress.getByName("::"), Map.class); assertFalse((boolean) record.get("boolean")); @@ -824,11 +822,10 @@ private void testZeros(Reader reader) throws IOException { assertEquals("", record.get("utf8_string")); - @SuppressWarnings("unchecked") - List array = (List) record.get("array"); + List array = (List) record.get("array"); assertEquals(0, array.size()); - Map map = (Map) record.get("map"); + Map map = (Map) record.get("map"); assertEquals(0, map.size()); assertEquals(0, (double) record.get("double"), 0.000000001); @@ -1009,16 +1006,14 @@ public TestDataTypeMismatchInModel( public void testDecodeConcurrentHashMap() throws IOException { this.testReader = new Reader(getFile("GeoIP2-City-Test.mmdb")); - @SuppressWarnings("unchecked") - ConcurrentHashMap m = this.testReader.get( + Map m = this.testReader.get( InetAddress.getByName("2.125.160.216"), ConcurrentHashMap.class ); - @SuppressWarnings("unchecked") - List> subdivisions = (List) m.get("subdivisions"); + List subdivisions = (List) m.get("subdivisions"); - Map eng = subdivisions.get(0); + Map eng = (Map) subdivisions.get(0); String isoCode = (String) eng.get("iso_code"); assertEquals("ENG", isoCode); @@ -1100,17 +1095,17 @@ public TestModelB( public void testCacheKey() { Class cls = TestModelCacheKey.class; - CacheKey a = new CacheKey(1, cls, getType(cls, 0)); - CacheKey b = new CacheKey(1, cls, getType(cls, 0)); + CacheKey a = new CacheKey<>(1, cls, getType(cls, 0)); + CacheKey b = new CacheKey<>(1, cls, getType(cls, 0)); assertEquals(a, b); - CacheKey c = new CacheKey(2, cls, getType(cls, 0)); + CacheKey c = new CacheKey<>(2, cls, getType(cls, 0)); assertNotEquals(a, c); - CacheKey d = new CacheKey(1, String.class, getType(cls, 0)); + CacheKey d = new CacheKey<>(1, String.class, getType(cls, 0)); assertNotEquals(a, d); - CacheKey e = new CacheKey(1, cls, getType(cls, 1)); + CacheKey e = new CacheKey<>(1, cls, getType(cls, 1)); assertNotEquals(a, e); } From 41e9b596075e13ce7aae3d46e38f61f32acb12d4 Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Fri, 9 May 2025 10:39:04 +0200 Subject: [PATCH 2/2] Use var in some of the places --- .../com/maxmind/db/MultiThreadedTest.java | 5 +-- src/test/java/com/maxmind/db/ReaderTest.java | 40 +++++++++---------- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/test/java/com/maxmind/db/MultiThreadedTest.java b/src/test/java/com/maxmind/db/MultiThreadedTest.java index b1d9a54e..2a6e192b 100644 --- a/src/test/java/com/maxmind/db/MultiThreadedTest.java +++ b/src/test/java/com/maxmind/db/MultiThreadedTest.java @@ -5,7 +5,6 @@ import java.io.IOException; import java.net.InetAddress; import java.util.Collections; -import java.util.List; import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; @@ -52,10 +51,10 @@ private static void threadTest(final Reader reader) private static void runThreads(Callable> task) throws InterruptedException, ExecutionException { int threadCount = 256; - List>> tasks = Collections.nCopies(threadCount, task); + var tasks = Collections.nCopies(threadCount, task); ExecutorService executorService = Executors .newFixedThreadPool(threadCount); - List>> futures = executorService.invokeAll(tasks); + var futures = executorService.invokeAll(tasks); for (Future> future : futures) { Map record = future.get(); diff --git a/src/test/java/com/maxmind/db/ReaderTest.java b/src/test/java/com/maxmind/db/ReaderTest.java index 19898920..1925a9fb 100644 --- a/src/test/java/com/maxmind/db/ReaderTest.java +++ b/src/test/java/com/maxmind/db/ReaderTest.java @@ -85,11 +85,11 @@ public void testNetworks() throws IOException, InvalidDatabaseException, Invalid File file = getFile("MaxMind-DB-test-ipv" + ipVersion + "-" + recordSize + ".mmdb"); Reader reader = new Reader(file); - Networks networks = reader.networks(false, Map.class); + var networks = reader.networks(false, Map.class); while(networks.hasNext()) { - DatabaseRecord iteration = networks.next(); - Map data = (Map) iteration.getData(); + var iteration = networks.next(); + var data = (Map) iteration.getData(); InetAddress actualIPInData = InetAddress.getByName((String) data.get("ip")); @@ -110,7 +110,7 @@ public void testNetworksWithInvalidSearchTree() throws IOException, InvalidNetwo File file = getFile("MaxMind-DB-test-broken-search-tree-24.mmdb"); Reader reader = new Reader(file); - Networks networks = reader.networks(false, Map.class); + var networks = reader.networks(false, Map.class); Exception exception = assertThrows(RuntimeException.class, () -> { while(networks.hasNext()){ @@ -339,11 +339,11 @@ public void testNetworksWithin() throws IOException, InvalidNetworkException{ Network network = new Network(address, test.prefix); boolean includeAliasedNetworks = !test.skipAliasedNetworks; - Networks networks = reader.networksWithin(network, includeAliasedNetworks, Map.class); + var networks = reader.networksWithin(network, includeAliasedNetworks, Map.class); List innerIPs = new ArrayList<>(); while(networks.hasNext()){ - DatabaseRecord iteration = networks.next(); + var iteration = networks.next(); innerIPs.add(iteration.getNetwork().toString()); } @@ -376,11 +376,11 @@ public void testGeoIPNetworksWithin() throws IOException, InvalidNetworkExceptio InetAddress address = InetAddress.getByName(test.network); Network network = new Network(address, test.prefix); - Networks networks = reader.networksWithin(network, test.skipAliasedNetworks, Map.class); + var networks = reader.networksWithin(network, test.skipAliasedNetworks, Map.class); ArrayList innerIPs = new ArrayList<>(); while(networks.hasNext()){ - DatabaseRecord iteration = networks.next(); + var iteration = networks.next(); innerIPs.add(iteration.getNetwork().toString()); } @@ -432,7 +432,7 @@ public void testGetRecord() throws IOException { }; for (GetRecordTest test : stringTests) { try (Reader reader = new Reader(test.db)) { - DatabaseRecord record = reader.getRecord(test.ip, String.class); + var record = reader.getRecord(test.ip, String.class); assertEquals(test.network, record.getNetwork().toString()); @@ -497,7 +497,7 @@ public void testDecodingTypesPointerDecoderFile() throws IOException { } private void testDecodingTypes(Reader reader, boolean booleanValue) throws IOException { - Map record = reader.get(InetAddress.getByName("::1.1.1.0"), Map.class); + var record = reader.get(InetAddress.getByName("::1.1.1.0"), Map.class); if (booleanValue) { assertTrue((boolean) record.get("boolean")); @@ -510,19 +510,19 @@ private void testDecodingTypes(Reader reader, boolean booleanValue) throws IOExc assertEquals("unicode! ☯ - ♫", record.get("utf8_string")); - List array = (List) record.get("array"); + var array = (List) record.get("array"); assertEquals(3, array.size()); assertEquals(1, (long) array.get(0)); assertEquals(2, (long) array.get(1)); assertEquals(3, (long) array.get(2)); - Map map = (Map) record.get("map"); + var map = (Map) record.get("map"); assertEquals(1, map.size()); - Map mapX = (Map) map.get("mapX"); + var mapX = (Map) map.get("mapX"); assertEquals(2, mapX.size()); - List arrayX = (List) mapX.get("arrayX"); + var arrayX = (List) mapX.get("arrayX"); assertEquals(3, arrayX.size()); assertEquals(7, (long) arrayX.get(0)); assertEquals(8, (long) arrayX.get(1)); @@ -814,7 +814,7 @@ public void testZerosStream() throws IOException { } private void testZeros(Reader reader) throws IOException { - Map record = reader.get(InetAddress.getByName("::"), Map.class); + var record = reader.get(InetAddress.getByName("::"), Map.class); assertFalse((boolean) record.get("boolean")); @@ -822,10 +822,10 @@ private void testZeros(Reader reader) throws IOException { assertEquals("", record.get("utf8_string")); - List array = (List) record.get("array"); + var array = (List) record.get("array"); assertEquals(0, array.size()); - Map map = (Map) record.get("map"); + var map = (Map) record.get("map"); assertEquals(0, map.size()); assertEquals(0, (double) record.get("double"), 0.000000001); @@ -1006,14 +1006,14 @@ public TestDataTypeMismatchInModel( public void testDecodeConcurrentHashMap() throws IOException { this.testReader = new Reader(getFile("GeoIP2-City-Test.mmdb")); - Map m = this.testReader.get( + var m = this.testReader.get( InetAddress.getByName("2.125.160.216"), ConcurrentHashMap.class ); - List subdivisions = (List) m.get("subdivisions"); + var subdivisions = (List) m.get("subdivisions"); - Map eng = (Map) subdivisions.get(0); + var eng = (Map) subdivisions.get(0); String isoCode = (String) eng.get("iso_code"); assertEquals("ENG", isoCode);