# HG changeset patch # User Andre Heinecke # Date 1387206010 -3600 # Node ID feb23ab736f4adaecd51ad81b841d4df2c78b9ab # Parent 75ef6963f1c96e014c4b64bc6e4d845441f159a9 (issue1649) Better check for waterlevel data and accept wkms data Fixes calculation of differences with old differences calculations diff -r 75ef6963f1c9 -r feb23ab736f4 artifacts/src/main/java/org/dive4elements/river/utils/RiverUtils.java --- a/artifacts/src/main/java/org/dive4elements/river/utils/RiverUtils.java Mon Dec 16 15:14:40 2013 +0100 +++ b/artifacts/src/main/java/org/dive4elements/river/utils/RiverUtils.java Mon Dec 16 16:00:10 2013 +0100 @@ -786,13 +786,31 @@ return null; } else{ - WQKms[] wqkms = (WQKms[]) flys.getWaterlevelData(). - getData(); - if (wqkms == null) - logger.warn("not waterlevels in artifact"); - else if (wqkms.length < idx) - logger.warn("not enough waterlevels in artifact"); - return wqkms[idx]; + Object data = flys.getWaterlevelData(context).getData(); + + if (data == null) { + logger.error("No waterlevel Data in artifact"); + return null; + } + + if (data instanceof WQKms[]) { + WQKms[] wqkms = (WQKms[]) data; + if (wqkms.length < idx) { + logger.error("not enough waterlevels in artifact"); + return null; + } + return wqkms[idx]; + } else if (data instanceof WKms[]) { + WKms[] wkms = (WKms[]) data; + if (wkms.length < idx) { + logger.error("not enough wkms in artifact"); + return null; + } + return wkms[idx]; + } + + logger.error("unknown Waterlevel Data."); + return null; } }