From 701402905fc7cea2bf1cd7caad97d22a02d64772 Mon Sep 17 00:00:00 2001
From: Nikolaus Krismer <niko@krismer.de>
Date: Tue, 18 Mar 2014 20:35:18 +0100
Subject: [PATCH] fixed NPE

---
 .../java/it/unibz/inf/isochrone/algorithm/Isochrone.java  | 8 ++++++--
 .../java/it/unibz/inf/isochrone/algorithm/MDijkstra.java  | 5 +----
 src/main/java/it/unibz/inf/isochrone/algorithm/MineX.java | 5 +----
 src/main/java/it/unibz/inf/isochrone/algorithm/MrneX.java | 5 +----
 4 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/src/main/java/it/unibz/inf/isochrone/algorithm/Isochrone.java b/src/main/java/it/unibz/inf/isochrone/algorithm/Isochrone.java
index 73e70005..86661dab 100644
--- a/src/main/java/it/unibz/inf/isochrone/algorithm/Isochrone.java
+++ b/src/main/java/it/unibz/inf/isochrone/algorithm/Isochrone.java
@@ -37,10 +37,14 @@ public abstract class Isochrone {
 	 * Instantiates a new isochrone object.
 	 *
 	 * @param query The parameters for the isochrone
+	 * @throws AlgorithmException thrown if there are no date codes in the databse for the specified query
 	 */
-	public Isochrone(final Query query) {
+	public Isochrone(final ConfigDataset config, final Query query) throws AlgorithmException {
 		this.query = query;
-		queue = new PriorityQueue<Node>();
+		this.db = new Database<>(config, query.getMode(), query.getDir());
+		this.queue = new PriorityQueue<Node>();
+
+		initDateCodes();
 	}
 
 	/**
diff --git a/src/main/java/it/unibz/inf/isochrone/algorithm/MDijkstra.java b/src/main/java/it/unibz/inf/isochrone/algorithm/MDijkstra.java
index bd6d2688..b5a953be 100644
--- a/src/main/java/it/unibz/inf/isochrone/algorithm/MDijkstra.java
+++ b/src/main/java/it/unibz/inf/isochrone/algorithm/MDijkstra.java
@@ -1,7 +1,6 @@
 package it.unibz.inf.isochrone.algorithm;
 
 import it.unibz.inf.isochrone.config.ConfigDataset;
-import it.unibz.inf.isochrone.db.Database;
 import it.unibz.inf.isochrone.network.Link;
 import it.unibz.inf.isochrone.network.Node;
 import it.unibz.inf.isochrone.util.Query;
@@ -23,10 +22,8 @@ public class MDijkstra extends Isochrone {
 	private final Map<Integer, Link> links;
 
 	public MDijkstra(final ConfigDataset config, final Query query) throws AlgorithmException {
-		super(query);
+		super(config, query);
 
-		initDateCodes();
-		db = new Database<>(config, query.getMode(), query.getDir());
 		nodes = new HashMap<Integer, Node>();
 		links = new LinkedHashMap<Integer, Link>();
 
diff --git a/src/main/java/it/unibz/inf/isochrone/algorithm/MineX.java b/src/main/java/it/unibz/inf/isochrone/algorithm/MineX.java
index bb44b802..7cbc5a1c 100644
--- a/src/main/java/it/unibz/inf/isochrone/algorithm/MineX.java
+++ b/src/main/java/it/unibz/inf/isochrone/algorithm/MineX.java
@@ -1,7 +1,6 @@
 package it.unibz.inf.isochrone.algorithm;
 
 import it.unibz.inf.isochrone.config.ConfigDataset;
-import it.unibz.inf.isochrone.db.Database;
 import it.unibz.inf.isochrone.network.Link;
 import it.unibz.inf.isochrone.network.Node;
 import it.unibz.inf.isochrone.util.Query;
@@ -18,10 +17,8 @@ public class MineX extends Isochrone {
 	private final Map<Integer, Node> nodes;
 
 	public MineX(final ConfigDataset config, final Query query) throws AlgorithmException {
-		super(query);
+		super(config, query);
 
-		initDateCodes();
-		db = new Database<>(config, query.getMode(), query.getDir());
 		nodes = new HashMap<Integer, Node>();
 	}
 
diff --git a/src/main/java/it/unibz/inf/isochrone/algorithm/MrneX.java b/src/main/java/it/unibz/inf/isochrone/algorithm/MrneX.java
index 66c775db..d73c018a 100644
--- a/src/main/java/it/unibz/inf/isochrone/algorithm/MrneX.java
+++ b/src/main/java/it/unibz/inf/isochrone/algorithm/MrneX.java
@@ -1,7 +1,6 @@
 package it.unibz.inf.isochrone.algorithm;
 
 import it.unibz.inf.isochrone.config.ConfigDataset;
-import it.unibz.inf.isochrone.db.Database;
 import it.unibz.inf.isochrone.network.Link;
 import it.unibz.inf.isochrone.network.Node;
 import it.unibz.inf.isochrone.util.DistanceAlgorithm;
@@ -33,10 +32,8 @@ public class MrneX extends Isochrone {
 	}
 
 	public MrneX(final ConfigDataset config, final Query query, final int maxMemorySize) throws AlgorithmException {
-		super(query);
+		super(config, query);
 
-		initDateCodes();
-		db = new Database<>(config, query.getMode(), query.getDir());
 		maxDuration = query.getDuration().intValue();
 		maxMemory = maxMemorySize;
 		nodes = new HashMap<Integer, Node>();
-- 
GitLab