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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list