--- dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/LookupWorker.java 2015/02/09 13:21:39 2259 +++ dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/LookupWorker.java 2015/03/03 08:14:09 2422 @@ -2,6 +2,8 @@ import java.sql.SQLException; import java.util.Queue; +import java.util.concurrent.BrokenBarrierException; +import java.util.concurrent.CyclicBarrier; import java.util.logging.Level; import java.util.logging.Logger; @@ -17,10 +19,12 @@ int workerId; Lookup lookup; + CyclicBarrier barrier; - public LookupWorker(int workerId, Lookup lookup) { + public LookupWorker(int workerId, Lookup lookup, CyclicBarrier barrier) { this.workerId = workerId; this.lookup = lookup; + this.barrier = barrier; consts = Constants.getInstance(); } @@ -30,6 +34,7 @@ Constants consts = Constants.getInstance(); Adresse daekkede[] = lookup.getDaekkedeAdresser(); + Adresse udvidetDaekkede[] = lookup.getUdvidetDaekkedeAdresser(); Queue queue = lookup.getQueue(); Database db = lookup.getDb(); @@ -43,10 +48,10 @@ LookupResult result = findBedsteAdresse(qAdresse, daekkede); - if (result.bedsteAdr == null && consts.doExtendedLookup() == true) {//hvis vi ikke fandt en adresse og vi må kigge på udvidet område + if (result.bedsteAdr == null ) {//hvis vi ikke fandt en adresse og vi må kigge på udvidet område logger.info("Extended lookup for " + qAdresse); - result = findBedsteAdresse(qAdresse, LookupMain.alleDaekkedeAdresser); + result = findBedsteAdresse(qAdresse, udvidetDaekkede); } @@ -73,7 +78,14 @@ } } - + try { + barrier.await(); + } catch (BrokenBarrierException e) { + logger.log(Level.SEVERE, e.getMessage(), e); + System.exit(-1); + } catch(InterruptedException e) { + //Do nothing + } } LookupResult findBedsteAdresse(Adresse qAdresse, Adresse daekkede[]) {