This is an automated email from the git hooks/post-receive script. ebourg-guest pushed a commit to annotated tag REL9_3_1100 in repository libpostgresql-jdbc-java.
commit c425bd7f348e58eea2cd3b2a626e37cf5b4d9319 Author: Dave Cramer <[email protected]> Date: Fri Jan 11 13:21:56 2013 -0500 Fixed my patch to deal with update counts over 2^32 Check to see if the update count is greater than Integer.MAX_VALUE before setting the update_count to Statement.SUCCESS_NO_INFO NumberFormatException will still be thrown if there is a problem parsing it. --- org/postgresql/core/v2/QueryExecutorImpl.java | 10 ++++++++-- org/postgresql/core/v3/QueryExecutorImpl.java | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/org/postgresql/core/v2/QueryExecutorImpl.java b/org/postgresql/core/v2/QueryExecutorImpl.java index 24fb0dd..324d536 100644 --- a/org/postgresql/core/v2/QueryExecutorImpl.java +++ b/org/postgresql/core/v2/QueryExecutorImpl.java @@ -587,14 +587,20 @@ public class QueryExecutorImpl implements QueryExecutor { { try { - update_count = Integer.parseInt(status.substring(1 + status.lastIndexOf(' '))); + long updates = Long.parseLong(status.substring(1 + status.lastIndexOf(' '))); + + // deal with situations where the update modifies more than 2^32 rows + if ( updates > Integer.MAX_VALUE ) + update_count = Statement.SUCCESS_NO_INFO; + if (status.startsWith("INSERT")) insert_oid = Long.parseLong(status.substring(1 + status.indexOf(' '), status.lastIndexOf(' '))); } catch (NumberFormatException nfe) { - update_count=Statement.SUCCESS_NO_INFO; + handler.handleError(new PSQLException(GT.tr("Unable to interpret the update count in command completion tag: {0}.", status), PSQLState.CONNECTION_FAILURE)); + return ; } } diff --git a/org/postgresql/core/v3/QueryExecutorImpl.java b/org/postgresql/core/v3/QueryExecutorImpl.java index 3dee95d..e6f81db 100644 --- a/org/postgresql/core/v3/QueryExecutorImpl.java +++ b/org/postgresql/core/v3/QueryExecutorImpl.java @@ -2189,14 +2189,20 @@ public class QueryExecutorImpl implements QueryExecutor { { try { - update_count = Integer.parseInt(status.substring(1 + status.lastIndexOf(' '))); + long updates = Long.parseLong(status.substring(1 + status.lastIndexOf(' '))); + + // deal with situations where the update modifies more than 2^32 rows + if ( updates > Integer.MAX_VALUE ) + update_count = Statement.SUCCESS_NO_INFO; + if (status.startsWith("INSERT")) insert_oid = Long.parseLong(status.substring(1 + status.indexOf(' '), status.lastIndexOf(' '))); } catch (NumberFormatException nfe) { - update_count=Statement.SUCCESS_NO_INFO; + handler.handleError(new PSQLException(GT.tr("Unable to interpret the update count in command completion tag: {0}.", status), PSQLState.CONNECTION_FAILURE)); + return ; } } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/libpostgresql-jdbc-java.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

