From 9b5794493eb69db0162d9c9d1e7044f9bd87ecf7 Mon Sep 17 00:00:00 2001 From: gobbo_a Date: Fri, 16 Feb 2024 10:40:23 +0100 Subject: [PATCH] Protect each image attribute writing when saving an image stack. --- .../ch/psi/pshell/ui/CamServerViewer.java | 34 +++++++++++++------ 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/src/main/java/ch/psi/pshell/ui/CamServerViewer.java b/src/main/java/ch/psi/pshell/ui/CamServerViewer.java index dd98564b..67170030 100644 --- a/src/main/java/ch/psi/pshell/ui/CamServerViewer.java +++ b/src/main/java/ch/psi/pshell/ui/CamServerViewer.java @@ -2909,22 +2909,34 @@ protected String saveImages(String name, ArrayList images, Map pars = getProcessingParameters(first); - for (String key : pars.keySet()) { + for (String key : pars.keySet()) { if ((pars.get(key) != null) && (pars.get(key) instanceof Map)) { for (Object k : ((Map) pars.get(key)).keySet()) { Object v = ((Map) pars.get(key)).get(k); - dm.setAttribute(pathImage, key + " " + k, (v == null) ? "" : v); - } + String keyName = key + " " + k; + try{ + dm.setAttribute(pathImage, keyName, (v == null) ? "" : v); + } catch (Exception ex) { + Logger.getLogger(CamServerViewer.class.getName()).warning("Error set image attribute " + keyName + " to " + v + ": " + ex.getMessage()); + } } } else { Object value = pars.get(key); - if (value == null) { - value = ""; - } else if (value instanceof List) { - Class cls = (((List) value).size() > 0) ? ((List) value).get(0).getClass() : double.class; - value = Convert.toPrimitiveArray(value, cls); - //value = Convert.toDouble(value); - } - dm.setAttribute(pathImage, key, value); + try{ + if (value == null) { + value = ""; + } else if (value instanceof List) { + Class cls = (((List) value).size() > 0) ? ((List) value).get(0).getClass() : double.class; + if (cls == String.class){ + value = Convert.toStringArray(value); + } else { + value = Convert.toPrimitiveArray(value, cls); + } + //value = Convert.toDouble(value); + } + dm.setAttribute(pathImage, key, value); + } catch (Exception ex) { + Logger.getLogger(CamServerViewer.class.getName()).warning("Error set image attribute " + key + " to " + value + ": " + ex.getMessage()); + } } } } else if (val.getClass().isArray()) {