From 79def5794ce143d9c433eb932b47f97230b39074 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EB=B3=B4=EA=B5=90=20=28Bogus=20Jung=29?= Date: Thu, 20 Feb 2025 22:38:26 +0900 Subject: [PATCH 1/2] fix: improve ArrayList capacity allocation in GeoJson MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 정보교 (Bogus Jung) --- .../springframework/data/elasticsearch/core/geo/GeoJson.java | 2 +- .../data/elasticsearch/core/geo/GeoJsonLineString.java | 4 ++-- .../data/elasticsearch/core/geo/GeoJsonMultiPoint.java | 4 ++-- .../data/elasticsearch/core/geo/GeoJsonPolygon.java | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJson.java b/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJson.java index 20c312303..02494d190 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJson.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJson.java @@ -21,7 +21,7 @@ /** * Interface definition for structures defined in GeoJSON - * format. copied from Spring Data Mongodb + * format. copied from Spring Data Mongodb * * @author Christoph Strobl * @since 1.7 diff --git a/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonLineString.java b/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonLineString.java index 5c848e90b..bea76baf6 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonLineString.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonLineString.java @@ -69,7 +69,7 @@ public static GeoJsonLineString of(Point first, Point second, Point... others) { Assert.notNull(second, "Second point must not be null!"); Assert.notNull(others, "Additional points must not be null!"); - List points = new ArrayList<>(); + List points = new ArrayList<>(2 + others.length); points.add(first); points.add(second); points.addAll(Arrays.asList(others)); @@ -103,7 +103,7 @@ public static GeoJsonLineString of(GeoPoint first, GeoPoint second, GeoPoint... Assert.notNull(second, "Second point must not be null!"); Assert.notNull(others, "Additional points must not be null!"); - List points = new ArrayList<>(); + List points = new ArrayList<>(2 + others.length); points.add(GeoPoint.toPoint(first)); points.add(GeoPoint.toPoint(second)); points.addAll(Arrays.stream(others).map(GeoPoint::toPoint).collect(Collectors.toList())); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonMultiPoint.java b/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonMultiPoint.java index d81e30f52..410149b1c 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonMultiPoint.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonMultiPoint.java @@ -69,7 +69,7 @@ public static GeoJsonMultiPoint of(Point first, Point second, Point... others) { Assert.notNull(second, "Second point must not be null!"); Assert.notNull(others, "Additional points must not be null!"); - List points = new ArrayList<>(); + List points = new ArrayList<>(2 + others.length); points.add(first); points.add(second); points.addAll(Arrays.asList(others)); @@ -103,7 +103,7 @@ public static GeoJsonMultiPoint of(GeoPoint first, GeoPoint second, GeoPoint... Assert.notNull(second, "Second point must not be null!"); Assert.notNull(others, "Additional points must not be null!"); - List points = new ArrayList<>(); + List points = new ArrayList<>(2 + others.length); points.add(GeoPoint.toPoint(first)); points.add(GeoPoint.toPoint(second)); points.addAll(Arrays.stream(others).map(GeoPoint::toPoint).collect(Collectors.toList())); diff --git a/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonPolygon.java b/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonPolygon.java index ffc613b30..a161b8a6c 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonPolygon.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonPolygon.java @@ -189,7 +189,7 @@ public List getCoordinates() { @SafeVarargs private static List asList(T first, T second, T third, T fourth, T... others) { - ArrayList result = new ArrayList<>(3 + others.length); + ArrayList result = new ArrayList<>(4 + others.length); result.add(first); result.add(second); From 391205dcf41547237e7322bfea70469b88e9393b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EB=B3=B4=EA=B5=90=20=28Bogus=20Jung=29?= Date: Thu, 20 Feb 2025 23:05:23 +0900 Subject: [PATCH 2/2] add: assert messages when create polygon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 정보교 (Bogus Jung) --- .../data/elasticsearch/core/geo/GeoJsonPolygon.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonPolygon.java b/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonPolygon.java index a161b8a6c..2b8a6d879 100644 --- a/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonPolygon.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/geo/GeoJsonPolygon.java @@ -189,6 +189,12 @@ public List getCoordinates() { @SafeVarargs private static List asList(T first, T second, T third, T fourth, T... others) { + Assert.notNull(first, "First element must not be null!"); + Assert.notNull(second, "Second element must not be null!"); + Assert.notNull(third, "Third element must not be null!"); + Assert.notNull(fourth, "Fourth element must not be null!"); + Assert.notNull(others, "Additional elements must not be null!"); + ArrayList result = new ArrayList<>(4 + others.length); result.add(first);