--- old/src/share/classes/java/sql/BatchUpdateException.java 2011-04-21 10:39:54.000000000 -0400 +++ new/src/share/classes/java/sql/BatchUpdateException.java 2011-04-21 10:39:54.000000000 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,6 +25,8 @@ package java.sql; +import java.util.Arrays; + /** * The subclass of {@link SQLException} thrown when an error * occurs during a batch update operation. In addition to the @@ -77,8 +79,7 @@ */ public BatchUpdateException( String reason, String SQLState, int vendorCode, int[] updateCounts ) { - super(reason, SQLState, vendorCode); - this.updateCounts = updateCounts; + this(reason, SQLState, vendorCode, updateCounts, null); } /** @@ -105,8 +106,7 @@ */ public BatchUpdateException(String reason, String SQLState, int[] updateCounts) { - super(reason, SQLState); - this.updateCounts = updateCounts; + this(reason, SQLState, 0, updateCounts, null); } /** @@ -132,8 +132,7 @@ * @since 1.2 */ public BatchUpdateException(String reason, int[] updateCounts) { - super(reason); - this.updateCounts = updateCounts; + this(reason, null, 0, updateCounts, null); } /** @@ -156,8 +155,7 @@ * @since 1.2 */ public BatchUpdateException(int[] updateCounts) { - super(); - this.updateCounts = updateCounts; + this(null, null, 0, updateCounts, null); } /** @@ -172,8 +170,7 @@ * @since 1.2 */ public BatchUpdateException() { - super(); - this.updateCounts = null; + this(null, null, 0, null, null); } /** @@ -191,8 +188,7 @@ * @since 1.6 */ public BatchUpdateException(Throwable cause) { - super(cause); - this.updateCounts = null; + this(null, null, 0, null, cause); } /** @@ -218,8 +214,7 @@ * @since 1.6 */ public BatchUpdateException(int []updateCounts , Throwable cause) { - super(cause); - this.updateCounts = updateCounts; + this(null, null, 0, updateCounts, cause); } /** @@ -243,8 +238,7 @@ * @since 1.6 */ public BatchUpdateException(String reason, int []updateCounts, Throwable cause) { - super(reason,cause); - this.updateCounts = updateCounts; + this(reason, null, 0, updateCounts, cause); } /** @@ -269,8 +263,7 @@ */ public BatchUpdateException(String reason, String SQLState, int []updateCounts, Throwable cause) { - super(reason,SQLState,cause); - this.updateCounts = updateCounts; + this(reason, SQLState, 0, updateCounts, cause); } /** @@ -297,8 +290,10 @@ */ public BatchUpdateException(String reason, String SQLState, int vendorCode, int []updateCounts,Throwable cause) { - super(reason,SQLState,vendorCode,cause); - this.updateCounts = updateCounts; + super(reason, SQLState, vendorCode, cause); + if(updateCounts != null) { + this.updateCounts = Arrays.copyOf(updateCounts, updateCounts.length); + } } /** @@ -332,7 +327,7 @@ * @since 1.3 */ public int[] getUpdateCounts() { - return updateCounts; + return updateCounts != null ? Arrays.copyOf(updateCounts, updateCounts.length) : null; } /**