From a76b53a4af861c94e794ccdee9f6dc5730d82de5 Mon Sep 17 00:00:00 2001
From: Stephane Dallongeville <stephane.dallongeville@pasteur.fr>
Date: Mon, 15 Feb 2021 11:29:28 +0100
Subject: [PATCH] Fixed error spamming on haralick features descriptor

---
 src/main/java/plugins/adufour/roi/ROIMeasures.java | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/main/java/plugins/adufour/roi/ROIMeasures.java b/src/main/java/plugins/adufour/roi/ROIMeasures.java
index 5265bf7..dc04f6f 100644
--- a/src/main/java/plugins/adufour/roi/ROIMeasures.java
+++ b/src/main/java/plugins/adufour/roi/ROIMeasures.java
@@ -9,8 +9,10 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.Callable;
 import java.util.concurrent.Future;
 
@@ -654,6 +656,7 @@ public class ROIMeasures extends EzPlug implements ROIBlock, GlobalSequenceListe
                 }
 
                 Map<ROIDescriptor, Object>[] haralickTextureValues = null;
+                Set<String> haralickErrors = new HashSet<>();
                 if (Measures.INTENSITY_TEXTURE_ASM.isSelected() || Measures.INTENSITY_TEXTURE_CONT.isSelected()
                         || Measures.INTENSITY_TEXTURE_ENT.isSelected() || Measures.INTENSITY_TEXTURE_HOMO.isSelected())
                 {
@@ -673,8 +676,14 @@ public class ROIMeasures extends EzPlug implements ROIBlock, GlobalSequenceListe
                             }
                             catch (UnsupportedOperationException ex)
                             {
-                                System.err.println("Could not compute Haralick texture descriptor");
-                                ex.printStackTrace();
+                                final String mess = ex.getMessage();
+
+                                // we don't want to spam output with these errors
+                                if (!haralickErrors.contains(mess))
+                                {
+                                    haralickErrors.add(mess);
+                                    System.err.println(mess);
+                                }
                             }
                         }
                     }
-- 
GitLab