From 9fa6c9d5a6746fb709f764c501eb4ef8aea85d04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=9Cmit=20Seren?= Date: Tue, 15 Jun 2021 11:43:05 +0200 Subject: [PATCH] Bugfix: Avoid infinite loop in binary search The binary search function was missing the case, when the value to be compared matches a value in the NCList. This resulted in the thread to be stuck in an infinite loop --- docker-compose.yml | 2 +- .../server/data/annotation/JBrowseChrTrackData.java | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 1031a1fa..8f02279b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -43,7 +43,7 @@ services: hdf5server: image: docker.artifactory.imp.ac.at/nordborglab/gwaportal/gwaportal-gwas-server:master volumes: - - /net/gmi.oeaw.ac.at/gwasapp/DATA_NEW_BROWSER/:/mnt + - /mnt/gwasapp/DATA_NEW_BROWSER/:/mnt ports: - 8001:8000 environment: diff --git a/src/genophenbrowser-server/src/main/java/com/gmi/nordborglab/browser/server/data/annotation/JBrowseChrTrackData.java b/src/genophenbrowser-server/src/main/java/com/gmi/nordborglab/browser/server/data/annotation/JBrowseChrTrackData.java index f7347a41..45830d72 100644 --- a/src/genophenbrowser-server/src/main/java/com/gmi/nordborglab/browser/server/data/annotation/JBrowseChrTrackData.java +++ b/src/genophenbrowser-server/src/main/java/com/gmi/nordborglab/browser/server/data/annotation/JBrowseChrTrackData.java @@ -132,13 +132,17 @@ private int binarySearch(List list, Long value) { NCListItem item = list.get(mid); Long cmp = item.getEnd(); - if (cmp > value) + if (cmp > value) { high = mid; - else if (cmp < value) + } + else if (cmp < value) { low = mid; + } + else { + high = mid; + break; + } } - NCListItem valueToCompare = new NCListItem(); - valueToCompare.setStart(value); return high; // key not found }