From e499d98e5884f48920422d06fca2d4c9cc0359c4 Mon Sep 17 00:00:00 2001 From: iMoHax Date: Mon, 3 Aug 2015 16:32:54 +0300 Subject: [PATCH] fix throw exception if from place don't have stations --- core/src/main/java/ru/trader/analysis/VendorsGraph.java | 4 ++-- core/src/main/java/ru/trader/core/MarketAnalyzer.java | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/ru/trader/analysis/VendorsGraph.java b/core/src/main/java/ru/trader/analysis/VendorsGraph.java index 09db604..a5d31a8 100644 --- a/core/src/main/java/ru/trader/analysis/VendorsGraph.java +++ b/core/src/main/java/ru/trader/analysis/VendorsGraph.java @@ -149,7 +149,7 @@ public class VendorsGraph extends ConnectibleGraph { assert vertex.getEntry() instanceof TransitVendor && !(target.getEntry() instanceof TransitVendor); VendorsGraphBuilder h = this; Path path = new Path<>(Collections.singleton(lastEdge)); - while (h != null){ + while (h != null && h.edge != null){ if (callback.isCancel()) break; BuildEdge cEdge = h.edge; Vertex source = cEdge.getSource(); @@ -203,7 +203,7 @@ public class VendorsGraph extends ConnectibleGraph { while (path != null){ if (callback.isCancel()) break; VendorsGraphBuilder h = this; - while (h != null){ + while (h != null && h.edge != null){ if (callback.isCancel()) break; if (h.limit >= path.getMinFuel() && h.limit <= path.getMaxFuel()){ BuildEdge cEdge = h.edge; diff --git a/core/src/main/java/ru/trader/core/MarketAnalyzer.java b/core/src/main/java/ru/trader/core/MarketAnalyzer.java index f81410d..de2479b 100644 --- a/core/src/main/java/ru/trader/core/MarketAnalyzer.java +++ b/core/src/main/java/ru/trader/core/MarketAnalyzer.java @@ -264,7 +264,11 @@ public class MarketAnalyzer { } private List getVendors(Place place){ - return market.getVendors(place).collect(Collectors.toList()); + List vendors = market.getVendors(place).collect(Collectors.toList()); + if (vendors.isEmpty()){ + vendors = Collections.singletonList(place.asTransit()); + } + return vendors; } public MarketAnalyzer changeCallBack(AnalysisCallBack callback){