This is an automated email from the ASF dual-hosted git repository. dkulp pushed a commit to branch 3.1.x-fixes in repository https://gitbox.apache.org/repos/asf/cxf.git
commit 0d3c73188b955ac4ec899fb4ed1d588abbfd0157 Author: Andy McCright <[email protected]> AuthorDate: Wed Nov 29 13:25:16 2017 -0600 Wrap Integer.getInteger in a doPriv block (cherry picked from commit 9130f84fafca18620888aecfe1d0d8a0cbce1fc2) # Conflicts: # rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProvider.java # rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/URITemplate.java --- .../apache/cxf/common/util/SystemPropertyAction.java | 19 +++++++++++++++++++ .../cxf/jaxrs/impl/MediaTypeHeaderProvider.java | 5 +++-- .../java/org/apache/cxf/jaxrs/model/URITemplate.java | 5 +++-- .../org/apache/cxf/jaxrs/provider/ProviderCache.java | 3 ++- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/apache/cxf/common/util/SystemPropertyAction.java b/core/src/main/java/org/apache/cxf/common/util/SystemPropertyAction.java index c2b6cb0..e3193fe 100644 --- a/core/src/main/java/org/apache/cxf/common/util/SystemPropertyAction.java +++ b/core/src/main/java/org/apache/cxf/common/util/SystemPropertyAction.java @@ -78,4 +78,23 @@ public final class SystemPropertyAction implements PrivilegedAction<String> { return null; } } + + /** + * Get the integer system property via the AccessController, but if a SecurityException is + * raised, just return the default; + * @param name - system property name + * @param def - the default value if the system property does not exist or cannot be acquired + */ + public static int getInteger(String name, int def) { + try { + return AccessController.doPrivileged(new PrivilegedAction<Integer>() { + @Override + public Integer run() { + return Integer.getInteger(name, def); + } }); + } catch (SecurityException ex) { + LOG.log(Level.FINE, "SecurityException raised getting property " + name, ex); + return def; + } + } } diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProvider.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProvider.java index 5d297b6..060b8ec 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProvider.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProvider.java @@ -35,6 +35,7 @@ import javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate; import org.apache.cxf.common.logging.LogUtils; import org.apache.cxf.common.util.StringUtils; +import org.apache.cxf.common.util.SystemPropertyAction; import org.apache.cxf.message.Message; import org.apache.cxf.message.MessageUtils; import org.apache.cxf.phase.PhaseInterceptorChain; @@ -47,8 +48,8 @@ public class MediaTypeHeaderProvider implements HeaderDelegate<MediaType> { Pattern.compile("(([\\w-]+=\"[^\"]*\")|([\\w-]+=[\\w-/\\+]+))"); private static Map<String, MediaType> map = new ConcurrentHashMap<String, MediaType>(); - private static final int MAX_MT_CACHE_SIZE = - Integer.getInteger("org.apache.cxf.jaxrs.max_mediatype_cache_size", 200); + private static final int MAX_MT_CACHE_SIZE = + SystemPropertyAction.getInteger("org.apache.cxf.jaxrs.max_mediatype_cache_size", 200); public MediaType fromString(String mType) { diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/URITemplate.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/URITemplate.java index 1db14bd..e64e7c3 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/URITemplate.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/URITemplate.java @@ -33,6 +33,7 @@ import javax.ws.rs.Path; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.PathSegment; +import org.apache.cxf.common.util.SystemPropertyAction; import org.apache.cxf.jaxrs.utils.HttpUtils; import org.apache.cxf.jaxrs.utils.JAXRSUtils; @@ -46,8 +47,8 @@ public final class URITemplate { private static final String SLASH = "/"; private static final String SLASH_QUOTE = "/;"; private static final int MAX_URI_TEMPLATE_CACHE_SIZE = - Integer.getInteger("org.apache.cxf.jaxrs.max_uri_template_cache_size", 2000); - private static final Map<String, URITemplate> URI_TEMPLATE_CACHE = new ConcurrentHashMap<String, URITemplate>(); + SystemPropertyAction.getInteger("org.apache.cxf.jaxrs.max_uri_template_cache_size", 2000); + private static final Map<String, URITemplate> URI_TEMPLATE_CACHE = new ConcurrentHashMap<>(); private final String template; private final List<String> variables = new ArrayList<String>(); diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderCache.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderCache.java index bc3c550..ade4f72 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderCache.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderCache.java @@ -30,6 +30,7 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.ext.MessageBodyReader; import javax.ws.rs.ext.MessageBodyWriter; +import org.apache.cxf.common.util.SystemPropertyAction; import org.apache.cxf.jaxrs.model.ProviderInfo; public class ProviderCache { @@ -37,7 +38,7 @@ public class ProviderCache { AccessController.doPrivileged(new PrivilegedAction<Integer>() { @Override public Integer run() { - return Integer.getInteger("org.apache.cxf.jaxrs.max_provider_cache_size", 100); + return SystemPropertyAction.getInteger("org.apache.cxf.jaxrs.max_provider_cache_size", 100); } }).intValue(); private final Map<String, List<ProviderInfo<MessageBodyReader<?>>>> -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
