diff options
Diffstat (limited to 'components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/PmDataQueue.java')
-rw-r--r-- | components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/PmDataQueue.java | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/PmDataQueue.java b/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/PmDataQueue.java index d907bfed..4f196979 100644 --- a/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/PmDataQueue.java +++ b/components/slice-analysis-ms/src/main/java/org/onap/slice/analysis/ms/service/PmDataQueue.java @@ -31,6 +31,8 @@ import java.util.concurrent.LinkedBlockingQueue; import org.onap.slice.analysis.ms.models.MeasurementObject; import org.onap.slice.analysis.ms.models.SubCounter; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; /** @@ -38,6 +40,8 @@ import org.springframework.stereotype.Component; */ @Component public class PmDataQueue { + private static Logger log = LoggerFactory.getLogger(PmDataQueue.class); + private Map<SubCounter, Queue<List<MeasurementObject>>> subCounterMap = Collections.synchronizedMap(new LinkedHashMap<SubCounter, Queue<List<MeasurementObject>>>()); private Queue<String> snssaiList = new LinkedBlockingQueue<>(); @@ -54,6 +58,7 @@ public class PmDataQueue { measQueue.add(measurementObjectData); subCounterMap.put(subCounter, measQueue); } + log.debug("Queue: {}", subCounterMap); } /** @@ -61,12 +66,15 @@ public class PmDataQueue { * returns the specified number of samples */ public List<List<MeasurementObject>> getSamplesFromQueue(SubCounter subCounter, int samples) { - List<List<MeasurementObject>> sampleList = new LinkedList<>(); + List<List<MeasurementObject>> sampleList = null; if (subCounterMap.containsKey(subCounter)){ Queue<List<MeasurementObject>> measQueue = subCounterMap.get(subCounter); - while(samples > 0) { - sampleList.add(measQueue.remove()); - samples --; + if(measQueue.size() >= samples) { + sampleList = new LinkedList<>(); + while(samples > 0) { + sampleList.add(measQueue.remove()); + samples --; + } } } return sampleList; @@ -86,10 +94,12 @@ public class PmDataQueue { public String getSnnsaiFromQueue() { String snssai = ""; try { - snssai = snssaiList.remove(); + if(!snssaiList.isEmpty()){ + snssai = snssaiList.remove(); + } } catch(Exception e) { - + log.error("Problem fetching from the Queue, {}", e.getMessage()); } return snssai; } |