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]>.

Reply via email to