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
--- 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();