From: Gaƫl L'hopital Date: Sun, 8 Nov 2020 20:09:08 +0000 (+0100) Subject: [astro] Correcting some SAT finding and a blocking point (#8964) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=370c367bc3c11455a186e92986a2942129e55b1a;p=openhab-addons.git [astro] Correcting some SAT finding and a blocking point (#8964) Signed-off-by: clinique --- diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/MoonCalc.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/MoonCalc.java index bd9f345453..188bba4456 100644 --- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/MoonCalc.java +++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/MoonCalc.java @@ -13,6 +13,7 @@ package org.openhab.binding.astro.internal.calc; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Calendar; import org.openhab.binding.astro.internal.model.Eclipse; @@ -233,7 +234,7 @@ public class MoonCalc { rounded = Math.floor(rounded) + riseMinute; BigDecimal bd = new BigDecimal(Double.toString(rounded)); - bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP); + bd = bd.setScale(2, RoundingMode.HALF_UP); return bd.doubleValue(); } diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SunZodiacCalc.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SunZodiacCalc.java index 454e917145..729440c4b8 100644 --- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SunZodiacCalc.java +++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/calc/SunZodiacCalc.java @@ -49,7 +49,7 @@ public class SunZodiacCalc { zodiacsByYear.put(year, zodiacs); } - return zodiacs.stream().filter(z -> z.isValid(calendar)).findFirst(); + return zodiacs != null ? zodiacs.stream().filter(z -> z.isValid(calendar)).findFirst() : Optional.empty(); } /** diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/SunHandler.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/SunHandler.java index 0c6ae90e5b..80d11b038d 100644 --- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/SunHandler.java +++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/handler/SunHandler.java @@ -105,8 +105,12 @@ public class SunHandler extends AstroThingHandler { public @Nullable ZonedDateTime getEventTime(SunPhaseName sunPhase, ZonedDateTime date, boolean begin) { Range eventRange = getSunAt(date).getAllRanges().get(sunPhase); - Calendar cal = begin ? eventRange.getStart() : eventRange.getEnd(); - return ZonedDateTime.ofInstant(cal.toInstant(), date.getZone()); + if (eventRange != null) { + Calendar cal = begin ? eventRange.getStart() : eventRange.getEnd(); + return ZonedDateTime.ofInstant(cal.toInstant(), date.getZone()); + } else { + return null; + } } @Override diff --git a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/PropertyUtils.java b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/PropertyUtils.java index 41dc016d5a..e2cf730ffe 100644 --- a/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/PropertyUtils.java +++ b/bundles/org.openhab.binding.astro/src/main/java/org/openhab/binding/astro/internal/util/PropertyUtils.java @@ -91,7 +91,11 @@ public class PropertyUtils { Method m = instance.getClass().getMethod(toGetterString(propertyName), null); Object result = m.invoke(instance, (Object[]) null); if (nestedIndex + 1 < properties.length) { - return getPropertyValue(result, properties, nestedIndex + 1); + if (result != null) { + return getPropertyValue(result, properties, nestedIndex + 1); + } else { + throw new NullPointerException(); + } } return result; }