@@ -826,40 +826,28 @@ public void testGetTimestampParamWithCalByIndex() throws SQLException {
826826 BigQueryCallableStatement statement =
827827 new BigQueryCallableStatement (bigQueryConnection , "call testProc('?')" );
828828 assertNotNull (statement );
829- TimeZone originalJvmZone = TimeZone .getDefault ();
830- TimeZone .setDefault (TimeZone .getTimeZone ("America/New_York" ));
831- try {
832- Calendar cal = Calendar .getInstance (TimeZone .getTimeZone ("Asia/Tokyo" ));
833- Timestamp expected = new Timestamp (1700000000000L );
834-
835- statement .getParameterHandler ().setParameter (1 , expected , Timestamp .class );
836- Timestamp actual = statement .getTimestamp (1 , cal );
837- assertEquals (expected , actual );
838- } finally {
839- TimeZone .setDefault (originalJvmZone );
840- }
829+ Calendar cal = getNonDefaultCalendar ();
830+ Timestamp expected = new Timestamp (1700000000000L );
831+
832+ statement .getParameterHandler ().setParameter (1 , expected , Timestamp .class );
833+ Timestamp actual = statement .getTimestamp (1 , cal );
834+ assertEquals (expected , actual );
841835 }
842836
843837 @ Test
844838 public void testGetTimestampParamWithCalByName () throws SQLException {
845839 BigQueryCallableStatement statement =
846840 new BigQueryCallableStatement (bigQueryConnection , "call testProc('?')" );
847841 assertNotNull (statement );
848- TimeZone originalJvmZone = TimeZone .getDefault ();
849- TimeZone .setDefault (TimeZone .getTimeZone ("America/New_York" ));
850- try {
851- Calendar cal = Calendar .getInstance (TimeZone .getTimeZone ("Asia/Tokyo" ));
852- Timestamp expected = new Timestamp (1700000000000L );
842+ Calendar cal = getNonDefaultCalendar ();
843+ Timestamp expected = new Timestamp (1700000000000L );
853844
854- statement
855- .getParameterHandler ()
856- .setParameter (
857- GET_PARAM_KEY , expected , Timestamp .class , BigQueryStatementParameterType .IN , 0 );
858- Timestamp actual = statement .getTimestamp (GET_PARAM_KEY , cal );
859- assertEquals (expected , actual );
860- } finally {
861- TimeZone .setDefault (originalJvmZone );
862- }
845+ statement
846+ .getParameterHandler ()
847+ .setParameter (
848+ GET_PARAM_KEY , expected , Timestamp .class , BigQueryStatementParameterType .IN , 0 );
849+ Timestamp actual = statement .getTimestamp (GET_PARAM_KEY , cal );
850+ assertEquals (expected , actual );
863851 }
864852
865853 @ Test
@@ -1068,23 +1056,25 @@ public void testSetTimestampCalParamByName() throws SQLException {
10681056 BigQueryCallableStatement statement =
10691057 new BigQueryCallableStatement (bigQueryConnection , "call testProc('?')" );
10701058 assertNotNull (statement );
1071- TimeZone originalJvmZone = TimeZone .getDefault ();
1072- TimeZone .setDefault (TimeZone .getTimeZone ("America/New_York" ));
1073- try {
1074- Timestamp expectedTimestamp = new Timestamp (1700000000000L );
1075- Calendar expectedCal = Calendar .getInstance (TimeZone .getTimeZone ("Asia/Tokyo" ));
1059+ Timestamp expectedTimestamp = new Timestamp (1700000000000L );
1060+ Calendar expectedCal = getNonDefaultCalendar ();
10761061
1077- statement .setTimestamp (PARAM_KEY , expectedTimestamp , expectedCal );
1078- Timestamp actual = statement .getTimestamp (PARAM_KEY );
1079- assertEquals (expectedTimestamp , actual );
1080- actual = statement .getTimestamp (PARAM_KEY , expectedCal );
1081- assertEquals (expectedTimestamp , actual );
1082- } finally {
1083- TimeZone .setDefault (originalJvmZone );
1084- }
1062+ statement .setTimestamp (PARAM_KEY , expectedTimestamp , expectedCal );
1063+ Timestamp actual = statement .getTimestamp (PARAM_KEY );
1064+ assertEquals (expectedTimestamp , actual );
1065+ actual = statement .getTimestamp (PARAM_KEY , expectedCal );
1066+ assertEquals (expectedTimestamp , actual );
10851067 }
10861068
10871069 ////////// Private helper methods ////////////////////////
1070+ private static Calendar getNonDefaultCalendar () {
1071+ TimeZone testZone =
1072+ TimeZone .getDefault ().hasSameRules (TimeZone .getTimeZone ("Asia/Tokyo" ))
1073+ ? TimeZone .getTimeZone ("America/New_York" )
1074+ : TimeZone .getTimeZone ("Asia/Tokyo" );
1075+ return Calendar .getInstance (testZone );
1076+ }
1077+
10881078 private void registerOutParamIndexHelper (
10891079 int paramIndex , int javaSqlType , Class <?> javaType , StandardSQLTypeName sqlType , int scale )
10901080 throws SQLException {
0 commit comments