diff --git a/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/WidgetInfoDialog.java b/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/WidgetInfoDialog.java index 39611732e1..b31ff7a606 100644 --- a/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/WidgetInfoDialog.java +++ b/app/display/representation-javafx/src/main/java/org/csstudio/display/builder/representation/javafx/WidgetInfoDialog.java @@ -658,14 +658,19 @@ private ArchivedStatus getFromArchiver(String pvName) { } // Prepend "archiver://" pvName = "archive://" + pvName + "(" + TimestampFormats.SECONDS_FORMAT.format(Instant.now()) + ")"; + PV pv = null; try { - PV pv = PVPool.getPV(pvName); + pv = PVPool.getPV(pvName); VType pvValue = pv.read(); - PVPool.releasePV(pv); return pvValue == null ? ArchivedStatus.NO : ArchivedStatus.YES; } catch (Exception e) { return ArchivedStatus.UNKNOWN; } + finally { + if(pv != null){ + PVPool.releasePV(pv); + } + } } private enum ArchivedStatus {