You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by th...@apache.org on 2022/12/06 03:32:19 UTC
[commons-dbutils] branch master updated: DBUTILS-144 Use column index as property name when name and label are null
This is an automated email from the ASF dual-hosted git repository.
thecarlhall pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-dbutils.git
The following commit(s) were added to refs/heads/master by this push:
new c6f7cb4 DBUTILS-144 Use column index as property name when name and label are null
c6f7cb4 is described below
commit c6f7cb4bcc8f79be07d7a10f29868bcc7a1765de
Author: Carl Hall <th...@apache.org>
AuthorDate: Mon Dec 5 22:31:50 2022 -0500
DBUTILS-144 Use column index as property name when name and label are null
---
.../java/org/apache/commons/dbutils/BasicRowProcessor.java | 12 ++++++++----
src/main/java/org/apache/commons/dbutils/BeanProcessor.java | 5 ++++-
src/test/java/org/apache/commons/dbutils/BaseTestCase.java | 12 +++++++++---
.../org/apache/commons/dbutils/BasicRowProcessorTest.java | 1 +
4 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/src/main/java/org/apache/commons/dbutils/BasicRowProcessor.java b/src/main/java/org/apache/commons/dbutils/BasicRowProcessor.java
index 8af06c2..2814175 100644
--- a/src/main/java/org/apache/commons/dbutils/BasicRowProcessor.java
+++ b/src/main/java/org/apache/commons/dbutils/BasicRowProcessor.java
@@ -165,11 +165,15 @@ public class BasicRowProcessor implements RowProcessor {
final Map<String, Object> result = createCaseInsensitiveHashMap(cols);
for (int i = 1; i <= cols; i++) {
- String columnName = rsmd.getColumnLabel(i);
- if (null == columnName || 0 == columnName.length()) {
- columnName = rsmd.getColumnName(i);
+ String propKey = rsmd.getColumnLabel(i);
+ if (null == propKey || 0 == propKey.length()) {
+ propKey = rsmd.getColumnName(i);
}
- result.put(columnName, rs.getObject(i));
+ if (null == propKey || 0 == propKey.length()) {
+ // The column index can't be null
+ propKey = Integer.toString(i);
+ }
+ result.put(propKey, rs.getObject(i));
}
return result;
diff --git a/src/main/java/org/apache/commons/dbutils/BeanProcessor.java b/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
index 884c801..26610a0 100644
--- a/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
+++ b/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
@@ -457,8 +457,11 @@ public class BeanProcessor {
if (propertyName == null) {
propertyName = columnName;
}
- for (int i = 0; i < props.length; i++) {
+ if (propertyName == null) {
+ propertyName = Integer.toString(col);
+ }
+ for (int i = 0; i < props.length; i++) {
final PropertyDescriptor prop = props[i];
final Column column = prop.getReadMethod().getAnnotation(Column.class);
String propertyColumnName = null;
diff --git a/src/test/java/org/apache/commons/dbutils/BaseTestCase.java b/src/test/java/org/apache/commons/dbutils/BaseTestCase.java
index dc5e479..c9b530c 100644
--- a/src/test/java/org/apache/commons/dbutils/BaseTestCase.java
+++ b/src/test/java/org/apache/commons/dbutils/BaseTestCase.java
@@ -41,7 +41,9 @@ public class BaseTestCase extends TestCase {
"nullObjectTest",
"nullPrimitiveTest",
"notDate",
- "columnProcessorDoubleTest" };
+ "columnProcessorDoubleTest",
+ null
+ };
/**
* The number of columns in the MockResultSet.
@@ -72,7 +74,9 @@ public class BaseTestCase extends TestCase {
null,
null,
new Date(),
- BigInteger.valueOf(13)};
+ BigInteger.valueOf(13),
+ null
+ };
private static final Object[] row2 =
new Object[] {
@@ -85,7 +89,9 @@ public class BaseTestCase extends TestCase {
null,
null,
ts789456123,
- BigInteger.valueOf(13)};
+ BigInteger.valueOf(13),
+ null
+ };
private static final Object[][] rows = new Object[][] { row1, row2 };
diff --git a/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java b/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java
index ae6bff2..8fa8b90 100644
--- a/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java
+++ b/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java
@@ -153,6 +153,7 @@ public class BasicRowProcessorTest extends BaseTestCase {
assertEquals("nullPrimitiveTest", itr.next());
assertEquals("notDate", itr.next());
assertEquals("columnProcessorDoubleTest", itr.next());
+ assertEquals("11", itr.next());
assertFalse(itr.hasNext());
}