Author: britter
Date: Wed Jul 16 17:34:43 2014
New Revision: 1611104
URL: http://svn.apache.org/r1611104
Log:
DBUTILS-110: ArrayHandler should return an empty array when handle has no rows
Modified:
commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/ArrayHandler.java
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayHandlerTest.java
Modified:
commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/ArrayHandler.java
URL:
http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/ArrayHandler.java?rev=1611104&r1=1611103&r2=1611104&view=diff
==============================================================================
---
commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/ArrayHandler.java
(original)
+++
commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/handlers/ArrayHandler.java
Wed Jul 16 17:34:43 2014
@@ -40,6 +40,11 @@ public class ArrayHandler implements Res
static final RowProcessor ROW_PROCESSOR = new BasicRowProcessor();
/**
+ * An empty array to return when no more rows are available in the
ResultSet.
+ */
+ private static final Object[] EMPTY_ARRAY = new Object[0];
+
+ /**
* The RowProcessor implementation to use when converting rows
* into arrays.
*/
@@ -67,15 +72,15 @@ public class ArrayHandler implements Res
/**
* Places the column values from the first row in an <code>Object[]</code>.
* @param rs <code>ResultSet</code> to process.
- * @return An Object[] or <code>null</code> if there are no rows in the
- * <code>ResultSet</code>.
+ * @return An Object[]. If there are no rows in the <code>ResultSet</code>
+ * an empty array will be returned.
*
* @throws SQLException if a database access error occurs
* @see
org.apache.commons.dbutils.ResultSetHandler#handle(java.sql.ResultSet)
*/
@Override
public Object[] handle(ResultSet rs) throws SQLException {
- return rs.next() ? this.convert.toArray(rs) : null;
+ return rs.next() ? this.convert.toArray(rs) : EMPTY_ARRAY;
}
}
Modified:
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayHandlerTest.java
URL:
http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayHandlerTest.java?rev=1611104&r1=1611103&r2=1611104&view=diff
==============================================================================
---
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayHandlerTest.java
(original)
+++
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/handlers/ArrayHandlerTest.java
Wed Jul 16 17:34:43 2014
@@ -16,6 +16,10 @@
*/
package org.apache.commons.dbutils.handlers;
+import static org.hamcrest.Matchers.emptyArray;
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
+
import java.sql.SQLException;
import org.apache.commons.dbutils.BaseTestCase;
@@ -41,7 +45,7 @@ public class ArrayHandlerTest extends Ba
ResultSetHandler<Object[]> h = new ArrayHandler();
Object[] results = h.handle(this.emptyResultSet);
- assertNull(results);
+ assertThat(results, is(emptyArray()));
}
}