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

lukaszlenart pushed a commit to branch WW-2815-xstream
in repository https://gitbox.apache.org/repos/asf/struts.git

commit a562f8f8065223e71777b1931a736c9ac980e913
Author: Lukasz Lenart <lukaszlen...@apache.org>
AuthorDate: Mon Oct 17 09:52:07 2022 +0200

    WW-2815 Fixes support for Collections and String
---
 .../java/org/apache/struts2/rest/handler/XStreamHandler.java     | 4 ++--
 .../java/org/apache/struts2/rest/handler/XStreamHandlerTest.java | 9 +++------
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git 
a/plugins/rest/src/main/java/org/apache/struts2/rest/handler/XStreamHandler.java
 
b/plugins/rest/src/main/java/org/apache/struts2/rest/handler/XStreamHandler.java
index 70ea810eb..5958ff5c9 100644
--- 
a/plugins/rest/src/main/java/org/apache/struts2/rest/handler/XStreamHandler.java
+++ 
b/plugins/rest/src/main/java/org/apache/struts2/rest/handler/XStreamHandler.java
@@ -107,6 +107,7 @@ public class XStreamHandler extends 
AbstractContentTypeHandler {
             stream.addPermission(new ExplicitTypePermission(new 
Class[]{((ModelDriven<?>) invocation.getAction()).getModel().getClass()}));
         }
         stream.addPermission(NullPermission.NULL);
+        stream.addPermission(new ExplicitTypePermission(new 
Class[]{String.class}));
         stream.addPermission(PrimitiveTypePermission.PRIMITIVES);
         stream.addPermission(ArrayTypePermission.ARRAYS);
         stream.addPermission(CollectionTypePermission.COLLECTIONS);
@@ -126,8 +127,7 @@ public class XStreamHandler extends 
AbstractContentTypeHandler {
 
         @Override
         public boolean allows(Class type) {
-            return type != null && type.isInterface() &&
-                (Collection.class.isAssignableFrom(type) || 
Map.class.isAssignableFrom(type));
+            return type != null && (Collection.class.isAssignableFrom(type) || 
Map.class.isAssignableFrom(type));
         }
 
     }
diff --git 
a/plugins/rest/src/test/java/org/apache/struts2/rest/handler/XStreamHandlerTest.java
 
b/plugins/rest/src/test/java/org/apache/struts2/rest/handler/XStreamHandlerTest.java
index 3510634ed..732643bdc 100644
--- 
a/plugins/rest/src/test/java/org/apache/struts2/rest/handler/XStreamHandlerTest.java
+++ 
b/plugins/rest/src/test/java/org/apache/struts2/rest/handler/XStreamHandlerTest.java
@@ -38,6 +38,7 @@ import java.io.Writer;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Locale;
@@ -135,16 +136,12 @@ public class XStreamHandlerTest extends XWorkTestCase {
 
         @Override
         public Set<String> allowedClassNames() {
-            HashSet<String> strings = new HashSet<>();
-            strings.add(ArrayList.class.getName());
-            return strings;
+            return Collections.emptySet();
         }
 
         @Override
         public Collection<TypePermission> getTypePermissions() {
-            ArrayList<TypePermission> permissions = new ArrayList<>();
-            permissions.add(new ExplicitTypePermission(new 
Class[]{String.class}));
-            return permissions;
+            return Collections.emptyList();
         }
     }
 

Reply via email to