diff --git a/src/main/java/org/mockito/internal/configuration/ClassPathLoader.java b/src/main/java/org/mockito/internal/configuration/ClassPathLoader.java index 8fc47b425f..0f031ee58a 100644 --- a/src/main/java/org/mockito/internal/configuration/ClassPathLoader.java +++ b/src/main/java/org/mockito/internal/configuration/ClassPathLoader.java @@ -64,7 +64,7 @@ public IMockitoConfiguration loadConfiguration() { } try { - return (IMockitoConfiguration) configClass.newInstance(); + return (IMockitoConfiguration) configClass.getDeclaredConstructor().newInstance(); } catch (ClassCastException e) { throw new MockitoConfigurationException( "MockitoConfiguration class must implement " diff --git a/src/main/java/org/mockito/internal/configuration/plugins/DefaultMockitoPlugins.java b/src/main/java/org/mockito/internal/configuration/plugins/DefaultMockitoPlugins.java index f3192cba5a..38b882a322 100644 --- a/src/main/java/org/mockito/internal/configuration/plugins/DefaultMockitoPlugins.java +++ b/src/main/java/org/mockito/internal/configuration/plugins/DefaultMockitoPlugins.java @@ -79,7 +79,7 @@ private T create(Class pluginType, String className) { // Default implementation. Use our own ClassLoader instead of the context // ClassLoader, as the default implementation is assumed to be part of // Mockito and may not be available via the context ClassLoader. - return pluginType.cast(Class.forName(className).newInstance()); + return pluginType.cast(Class.forName(className).getDeclaredConstructor().newInstance()); } catch (Exception e) { throw new IllegalStateException( "Internal problem occurred, please report it. " diff --git a/src/main/java/org/mockito/internal/configuration/plugins/PluginInitializer.java b/src/main/java/org/mockito/internal/configuration/plugins/PluginInitializer.java index d58ca2cdf3..8f8f76edcb 100644 --- a/src/main/java/org/mockito/internal/configuration/plugins/PluginInitializer.java +++ b/src/main/java/org/mockito/internal/configuration/plugins/PluginInitializer.java @@ -47,7 +47,7 @@ public T loadImpl(Class service) { classOrAlias = plugins.getDefaultPluginClass(alias); } Class pluginClass = loader.loadClass(classOrAlias); - Object plugin = pluginClass.newInstance(); + Object plugin = pluginClass.getDeclaredConstructor().newInstance(); return service.cast(plugin); } return null; diff --git a/src/main/java/org/mockito/internal/creation/bytebuddy/InlineByteBuddyMockMaker.java b/src/main/java/org/mockito/internal/creation/bytebuddy/InlineByteBuddyMockMaker.java index a046972dc0..0a20882b2c 100644 --- a/src/main/java/org/mockito/internal/creation/bytebuddy/InlineByteBuddyMockMaker.java +++ b/src/main/java/org/mockito/internal/creation/bytebuddy/InlineByteBuddyMockMaker.java @@ -35,6 +35,7 @@ import org.mockito.invocation.MockHandler; import org.mockito.mock.MockCreationSettings; import org.mockito.plugins.InlineMockMaker; +import org.mockito.plugins.MemberAccessor; import static org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.*; import static org.mockito.internal.util.StringUtil.*; @@ -569,14 +570,11 @@ public T newInstance(Class cls) throws InstantiationException { for (Class type : types) { arguments[index++] = makeStandardArgument(type); } + MemberAccessor accessor = Plugins.getMemberAccessor(); try { - if (!Modifier.isPublic(selected.getModifiers()) - || !Modifier.isPublic(cls.getModifiers())) { - selected.setAccessible(true); - } mockitoConstruction.set(true); try { - return (T) selected.newInstance(arguments); + return (T) accessor.newInstance(selected, arguments); } finally { mockitoConstruction.set(false); } diff --git a/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodAdvice.java b/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodAdvice.java index 3b1490775b..69a7ed21a6 100644 --- a/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodAdvice.java +++ b/src/main/java/org/mockito/internal/creation/bytebuddy/MockMethodAdvice.java @@ -12,7 +12,6 @@ import java.lang.ref.SoftReference; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.lang.reflect.Modifier; import java.util.List; import java.util.Map; import java.util.concurrent.Callable; diff --git a/src/test/java/org/mockito/internal/creation/bytebuddy/AbstractByteBuddyMockMakerTest.java b/src/test/java/org/mockito/internal/creation/bytebuddy/AbstractByteBuddyMockMakerTest.java index f5b807a1ce..3ddc1817ba 100644 --- a/src/test/java/org/mockito/internal/creation/bytebuddy/AbstractByteBuddyMockMakerTest.java +++ b/src/test/java/org/mockito/internal/creation/bytebuddy/AbstractByteBuddyMockMakerTest.java @@ -165,7 +165,7 @@ public void instantiate_fine_when_objenesis_on_the_classpath() throws Exception classpath_with_objenesis); // when - mock_maker_class_loaded_fine_until.newInstance(); + mock_maker_class_loaded_fine_until.getConstructor().newInstance(); // then everything went fine } diff --git a/src/test/java/org/mockito/internal/util/reflection/LenientCopyToolTest.java b/src/test/java/org/mockito/internal/util/reflection/LenientCopyToolTest.java index b8c742aff7..eb3474f59b 100644 --- a/src/test/java/org/mockito/internal/util/reflection/LenientCopyToolTest.java +++ b/src/test/java/org/mockito/internal/util/reflection/LenientCopyToolTest.java @@ -128,20 +128,6 @@ public void shouldCopyValuesOfInheritedFields() throws Exception { assertEquals(((InheritMe) from).privateInherited, ((InheritMe) to).privateInherited); } - @Test - public void shouldEnableAndThenDisableAccessibility() throws Exception { - // given - Field privateField = SomeObject.class.getDeclaredField("privateField"); - assertFalse(privateField.isAccessible()); - - // when - tool.copyToMock(from, to); - - // then - privateField = SomeObject.class.getDeclaredField("privateField"); - assertFalse(privateField.isAccessible()); - } - @Test public void shouldContinueEvenIfThereAreProblemsCopyingSingleFieldValue() throws Exception { // given diff --git a/src/test/java/org/mockitousage/spies/SpyingOnInterfacesTest.java b/src/test/java/org/mockitousage/spies/SpyingOnInterfacesTest.java index ec8d5933d2..b6fe514cde 100644 --- a/src/test/java/org/mockitousage/spies/SpyingOnInterfacesTest.java +++ b/src/test/java/org/mockitousage/spies/SpyingOnInterfacesTest.java @@ -106,7 +106,7 @@ public void shouldAllowSpyingOnDefaultMethod() throws Exception { .load(iFace.getClassLoader(), ClassLoadingStrategy.Default.WRAPPER) .getLoaded(); - Object object = spy(impl.newInstance()); + Object object = spy(impl.getConstructor().newInstance()); // when Assertions.assertThat(impl.getMethod("foo").invoke(object)).isEqualTo((Object) "bar");