TOMEE-1790 allow primitive arrays
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/b5565845 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/b5565845 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/b5565845 Branch: refs/heads/tomee-1.7.x Commit: b5565845960c518c9e53306f16cb6736c267677e Parents: eb2933f Author: Jonathan Gallimore <[email protected]> Authored: Fri Apr 29 14:11:11 2016 +0100 Committer: Jonathan Gallimore <[email protected]> Committed: Fri Apr 29 14:11:11 2016 +0100 ---------------------------------------------------------------------- .../apache/openejb/core/rmi/BlacklistClassResolver.java | 10 ++++++++++ 1 file changed, 10 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/b5565845/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java b/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java index 134db76..0b726d7 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java @@ -17,6 +17,7 @@ package org.apache.openejb.core.rmi; import java.io.ObjectStreamClass; +import java.util.regex.Pattern; public class BlacklistClassResolver { public static final BlacklistClassResolver DEFAULT = new BlacklistClassResolver( @@ -25,6 +26,9 @@ public class BlacklistClassResolver { "org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan,java.lang.Process")), toArray(System.getProperty("tomee.serialization.class.whitelist"))); + + public static final Pattern PRIMITIVE_ARRAY = Pattern.compile("^\\[+[BCDFIJSVZ]$"); + private final String[] blacklist; private final String[] whitelist; @@ -34,6 +38,12 @@ public class BlacklistClassResolver { } protected boolean isBlacklisted(final String name) { + + // allow primitive arrays + if (PRIMITIVE_ARRAY.matcher(name).matches()) { + return false; + } + if (name != null && name.startsWith("[L") && name.endsWith(";")) { return isBlacklisted(name.substring(2, name.length() - 1)); }
