8148570: TzdbZoneRulesCompiler.java throws Null Pointer Exception While Compiling and building TZDB data file
authorrpatil
Tue, 09 Feb 2016 11:17:28 +0530
changeset 35769 3715cd3e9095
parent 35768 7066da300a08
child 35770 931159d012e3
8148570: TzdbZoneRulesCompiler.java throws Null Pointer Exception While Compiling and building TZDB data file Summary: While getting value from DayOfWeek, -1 is returned if the DayOfWeek is null. The reason to return “-1” being, the same value is checked later while getting day-of-week byte (dowbyte) at line no. 251, ZoneRules.java. Reviewed-by: rriggs, aefimov
jdk/make/src/classes/build/tools/tzdb/ZoneRules.java
--- a/jdk/make/src/classes/build/tools/tzdb/ZoneRules.java	Mon Feb 08 18:14:48 2016 -0800
+++ b/jdk/make/src/classes/build/tools/tzdb/ZoneRules.java	Tue Feb 09 11:17:28 2016 +0530
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2016, 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
@@ -232,7 +232,7 @@
     static void writeRule(ZoneOffsetTransitionRule rule, DataOutput out) throws IOException {
         int month = rule.getMonth().getValue();
         byte dom = (byte)rule.getDayOfMonthIndicator();
-        int dow = rule.getDayOfWeek().getValue();
+        int dow = (rule.getDayOfWeek() == null ? -1 : rule.getDayOfWeek().getValue());
         LocalTime time = rule.getLocalTime();
         boolean timeEndOfDay = rule.isMidnightEndOfDay();
         TimeDefinition timeDefinition = rule.getTimeDefinition();