Author: ito
Date: Wed Dec 22 13:37:52 2010
New Revision: 1051892

URL: http://svn.apache.org/viewvc?rev=1051892&view=rev
Log:
CLEREZZA-371: retrieve webrendering functions is in doPrivileged block

Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java?rev=1051892&r1=1051891&r2=1051892&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java
 Wed Dec 22 13:37:52 2010
@@ -22,6 +22,8 @@ import java.io.IOException;
 import java.io.OutputStream;
 
 import java.net.URI;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.Map;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
@@ -69,22 +71,29 @@ public interface Renderlet {
                 * @param type
                 * @return a intsance of the requested rendering services
                 */
-               public <T> T getRenderingService(Class<T> type) {
-                       ServiceReference serviceReference = 
bundleContext.getServiceReference(type.getName());
-                       if (serviceReference != null) {
-                               T resultCandidate = (T) 
bundleContext.getService(serviceReference);
-                               if 
(resultCandidate.getClass().getAnnotation(WebRenderingService.class) != null) {
-                                       return resultCandidate;
-                               } else {
-                                       return null;
-                               }
-                       } else {
-                               return null;
-                       }
+               public <T> T getRenderingService(final Class<T> type) {
+                       return AccessController.doPrivileged(
+                               new PrivilegedAction<T>() {                     
        
+
+                                       @Override
+                                       public T run() {
+                                                       ServiceReference 
serviceReference = bundleContext.getServiceReference(type.getName());
+                                                       if (serviceReference != 
null) {
+                                                               T 
resultCandidate = (T) bundleContext.getService(serviceReference);
+                                                               if 
(resultCandidate.getClass().getAnnotation(WebRenderingService.class) != null) {
+                                                                       return 
resultCandidate;
+                                                               } else {
+                                                                       return 
null;
+                                                               }
+                                                       } else {
+                                                               return null;
+                                                       }
+                                               }
+                                       });
                }
-
        }
        
+       
        /**
         * Renders the data from <code>res</code> with a appropriate rendering
         * engine.


Reply via email to