WW-5086 Fixes s:set tag to persists empty body
diff --git a/core/src/main/java/org/apache/struts2/components/Set.java b/core/src/main/java/org/apache/struts2/components/Set.java
index fb2a366..ff1a27c 100644
--- a/core/src/main/java/org/apache/struts2/components/Set.java
+++ b/core/src/main/java/org/apache/struts2/components/Set.java
@@ -93,7 +93,11 @@
 
         Object o;
         if (value == null) {
-            o = body;
+            if (body == null) {
+                o = findValue("top");
+            } else {
+                o = body;
+            }
         } else {
             o = findValue(value);
         }
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/SetTag.java b/core/src/main/java/org/apache/struts2/views/jsp/SetTag.java
index a1b04e5..5817203 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/SetTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/SetTag.java
@@ -68,9 +68,13 @@
     @Override
     protected String getBody() {
         if (trimBody) {
-            return super.getBody();
+            if (bodyContent == null) {
+                return null;
+            } else {
+                return bodyContent.getString().trim();
+            }
         } else {
-            return (bodyContent == null ? "" : bodyContent.getString());
+            return (bodyContent == null ? null : bodyContent.getString());
         }
     }
 }