This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-server.git

commit e09ab7d34eb91e68e4931a94c0f2c14a4c69d8b0
Author: Alex Heneveld <[email protected]>
AuthorDate: Fri Apr 7 02:18:12 2023 +0100

    some abbreviation for task summary with very long output even in verbose 
mode
---
 .../org/apache/brooklyn/util/core/task/BasicTask.java    | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git 
a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java 
b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java
index 467cb188cf..fe250ee69a 100644
--- a/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java
+++ b/core/src/main/java/org/apache/brooklyn/util/core/task/BasicTask.java
@@ -658,7 +658,7 @@ public class BasicTask<T> implements TaskInternal<T> {
                         if (verbosity >= 1) data.appendToSummary(duration);
                         try {
                             String v = valueGetter.call();
-                            data.multiLineData.add(v==null ? "No return value 
(null)" : "Result: "+v);
+                            data.multiLineData.add(v==null ? "No return value 
(null)" : "Result: "+abbreviate(v, 512, true));
 
                         } catch (Exception e) {
                             data.appendToSummary(", but error accessing 
result"); //shouldn't happen
@@ -683,11 +683,15 @@ public class BasicTask<T> implements TaskInternal<T> {
     }
 
     private static String abbreviate(String s0) {
-        boolean isMultiline = Strings.isMultiLine(s0);
-        String s = Strings.getFirstLine(s0);
-        if (Strings.isBlank(s) && isMultiline) s = 
Strings.getFirstLine(s0.trim());
-        if (s.length()>255) s = s.substring(0, 252)+ "...";
-        else if (isMultiline) s = s+" ...";
+        return abbreviate(s0, 255, false);
+    }
+
+    private static String abbreviate(String s0, int length, boolean 
allowMultiLine) {
+        boolean isMultilineToShrink = !allowMultiLine && 
Strings.isMultiLine(s0);
+        String s = allowMultiLine ? s0 : Strings.getFirstLine(s0);
+        if (Strings.isBlank(s) && isMultilineToShrink) s = 
Strings.getFirstLine(s0.trim());
+        if (s.length()>length) s = s.substring(0, length-3)+ "...";
+        else if (isMultilineToShrink) s = s+" ...";
         return s;
     }
 

Reply via email to