From 6538ff9fda2e06b200633225be9c3242335111c6 Mon Sep 17 00:00:00 2001 From: Naveed Khan Date: Mon, 20 Jul 2026 21:34:52 +0530 Subject: [PATCH] reject trailing separators in PointConverter --- .../commons/beanutils2/converters/PointConverter.java | 2 +- .../commons/beanutils2/converters/PointConverterTest.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/apache/commons/beanutils2/converters/PointConverter.java b/src/main/java/org/apache/commons/beanutils2/converters/PointConverter.java index 29c0c10ff..50d0c5636 100644 --- a/src/main/java/org/apache/commons/beanutils2/converters/PointConverter.java +++ b/src/main/java/org/apache/commons/beanutils2/converters/PointConverter.java @@ -72,7 +72,7 @@ protected T convertToType(final Class type, final Object value) throws Th } final String coordinates = stringValue.substring(1, lastCharIndex); - final String[] xy = POINT_SPLIT.split(coordinates); + final String[] xy = POINT_SPLIT.split(coordinates, -1); if (xy.length != 2) { throw new IllegalArgumentException("Point must have an x coordinate, and y coordinate only, expecting the following format: (40, 200)"); diff --git a/src/test/java/org/apache/commons/beanutils2/converters/PointConverterTest.java b/src/test/java/org/apache/commons/beanutils2/converters/PointConverterTest.java index d5d33a68c..9904ebc56 100644 --- a/src/test/java/org/apache/commons/beanutils2/converters/PointConverterTest.java +++ b/src/test/java/org/apache/commons/beanutils2/converters/PointConverterTest.java @@ -20,9 +20,11 @@ package org.apache.commons.beanutils2.converters; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.awt.Point; +import org.apache.commons.beanutils2.ConversionException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -53,4 +55,10 @@ void testConvertingPoint() { final Point actual = converter.convert(Point.class, "(100, 200)"); assertEquals(expected, actual); } + + @Test + void testTrailingSeparatorRejected() { + assertThrows(ConversionException.class, () -> converter.convert(Point.class, "(100,200,)")); + assertThrows(ConversionException.class, () -> converter.convert(Point.class, "(100,200,,)")); + } }