You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@onami.apache.org by as...@apache.org on 2014/07/13 07:35:28 UTC

svn commit: r1610114 - in /onami/trunk: lifecycle/core/src/main/java/org/apache/onami/lifecycle/core/ logging/core/src/main/java/org/apache/onami/logging/core/ test/src/main/java/org/apache/onami/test/ test/src/main/java/org/apache/onami/test/mock/guice/

Author: ash2k
Date: Sun Jul 13 05:35:27 2014
New Revision: 1610114

URL: http://svn.apache.org/r1610114
Log:
ONAMI-112 call setAccessible() inside doPrivileged()

Modified:
    onami/trunk/lifecycle/core/src/main/java/org/apache/onami/lifecycle/core/StageableMethod.java
    onami/trunk/logging/core/src/main/java/org/apache/onami/logging/core/AbstractLoggerInjector.java
    onami/trunk/test/src/main/java/org/apache/onami/test/OnamiRunner.java
    onami/trunk/test/src/main/java/org/apache/onami/test/OnamiSuite.java
    onami/trunk/test/src/main/java/org/apache/onami/test/mock/guice/MockMembersInjector.java

Modified: onami/trunk/lifecycle/core/src/main/java/org/apache/onami/lifecycle/core/StageableMethod.java
URL: http://svn.apache.org/viewvc/onami/trunk/lifecycle/core/src/main/java/org/apache/onami/lifecycle/core/StageableMethod.java?rev=1610114&r1=1610113&r2=1610114&view=diff
==============================================================================
--- onami/trunk/lifecycle/core/src/main/java/org/apache/onami/lifecycle/core/StageableMethod.java (original)
+++ onami/trunk/lifecycle/core/src/main/java/org/apache/onami/lifecycle/core/StageableMethod.java Sun Jul 13 05:35:27 2014
@@ -21,6 +21,8 @@ package org.apache.onami.lifecycle.core;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 
 /**
  * A {@link StageableMethod} is a reference to a stageable injectee
@@ -55,10 +57,17 @@ final class StageableMethod
     {
         try
         {
-            if ( !stageMethod.isAccessible() )
+            AccessController.doPrivileged( new PrivilegedAction<Void>()
             {
-                stageMethod.setAccessible( true );
-            }
+
+                @Override
+                public Void run()
+                {
+                    stageMethod.setAccessible( true );
+                    return null;
+                }
+
+            } );
             stageMethod.invoke( object );
         }
         catch ( InvocationTargetException e )

Modified: onami/trunk/logging/core/src/main/java/org/apache/onami/logging/core/AbstractLoggerInjector.java
URL: http://svn.apache.org/viewvc/onami/trunk/logging/core/src/main/java/org/apache/onami/logging/core/AbstractLoggerInjector.java?rev=1610114&r1=1610113&r2=1610114&view=diff
==============================================================================
--- onami/trunk/logging/core/src/main/java/org/apache/onami/logging/core/AbstractLoggerInjector.java (original)
+++ onami/trunk/logging/core/src/main/java/org/apache/onami/logging/core/AbstractLoggerInjector.java Sun Jul 13 05:35:27 2014
@@ -23,6 +23,8 @@ import static java.lang.String.format;
 import static java.lang.reflect.Modifier.isFinal;
 
 import java.lang.reflect.Field;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 
 import com.google.inject.MembersInjector;
 import com.google.inject.ProvisionException;
@@ -45,10 +47,19 @@ public abstract class AbstractLoggerInje
      *
      * @param field the logger field has to be injected.
      */
-    public AbstractLoggerInjector( Field field )
+    public AbstractLoggerInjector( final Field field )
     {
         this.field = field;
-        this.field.setAccessible(true);
+        AccessController.doPrivileged( new PrivilegedAction<Void>()
+        {
+
+            public Void run()
+            {
+                field.setAccessible( true );
+                return null;
+            }
+
+        } );
     }
 
     /**

Modified: onami/trunk/test/src/main/java/org/apache/onami/test/OnamiRunner.java
URL: http://svn.apache.org/viewvc/onami/trunk/test/src/main/java/org/apache/onami/test/OnamiRunner.java?rev=1610114&r1=1610113&r2=1610114&view=diff
==============================================================================
--- onami/trunk/test/src/main/java/org/apache/onami/test/OnamiRunner.java (original)
+++ onami/trunk/test/src/main/java/org/apache/onami/test/OnamiRunner.java Sun Jul 13 05:35:27 2014
@@ -21,6 +21,8 @@ package org.apache.onami.test;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedList;
@@ -456,7 +458,16 @@ public class OnamiRunner
                             LOGGER.finer( "   inject static mock field: " + field.getName() );
                         }
 
-                        field.setAccessible( true );
+                        AccessController.doPrivileged( new PrivilegedAction<Void>()
+                        {
+
+                            public Void run()
+                            {
+                                field.setAccessible( true );
+                                return null;
+                            }
+
+                        } );
                         field.set( field.getDeclaringClass(), mock );
                     }
                 }

Modified: onami/trunk/test/src/main/java/org/apache/onami/test/OnamiSuite.java
URL: http://svn.apache.org/viewvc/onami/trunk/test/src/main/java/org/apache/onami/test/OnamiSuite.java?rev=1610114&r1=1610113&r2=1610114&view=diff
==============================================================================
--- onami/trunk/test/src/main/java/org/apache/onami/test/OnamiSuite.java (original)
+++ onami/trunk/test/src/main/java/org/apache/onami/test/OnamiSuite.java Sun Jul 13 05:35:27 2014
@@ -21,6 +21,8 @@ package org.apache.onami.test;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedList;
@@ -414,7 +416,16 @@ public class OnamiSuite
                             LOGGER.finer( "   inject static mock field: " + field.getName() );
                         }
 
-                        field.setAccessible( true );
+                        AccessController.doPrivileged( new PrivilegedAction<Void>()
+                        {
+
+                            public Void run()
+                            {
+                                field.setAccessible( true );
+                                return null;
+                            }
+
+                        } );
                         field.set( field.getDeclaringClass(), mock );
                     }
                 }

Modified: onami/trunk/test/src/main/java/org/apache/onami/test/mock/guice/MockMembersInjector.java
URL: http://svn.apache.org/viewvc/onami/trunk/test/src/main/java/org/apache/onami/test/mock/guice/MockMembersInjector.java?rev=1610114&r1=1610113&r2=1610114&view=diff
==============================================================================
--- onami/trunk/test/src/main/java/org/apache/onami/test/mock/guice/MockMembersInjector.java (original)
+++ onami/trunk/test/src/main/java/org/apache/onami/test/mock/guice/MockMembersInjector.java Sun Jul 13 05:35:27 2014
@@ -20,6 +20,8 @@ package org.apache.onami.test.mock.guice
  */
 
 import java.lang.reflect.Field;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.Map;
 
 import com.google.inject.MembersInjector;
@@ -43,10 +45,20 @@ public class MockMembersInjector<T>
      * @param field the field that has to be injected.
      * @param mockedObjects  the map of mocked object.
      */
-    public MockMembersInjector( Field field, Map<Field, Object> mockedObjects )
+    public MockMembersInjector( final Field field, Map<Field, Object> mockedObjects )
     {
         this.field = field;
         this.mockedObjects = mockedObjects;
+        AccessController.doPrivileged( new PrivilegedAction<Void>()
+        {
+
+            public Void run()
+            {
+                field.setAccessible( true );
+                return null;
+            }
+
+        } );
     }
 
     /**
@@ -54,9 +66,6 @@ public class MockMembersInjector<T>
      */
     public void injectMembers( T t )
     {
-        boolean wasAccessible = field.isAccessible();
-        field.setAccessible( true );
-
         try
         {
             field.set( t, mockedObjects.get( field ) );
@@ -65,10 +74,6 @@ public class MockMembersInjector<T>
         {
             throw new RuntimeException( e );
         }
-        finally
-        {
-            field.setAccessible( wasAccessible );
-        }
     }
 
 }