Author: britter
Date: Wed Jul 16 16:08:36 2014
New Revision: 1611066

URL: http://svn.apache.org/r1611066
Log:
DBUTILS-118 - BeanProcessor not returning nanoseconds. Thanks to Feysal 
Rujbally and Daniele Cremonini.

Modified:
    commons/proper/dbutils/trunk/src/changes/changes.xml
    
commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
    
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BaseTestCase.java
    
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java
    
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/TestBean.java

Modified: commons/proper/dbutils/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/changes/changes.xml?rev=1611066&r1=1611065&r2=1611066&view=diff
==============================================================================
--- commons/proper/dbutils/trunk/src/changes/changes.xml (original)
+++ commons/proper/dbutils/trunk/src/changes/changes.xml Wed Jul 16 16:08:36 
2014
@@ -44,6 +44,9 @@ The <action> type attribute can be add,u
   </properties>
   <body>
     <release version="1.6" date="TBA" description="Bugfixes and addition of 
insert methods">
+      <action dev="britter" type="fix" issue="DBUTILS-118" due-to="Feysal 
Rujbally, Daniele Cremonini">
+        BeanProcessor not returning nanoseconds
+      </action>
       <action dev="britter" type="add" issue="DBUTILS-113" due-to="Graylin 
Kim, Michael Osipov">
         Add support for conversion of ResultSet strings to enums in the 
BeanProcessor
       </action>

Modified: 
commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BeanProcessor.java?rev=1611066&r1=1611065&r2=1611066&view=diff
==============================================================================
--- 
commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
 (original)
+++ 
commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/BeanProcessor.java
 Wed Jul 16 16:08:36 2014
@@ -262,7 +262,10 @@ public class BeanProcessor {
                     value = new java.sql.Time(((java.util.Date) 
value).getTime());
                 } else
                 if ("java.sql.Timestamp".equals(targetType)) {
-                    value = new java.sql.Timestamp(((java.util.Date) 
value).getTime());
+                    Timestamp tsValue = (Timestamp) value;
+                    int nanos = tsValue.getNanos();
+                    value = new java.sql.Timestamp(tsValue.getTime());
+                    ((Timestamp) value).setNanos(nanos);
                 }
             } else
             if (value instanceof String && params[0].isEnum()) {

Modified: 
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BaseTestCase.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BaseTestCase.java?rev=1611066&r1=1611065&r2=1611066&view=diff
==============================================================================
--- 
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BaseTestCase.java
 (original)
+++ 
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BaseTestCase.java
 Wed Jul 16 16:08:36 2014
@@ -19,6 +19,7 @@ package org.apache.commons.dbutils;
 import java.math.BigInteger;
 import java.sql.ResultSet;
 import java.sql.ResultSetMetaData;
+import java.sql.Timestamp;
 import java.util.Date;
 
 import junit.framework.TestCase;
@@ -50,6 +51,16 @@ public class BaseTestCase extends TestCa
     protected static final ResultSetMetaData metaData =
         MockResultSetMetaData.create(columnNames);
 
+    /**
+     * A Timestamp for test purposes having 9 decimals
+     */
+    static final Timestamp ts789456123;
+
+    static {
+        ts789456123 = new Timestamp(new Date().getTime());
+        ts789456123.setNanos(789456123);
+    }
+    
     private static final Object[] row1 =
         new Object[] {
             "1",
@@ -73,7 +84,7 @@ public class BaseTestCase extends TestCa
             Integer.valueOf(4),
             null,
             null,
-            new Date(),
+            ts789456123,
             BigInteger.valueOf(13)};
 
     private static final Object[][] rows = new Object[][] { row1, row2 };

Modified: 
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java?rev=1611066&r1=1611065&r2=1611066&view=diff
==============================================================================
--- 
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java
 (original)
+++ 
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/BasicRowProcessorTest.java
 Wed Jul 16 16:08:36 2014
@@ -83,7 +83,7 @@ public class BasicRowProcessorTest exten
         // test date -> string handling
         assertNotNull(row.getNotDate());
         assertTrue(!"not a date".equals(row.getNotDate()));
-        datef.parse(row.getNotDate());
+        assertTrue(row.getNotDate().endsWith("789456123"));
 
         assertFalse(this.rs.next());
 
@@ -100,6 +100,7 @@ public class BasicRowProcessorTest exten
         assertEquals("2", b.getTwo());
         assertEquals(TestBean.Ordinal.THREE, b.getThree());
         assertEquals("not set", b.getDoNotSet());
+        datef.parse(b.getNotDate());
 
         b = list.get(1);
         assertEquals("4", b.getOne());
@@ -113,7 +114,7 @@ public class BasicRowProcessorTest exten
         // test date -> string handling
         assertNotNull(b.getNotDate());
         assertTrue(!"not a date".equals(b.getNotDate()));
-        datef.parse(b.getNotDate());
+        assertTrue(b.getNotDate().endsWith("789456123"));
     }
 
     public void testToMap() throws SQLException {

Modified: 
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/TestBean.java
URL: 
http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/TestBean.java?rev=1611066&r1=1611065&r2=1611066&view=diff
==============================================================================
--- 
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/TestBean.java
 (original)
+++ 
commons/proper/dbutils/trunk/src/test/java/org/apache/commons/dbutils/TestBean.java
 Wed Jul 16 16:08:36 2014
@@ -16,6 +16,8 @@
  */
 package org.apache.commons.dbutils;
 
+import java.sql.Timestamp;
+
 /**
  * A bean to use in testing toBean() and toBeanList().
  */
@@ -37,6 +39,8 @@ public class TestBean {
 
     private Integer integerTest = Integer.valueOf(0);
 
+    private Timestamp timestamp = null;
+
     private String doNotSet = "not set";
 
     /**


Reply via email to