Changeset: a77591700717 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a77591700717
Modified Files:
        java/src/nl/cwi/monetdb/jdbc/MonetResultSet.java
        java/src/nl/cwi/monetdb/jdbc/MonetStatement.java
Branch: default
Log Message:

JDBC Connector: Fix NPE when generated keys result set is actually read. Also 
changed the type of generated keys to BIGINT because convention.


diffs (28 lines):

diff --git a/java/src/nl/cwi/monetdb/jdbc/MonetResultSet.java 
b/java/src/nl/cwi/monetdb/jdbc/MonetResultSet.java
--- a/java/src/nl/cwi/monetdb/jdbc/MonetResultSet.java
+++ b/java/src/nl/cwi/monetdb/jdbc/MonetResultSet.java
@@ -1445,6 +1445,10 @@ public class MonetResultSet extends Mone
         * @throws SQLException if a database access error occurs
         */
        public Object getObject(int columnIndex) throws SQLException {
+         /* statement is null for virtual result sets such as the ones that 
hold generated keys */
+         if (this.getStatement() == null) {
+          return getObject(columnIndex, new HashMap<String, Class<?>>());
+         }
                return getObject(columnIndex, 
this.getStatement().getConnection().getTypeMap());
        }
 
diff --git a/java/src/nl/cwi/monetdb/jdbc/MonetStatement.java 
b/java/src/nl/cwi/monetdb/jdbc/MonetStatement.java
--- a/java/src/nl/cwi/monetdb/jdbc/MonetStatement.java
+++ b/java/src/nl/cwi/monetdb/jdbc/MonetStatement.java
@@ -693,7 +693,9 @@ public class MonetStatement extends Mone
                types = new String[1];
 
                columns[0] = "GENERATED_KEY";
-               types[0] = "varchar";
+               /* the generated key should be an integer, because (wait for 
it) other 
+                * frameworks such as spring expect this. */
+               types[0] = "BIGINT";
 
                if (header instanceof MonetConnection.UpdateResponse) {
                        String lastid = 
((MonetConnection.UpdateResponse)header).lastid;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to