We have a number of test failures in agentvm mode that appear to be
caused by tests changing the default TimeZone and not restoring it.
These failures become very intermittently when running with concurrency
as it is unpredictable as to the sequence of tests that a specific agent
VM will execute from run to run.
As part of tracking down these issues, I hacked on jtreg to error tests
that complete with a different TimeZone that they were run with. This
lead me to InternationalBAT.java which sets the TimeZone to GMT but
doesn't restore it.
I'd like to fix this test to restore the time zone, the proposed patch
is attached.
Thanks,
-Alan.
diff --git a/test/java/util/Locale/InternationalBAT.java
b/test/java/util/Locale/InternationalBAT.java
--- a/test/java/util/Locale/InternationalBAT.java
+++ b/test/java/util/Locale/InternationalBAT.java
@@ -39,11 +39,13 @@
public static void main(String[] args) {
boolean pass = true;
- if (!testRequiredLocales()) {
- pass = false;
- }
- if (!testRequiredEncodings()) {
- pass = false;
+
+ TimeZone tz = TimeZone.getDefault();
+ try {
+ pass &= testRequiredLocales();
+ pass &= testRequiredEncodings();
+ } finally {
+ TimeZone.setDefault(tz);
}
if (!pass) {