Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/GaugeTimerangeState.java @ 3745:e86cd5176678
Check to prevent NPE
flys-artifacts/trunk@5429 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Mon, 10 Sep 2012 20:32:39 +0000 |
parents | 2966787b5188 |
children | f6c73ee1b7f1 |
comparison
equal
deleted
inserted
replaced
3744:b220287a171e | 3745:e86cd5176678 |
---|---|
2 | 2 |
3 import java.util.Calendar; | 3 import java.util.Calendar; |
4 import java.util.List; | 4 import java.util.List; |
5 | 5 |
6 import org.apache.log4j.Logger; | 6 import org.apache.log4j.Logger; |
7 | 7 import org.hibernate.SQLQuery; |
8 import org.hibernate.Session; | 8 import org.hibernate.Session; |
9 import org.hibernate.SQLQuery; | |
10 import org.hibernate.type.StandardBasicTypes; | 9 import org.hibernate.type.StandardBasicTypes; |
11 | 10 |
11 import de.intevation.flys.artifacts.FLYSArtifact; | |
12 import de.intevation.flys.backend.SessionHolder; | |
12 import de.intevation.flys.model.Gauge; | 13 import de.intevation.flys.model.Gauge; |
13 import de.intevation.flys.backend.SessionHolder; | |
14 | |
15 import de.intevation.flys.artifacts.FLYSArtifact; | |
16 import de.intevation.flys.utils.FLYSUtils; | 14 import de.intevation.flys.utils.FLYSUtils; |
17 | 15 |
18 | 16 |
19 /** | 17 /** |
20 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 18 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
21 */ | 19 */ |
22 public class GaugeTimerangeState extends IntRangeState { | 20 public class GaugeTimerangeState extends IntRangeState { |
23 | 21 |
24 private static final Logger logger = | 22 private static final Logger logger = |
25 Logger.getLogger(GaugeTimerangeState.class); | 23 Logger.getLogger(GaugeTimerangeState.class); |
26 | 24 |
27 | 25 |
28 protected int[] getLowerUpper(FLYSArtifact flys) { | 26 protected int[] getLowerUpper(FLYSArtifact flys) { |
29 Gauge gauge = FLYSUtils.getReferenceGauge(flys); | 27 Gauge gauge = FLYSUtils.getReferenceGauge(flys); |
30 | 28 |
34 } | 32 } |
35 | 33 |
36 Session session = SessionHolder.HOLDER.get(); | 34 Session session = SessionHolder.HOLDER.get(); |
37 | 35 |
38 SQLQuery query = session.createSQLQuery( | 36 SQLQuery query = session.createSQLQuery( |
39 "SELECT min(start_time) as min, max(stop_time) as max " + | 37 "SELECT min(start_time) as min, max(stop_time) as max " + |
40 "FROM time_intervals WHERE id in " + | 38 "FROM time_intervals WHERE id in " + |
41 "(SELECT time_interval_id FROM discharge_tables " + | 39 "(SELECT time_interval_id FROM discharge_tables " + |
42 "WHERE gauge_id =:gid)"); | 40 "WHERE gauge_id =:gid)"); |
43 | 41 |
44 query.addScalar("min", StandardBasicTypes.CALENDAR); | 42 query.addScalar("min", StandardBasicTypes.CALENDAR); |
45 query.addScalar("max", StandardBasicTypes.CALENDAR); | 43 query.addScalar("max", StandardBasicTypes.CALENDAR); |
46 | 44 |
47 query.setInteger("gid", gauge.getId()); | 45 query.setInteger("gid", gauge.getId()); |
48 | 46 |
49 List results = query.list(); | 47 List<?> results = query.list(); |
50 | 48 |
51 if (results != null) { | 49 if (results != null) { |
52 Object[] res = (Object[]) results.get(0); | 50 Object[] res = (Object[]) results.get(0); |
53 | 51 |
54 Calendar lo = (Calendar) res[0]; | 52 Calendar lo = (Calendar) res[0]; |
55 Calendar up = (Calendar) res[1]; | 53 Calendar up = (Calendar) res[1]; |
56 | 54 |
57 return new int[] { lo.get(Calendar.YEAR), up.get(Calendar.YEAR) }; | 55 if (lo != null && up != null) { |
56 return new int[] { lo.get(Calendar.YEAR), up.get(Calendar.YEAR) }; | |
57 } | |
58 } | 58 } |
59 | 59 |
60 logger.warn("Could not determine time range for gauge: " + gauge); | 60 logger.warn("Could not determine time range for gauge: " + gauge); |
61 | 61 |
62 return null; | 62 return null; |