@@ -31,39 +31,37 @@ public void compareTimeZone()
31
31
TimeZone serverTimeZone = null ;
32
32
try {
33
33
serverTimeZone = getServerTimeZone ();
34
- if (serverTimeZone == null ) {
35
- logger .warn ("Can't get server TimeZone." );
36
- return ;
37
- }
34
+ }
35
+ catch (SQLException ex ) {
36
+ logger .warn ("Can't get server TimeZone." );
37
+ logger .warn (String .format (Locale .ENGLISH , "SQLException raised %s" , ex .toString ()));
38
+ }
38
39
39
- TimeZone clientTimeZone = TimeZone .getDefault ();
40
- Date today = new Date ();
41
- int clientOffset = clientTimeZone .getRawOffset ();
40
+ TimeZone clientTimeZone = TimeZone .getDefault ();
41
+ Date today = new Date ();
42
+ int clientOffset = clientTimeZone .getRawOffset ();
42
43
43
- if (clientTimeZone .inDaylightTime (today )) {
44
- clientOffset += clientTimeZone .getDSTSavings ();
45
- }
44
+ if (clientTimeZone .inDaylightTime (today )) {
45
+ clientOffset += clientTimeZone .getDSTSavings ();
46
+ }
46
47
47
- //
48
- // Compare offset only. Although I expect to return true, the following code return false,
49
- //
50
- // TimeZone tz_jst = TimeZone.getTimeZone("JST");
51
- // TimeZone tz_gmt9 = TimeZone.getTimeZone("GMT+9");
52
- // tz_jst.hasSameRules(tz_gmt9) // return false.
53
- //
54
- if (clientOffset != serverTimeZone .getRawOffset ()) {
55
- logger .warn (String .format (Locale .ENGLISH ,
56
- "The client timezone(%s) is different from the server timezone(%s). The plugin will fetch wrong datetime values." ,
57
- clientTimeZone .getID (), serverTimeZone .getID ()));
58
- logger .warn (String .format (Locale .ENGLISH ,
59
- "You may need to set options `useLegacyDatetimeCode` and `serverTimeZone`" ));
60
- logger .warn (String .format (Locale .ENGLISH ,
61
- "Example: `options: { useLegacyDatetimeCode: false, serverTimeZone: UTC }`" ));
62
- }
63
- logger .warn (String .format (Locale .ENGLISH , "The plugin will set `useLegacyDatetimeCode=false` by default in future." )); }
64
- catch (SQLException ex ) {
65
- logger .warn (String .format (Locale .ENGLISH , "SQLException raised %s" , ex .toString ()));
48
+ //
49
+ // Compare offset only. Although I expect to return true, the following code return false,
50
+ //
51
+ // TimeZone tz_jst = TimeZone.getTimeZone("JST");
52
+ // TimeZone tz_gmt9 = TimeZone.getTimeZone("GMT+9");
53
+ // tz_jst.hasSameRules(tz_gmt9) // return false.
54
+ //
55
+ if (clientOffset != serverTimeZone .getRawOffset ()) {
56
+ logger .warn (String .format (Locale .ENGLISH ,
57
+ "The client timezone(%s) is different from the server timezone(%s). The plugin will fetch wrong datetime values." ,
58
+ clientTimeZone .getID (), serverTimeZone .getID ()));
59
+ logger .warn (String .format (Locale .ENGLISH ,
60
+ "You may need to set options `useLegacyDatetimeCode` and `serverTimeZone`" ));
61
+ logger .warn (String .format (Locale .ENGLISH ,
62
+ "Example. `options: { useLegacyDatetimeCode: false, serverTimeZone: UTC }`" ));
66
63
}
64
+ logger .warn (String .format (Locale .ENGLISH , "The plugin will set `useLegacyDatetimeCode=false` by default in future." ));
67
65
}
68
66
69
67
private TimeZone getServerTimeZone ()
@@ -82,9 +80,8 @@ private TimeZone getServerTimeZone()
82
80
int offsetSeconds = rs .getInt (1 );
83
81
return fromGMTOffsetSeconds (offsetSeconds );
84
82
}
85
- else {
86
- return null ;
87
- }
83
+ throw new SQLException (String .format (Locale .ENGLISH ,
84
+ "The timezone comparison query(%s) doesn't return the result." ,query ));
88
85
}
89
86
finally {
90
87
stmt .close ();
0 commit comments