You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2024/09/12 00:52:24 UTC
(commons-beanutils) branch master updated (02ed45c8 -> 76f7a094)
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/commons-beanutils.git
from 02ed45c8 Simplify expression
new b72cf8ca Do not implement Serializable
new 76f7a094 Update issue types
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
src/changes/changes.xml | 7 ++-
.../apache/commons/beanutils2/BasicDynaBean.java | 3 +-
.../apache/commons/beanutils2/BasicDynaClass.java | 3 +-
.../apache/commons/beanutils2/BeanComparator.java | 8 +--
.../apache/commons/beanutils2/DynaProperty.java | 5 +-
.../apache/commons/beanutils2/LazyDynaBean.java | 3 +-
.../apache/commons/beanutils2/WrapDynaBean.java | 3 +-
.../apache/commons/beanutils2/package-info.java | 8 ---
.../beanutils2/sql/AbstractJdbcDynaClass.java | 5 +-
.../commons/beanutils2/sql/RowSetDynaClass.java | 2 -
.../commons/beanutils2/BasicDynaBeanTestCase.java | 73 +++++-----------------
.../apache/commons/beanutils2/BeanMapTestCase.java | 4 +-
.../org/apache/commons/beanutils2/TestBean.java | 3 +-
.../commons/beanutils2/WrapDynaBeanTestCase.java | 2 +-
14 files changed, 31 insertions(+), 98 deletions(-)
(commons-beanutils) 01/02: Do not implement Serializable
Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-beanutils.git
commit b72cf8cac3ef6095472116ad4890d7358cdc4278
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Sep 11 20:52:11 2024 -0400
Do not implement Serializable
---
src/changes/changes.xml | 3 +
.../apache/commons/beanutils2/BasicDynaBean.java | 3 +-
.../apache/commons/beanutils2/BasicDynaClass.java | 3 +-
.../apache/commons/beanutils2/BeanComparator.java | 8 +--
.../apache/commons/beanutils2/DynaProperty.java | 5 +-
.../apache/commons/beanutils2/LazyDynaBean.java | 3 +-
.../apache/commons/beanutils2/WrapDynaBean.java | 3 +-
.../apache/commons/beanutils2/package-info.java | 8 ---
.../beanutils2/sql/AbstractJdbcDynaClass.java | 5 +-
.../commons/beanutils2/sql/RowSetDynaClass.java | 2 -
.../commons/beanutils2/BasicDynaBeanTestCase.java | 73 +++++-----------------
.../apache/commons/beanutils2/BeanMapTestCase.java | 4 +-
.../org/apache/commons/beanutils2/TestBean.java | 3 +-
.../commons/beanutils2/WrapDynaBeanTestCase.java | 2 +-
14 files changed, 29 insertions(+), 96 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index bb1d7c13..9ed7502f 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -220,6 +220,9 @@
Removed ConvertUtilsBean2, use ConvertUtilsBean. ConvertUtilsBean2 functionality is now in ConvertUtilsBean.
Previous ConvertUtilsBean functionality for those methods is no longer supported.
</action>
+ <action dev="ggregory" type="remove" due-to="Gary Gregory">
+ Do not implement Serializable.
+ </action>
</release>
<release version="1.9.4" date="2019-08-13" description="The primary reason for this release is a bugfix for
diff --git a/src/main/java/org/apache/commons/beanutils2/BasicDynaBean.java b/src/main/java/org/apache/commons/beanutils2/BasicDynaBean.java
index 14a39a6d..2bc9b6ae 100644
--- a/src/main/java/org/apache/commons/beanutils2/BasicDynaBean.java
+++ b/src/main/java/org/apache/commons/beanutils2/BasicDynaBean.java
@@ -17,7 +17,6 @@
package org.apache.commons.beanutils2;
-import java.io.Serializable;
import java.lang.reflect.Array;
import java.util.HashMap;
import java.util.List;
@@ -35,7 +34,7 @@ import java.util.Objects;
* successfully serialized and deserialized <strong>ONLY</strong> if all
* property values are {@code Serializable}.</p>
*/
-public class BasicDynaBean implements DynaBean, Serializable {
+public class BasicDynaBean implements DynaBean {
private static final Short SHORT_ZERO = Short.valueOf((short) 0);
diff --git a/src/main/java/org/apache/commons/beanutils2/BasicDynaClass.java b/src/main/java/org/apache/commons/beanutils2/BasicDynaClass.java
index 9084e3ef..39525485 100644
--- a/src/main/java/org/apache/commons/beanutils2/BasicDynaClass.java
+++ b/src/main/java/org/apache/commons/beanutils2/BasicDynaClass.java
@@ -17,7 +17,6 @@
package org.apache.commons.beanutils2;
-import java.io.Serializable;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
@@ -31,7 +30,7 @@ import java.util.Objects;
* constructor of its own that accepts a {@code DynaClass}. This is
* used to associate the DynaBean instance with this DynaClass.</p>
*/
-public class BasicDynaClass implements DynaClass, Serializable {
+public class BasicDynaClass implements DynaClass {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/apache/commons/beanutils2/BeanComparator.java b/src/main/java/org/apache/commons/beanutils2/BeanComparator.java
index 1fab0715..aaf42174 100644
--- a/src/main/java/org/apache/commons/beanutils2/BeanComparator.java
+++ b/src/main/java/org/apache/commons/beanutils2/BeanComparator.java
@@ -17,7 +17,6 @@
package org.apache.commons.beanutils2;
-import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.util.Comparator;
@@ -41,7 +40,7 @@ import java.util.Comparator;
* @param <T> the type of beans to be compared by this {@code Comparator}
* @param <V> the type of property to compare
*/
-public class BeanComparator<T, V> implements Comparator<T>, Serializable {
+public class BeanComparator<T, V> implements Comparator<T> {
/**
* A {@link Comparator Comparator} that compares {@link Comparable Comparable} objects.
@@ -54,10 +53,7 @@ public class BeanComparator<T, V> implements Comparator<T>, Serializable {
* @see java.util.Collections#reverseOrder()
*/
private static final class NaturalOrderComparator<E extends Comparable<? super E>>
- implements Comparator<E>, Serializable {
-
- /** Serialization version. */
- private static final long serialVersionUID = -291439688585137865L;
+ implements Comparator<E> {
/** The singleton instance. */
@SuppressWarnings("rawtypes")
diff --git a/src/main/java/org/apache/commons/beanutils2/DynaProperty.java b/src/main/java/org/apache/commons/beanutils2/DynaProperty.java
index 9f757902..0ad30442 100644
--- a/src/main/java/org/apache/commons/beanutils2/DynaProperty.java
+++ b/src/main/java/org/apache/commons/beanutils2/DynaProperty.java
@@ -20,7 +20,6 @@ package org.apache.commons.beanutils2;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
-import java.io.Serializable;
import java.io.StreamCorruptedException;
import java.util.List;
import java.util.Map;
@@ -36,9 +35,7 @@ import java.util.Objects;
* Alternatively, an implementation may choose to ignore this property.
* All keys for maps must be of type String so no meta data is needed for map keys.</p>
*/
-public class DynaProperty implements Serializable {
-
- private static final long serialVersionUID = -3084907613499830175L;
+public class DynaProperty {
/*
* There are issues with serializing primitive class types on certain JVM versions
diff --git a/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java b/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java
index 5ae45887..ac8317ae 100644
--- a/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java
+++ b/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java
@@ -16,7 +16,6 @@
*/
package org.apache.commons.beanutils2;
-import java.io.Serializable;
import java.lang.reflect.Array;
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -121,7 +120,7 @@ import org.apache.commons.logging.LogFactory;
*
* @see LazyDynaClass
*/
-public class LazyDynaBean implements DynaBean, Serializable {
+public class LazyDynaBean implements DynaBean {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/apache/commons/beanutils2/WrapDynaBean.java b/src/main/java/org/apache/commons/beanutils2/WrapDynaBean.java
index 56c33ef8..21382f19 100644
--- a/src/main/java/org/apache/commons/beanutils2/WrapDynaBean.java
+++ b/src/main/java/org/apache/commons/beanutils2/WrapDynaBean.java
@@ -17,7 +17,6 @@
package org.apache.commons.beanutils2;
-import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
/**
@@ -40,7 +39,7 @@ import java.lang.reflect.InvocationTargetException;
* support the {@code contains()</code> and <code>remove()} methods.</p>
*/
-public class WrapDynaBean implements DynaBean, Serializable {
+public class WrapDynaBean implements DynaBean {
private static final long serialVersionUID = 1L;
diff --git a/src/main/java/org/apache/commons/beanutils2/package-info.java b/src/main/java/org/apache/commons/beanutils2/package-info.java
index bd40962b..ae6c656e 100644
--- a/src/main/java/org/apache/commons/beanutils2/package-info.java
+++ b/src/main/java/org/apache/commons/beanutils2/package-info.java
@@ -602,14 +602,6 @@
* environments (particularly in web applications), this tradeoff is usually
* quite beneficial.</p>
*
- * <p>As an additional benefit, the {@code RowSetDynaClass} class is defined
- * to implement {@link java.io.Serializable}, so that it (and the
- * DynaBeans that correspond to each row of the result) can be conveniently
- * serialized and deserialized (as long as the underlying column values are
- * also Serializable). Thus, {@code RowSetDynaClass} represents a very
- * convenient way to transmit the results of an SQL query to a remote Java-based
- * client application (such as an applet).</p>
- *
* <p>The normal usage pattern for a {@code RowSetDynaClass} will look
* something like this:</p>
* <pre>
diff --git a/src/main/java/org/apache/commons/beanutils2/sql/AbstractJdbcDynaClass.java b/src/main/java/org/apache/commons/beanutils2/sql/AbstractJdbcDynaClass.java
index d4953462..1160d366 100644
--- a/src/main/java/org/apache/commons/beanutils2/sql/AbstractJdbcDynaClass.java
+++ b/src/main/java/org/apache/commons/beanutils2/sql/AbstractJdbcDynaClass.java
@@ -17,7 +17,6 @@
package org.apache.commons.beanutils2.sql;
-import java.io.Serializable;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
@@ -39,9 +38,7 @@ import org.apache.commons.beanutils2.DynaProperty;
* Provides common logic for JDBC implementations of {@link DynaClass}.
* </p>
*/
-abstract class AbstractJdbcDynaClass implements DynaClass, Serializable {
-
- private static final long serialVersionUID = 1L;
+abstract class AbstractJdbcDynaClass implements DynaClass {
/**
* Cross Reference for column name --> dyna property name (needed when lowerCase option is true)
diff --git a/src/main/java/org/apache/commons/beanutils2/sql/RowSetDynaClass.java b/src/main/java/org/apache/commons/beanutils2/sql/RowSetDynaClass.java
index e9bd9475..3432c646 100644
--- a/src/main/java/org/apache/commons/beanutils2/sql/RowSetDynaClass.java
+++ b/src/main/java/org/apache/commons/beanutils2/sql/RowSetDynaClass.java
@@ -65,8 +65,6 @@ import org.apache.commons.beanutils2.DynaProperty;
*/
public class RowSetDynaClass extends AbstractJdbcDynaClass {
- private static final long serialVersionUID = 1L;
-
/**
* <p>
* Limits the size of the returned list. The call to {@code getRows()} will return at most limit number of rows. If less than or equal to 0, does not limit
diff --git a/src/test/java/org/apache/commons/beanutils2/BasicDynaBeanTestCase.java b/src/test/java/org/apache/commons/beanutils2/BasicDynaBeanTestCase.java
index b0950301..59ee3216 100644
--- a/src/test/java/org/apache/commons/beanutils2/BasicDynaBeanTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/BasicDynaBeanTestCase.java
@@ -28,9 +28,10 @@ import static org.junit.jupiter.api.Assertions.fail;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-import java.io.IOException;
+import java.io.NotSerializableException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
+import java.io.WriteAbortedException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -410,63 +411,22 @@ public class BasicDynaBeanTestCase {
/**
* Test serialization and deserialization.
- *
- * @throws InstantiationException
- * @throws IllegalAccessException
- * @throws IOException
*/
@Test
- public void testSerialization() throws Exception {
+ public void testNotSerializableException() throws Exception {
// Serialize the test bean
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
- final ObjectOutputStream oos = new ObjectOutputStream(baos);
- oos.writeObject(bean);
- oos.flush();
- oos.close();
+ try (ObjectOutputStream oos = new ObjectOutputStream(baos)) {
+ assertThrows(NotSerializableException.class, () -> oos.writeObject(bean));
+ oos.flush();
+ }
// Deserialize the test bean
bean = null;
- final ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
- final ObjectInputStream ois = new ObjectInputStream(bais);
- bean = (DynaBean) ois.readObject();
- bais.close();
- // Confirm property values
- testGetDescriptorArguments();
- testGetDescriptorBoolean();
- testGetDescriptorDouble();
- testGetDescriptorFloat();
- testGetDescriptorInt();
- testGetDescriptorLong();
- testGetDescriptorSecond();
- testGetDescriptorShort();
- testGetDescriptorString();
- testGetDescriptors();
- testGetIndexedArguments();
- testGetIndexedValues();
- testGetMappedArguments();
- testGetMappedValues();
- testGetSimpleArguments();
- testGetSimpleBoolean();
- testGetSimpleDouble();
- testGetSimpleFloat();
- testGetSimpleInt();
- testGetSimpleLong();
- testGetSimpleShort();
- testGetSimpleString();
- testMappedContains();
- testMappedRemove();
- // Ensure that we can create a new instance of the same DynaClass
- bean = bean.getDynaClass().newInstance();
- testGetDescriptorArguments();
- testGetDescriptorBoolean();
- testGetDescriptorDouble();
- testGetDescriptorFloat();
- testGetDescriptorInt();
- testGetDescriptorLong();
- testGetDescriptorSecond();
- testGetDescriptorShort();
- testGetDescriptorString();
- testGetDescriptors();
-
+ try (ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray())) {
+ final ObjectInputStream ois = new ObjectInputStream(bais);
+ assertThrows(WriteAbortedException.class, () -> bean = (DynaBean) ois.readObject());
+ }
+ assertNull(bean);
}
/**
@@ -516,8 +476,7 @@ public class BasicDynaBeanTestCase {
@Test
public void testSetMappedValues() {
bean.set("mappedProperty", "First Key", "New First Value");
- assertEquals("New First Value", (String) bean.get("mappedProperty", "First Key"),
- "Can replace old value");
+ assertEquals("New First Value", (String) bean.get("mappedProperty", "First Key"), "Can replace old value");
bean.set("mappedProperty", "Fourth Key", "Fourth Value");
assertEquals("Fourth Value", (String) bean.get("mappedProperty", "Fourth Key"), "Can set new value");
}
@@ -541,8 +500,7 @@ public class BasicDynaBeanTestCase {
final double oldValue = ((Double) bean.get("doubleProperty")).doubleValue();
final double newValue = oldValue + 1.0;
bean.set("doubleProperty", Double.valueOf(newValue));
- assertEquals(newValue, ((Double) bean.get("doubleProperty")).doubleValue(), 0.005,
- "Matched new value");
+ assertEquals(newValue, ((Double) bean.get("doubleProperty")).doubleValue(), 0.005, "Matched new value");
}
/**
@@ -553,8 +511,7 @@ public class BasicDynaBeanTestCase {
final float oldValue = ((Float) bean.get("floatProperty")).floatValue();
final float newValue = oldValue + (float) 1.0;
bean.set("floatProperty", Float.valueOf(newValue));
- assertEquals(newValue, ((Float) bean.get("floatProperty")).floatValue(), (float) 0.005,
- "Matched new value");
+ assertEquals(newValue, ((Float) bean.get("floatProperty")).floatValue(), (float) 0.005, "Matched new value");
}
/**
diff --git a/src/test/java/org/apache/commons/beanutils2/BeanMapTestCase.java b/src/test/java/org/apache/commons/beanutils2/BeanMapTestCase.java
index 4ee5bbed..c7768ac1 100644
--- a/src/test/java/org/apache/commons/beanutils2/BeanMapTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/BeanMapTestCase.java
@@ -21,7 +21,6 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Map;
@@ -35,7 +34,6 @@ import org.apache.commons.collections4.map.AbstractMapTest;
public class BeanMapTestCase extends AbstractMapTest<String, Object> {
public static class BeanThrowingExceptions extends BeanWithProperties {
- private static final long serialVersionUID = 1L;
public String getValueThrowingException() {
throw new TestException();
@@ -46,7 +44,7 @@ public class BeanMapTestCase extends AbstractMapTest<String, Object> {
}
}
- public static class BeanWithProperties implements Serializable {
+ public static class BeanWithProperties {
private int someInt;
private long someLong;
private double someDouble;
diff --git a/src/test/java/org/apache/commons/beanutils2/TestBean.java b/src/test/java/org/apache/commons/beanutils2/TestBean.java
index 5b8af956..1377deae 100644
--- a/src/test/java/org/apache/commons/beanutils2/TestBean.java
+++ b/src/test/java/org/apache/commons/beanutils2/TestBean.java
@@ -17,7 +17,6 @@
package org.apache.commons.beanutils2;
-import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -27,7 +26,7 @@ import java.util.Map;
* General purpose test bean for JUnit tests for the "beanutils" component.
*/
-public class TestBean implements Serializable {
+public class TestBean {
/*
* Another nested reference to a bean containing mapp properties
diff --git a/src/test/java/org/apache/commons/beanutils2/WrapDynaBeanTestCase.java b/src/test/java/org/apache/commons/beanutils2/WrapDynaBeanTestCase.java
index f403a888..6c0d35cd 100644
--- a/src/test/java/org/apache/commons/beanutils2/WrapDynaBeanTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/WrapDynaBeanTestCase.java
@@ -224,7 +224,7 @@ public class WrapDynaBeanTestCase extends BasicDynaBeanTestCase {
*/
@Override
@Test
- public void testSerialization() throws Exception {
+ public void testNotSerializableException() throws Exception {
// Create a bean and set a value
final WrapDynaBean origBean = new WrapDynaBean(new TestBean());
(commons-beanutils) 02/02: Update issue types
Posted by gg...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-beanutils.git
commit 76f7a094074306c5315c7374ee3f82442aec3455
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Sep 11 20:52:18 2024 -0400
Update issue types
---
src/changes/changes.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 9ed7502f..5d7bda46 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -212,11 +212,11 @@
Bump commons-logging:commons-logging from 1.2 to 1.3.4 #226, #246, #259, #275.
</action>
<!-- REMOVE -->
- <action dev="ggregory" type="update" due-to="Gary Gregory, Niall Pemberton">
+ <action dev="ggregory" type="remove" due-to="Gary Gregory, Niall Pemberton">
Removed BeanUtilsBean2, use BeanUtilsBean. BeanUtilsBean2 functionality is now in BeanUtilsBean.
Previous BeanUtilsBean functionality for those methods is no longer supported.
</action>
- <action dev="ggregory" type="update" due-to="Gary Gregory, Niall Pemberton">
+ <action dev="ggregory" type="remove" due-to="Gary Gregory, Niall Pemberton">
Removed ConvertUtilsBean2, use ConvertUtilsBean. ConvertUtilsBean2 functionality is now in ConvertUtilsBean.
Previous ConvertUtilsBean functionality for those methods is no longer supported.
</action>