# HG changeset patch # User Sascha L. Teichmann # Date 1338383002 0 # Node ID 619fe13e23973fd586b88aa19a8bdae64b816d15 # Parent 3dd1c320cf81bc64ab804c98814a731c43ba6f91 FixA: Fixed access to analysis periods. flys-artifacts/trunk@4557 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 3dd1c320cf81 -r 619fe13e2397 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Wed May 30 12:12:45 2012 +0000 +++ b/flys-artifacts/ChangeLog Wed May 30 13:03:22 2012 +0000 @@ -1,3 +1,8 @@ +2012-05-30 Sascha L. Teichmann + + * src/main/java/de/intevation/flys/artifacts/FixationArtifactAccess.java: + Fixed access to analysis periods. + 2012-05-30 Raimund Renkert * doc/conf/artifacts/fixanalysis.xml: diff -r 3dd1c320cf81 -r 619fe13e2397 flys-artifacts/src/main/java/de/intevation/flys/artifacts/FixationArtifactAccess.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FixationArtifactAccess.java Wed May 30 12:12:45 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FixationArtifactAccess.java Wed May 30 13:03:22 2012 +0000 @@ -1,5 +1,6 @@ package de.intevation.flys.artifacts; +import java.util.ArrayList; import java.util.Arrays; import de.intevation.artifactdatabase.data.StateData; @@ -298,7 +299,6 @@ public long [][] getAnalysisPeriods() { if (analysisPeriods == null) { - /** TODO: Use real arrays here! */ StateData sd = artifact.getData("ana_data"); if (sd == null) { @@ -306,21 +306,27 @@ return null; } - try { - String data = (String)sd.getValue(); - String[] pairs = data.split(";"); - for (int i = 0; i < pairs.length; i++) { - String[] fromTo = pairs[i].split(","); - analysisPeriods = new long [][] { - { Long.parseLong(fromTo[0]), - Long.parseLong(fromTo[1]) } - }; + String data = (String)sd.getValue(); + String[] pairs = data.split(";"); + + ArrayList aPs = new ArrayList(pairs.length); + + for (int i = 0; i < pairs.length; i++) { + String[] fromTo = pairs[i].split(","); + if (fromTo.length >= 2) { + try { + aPs.add(new long [] { + Long.parseLong(fromTo[0]), + Long.parseLong(fromTo[1]) + }); + } + catch (NumberFormatException nfe) { + log.warn("ana_data contains no long values.", nfe); + } } } - catch (NumberFormatException nfe) { - log.warn("ana_data contains no long values."); - return null; - } + + analysisPeriods = aPs.toArray(new long[aPs.size()][]); } if (log.isDebugEnabled()) {