From c103aa77337967d70b3b999334abcfe2d0d7ab6e Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Thu, 27 Aug 2009 10:45:46 +0000 Subject: [PATCH] adapted to changes in non-lenient mode git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@1779 50f2f4bb-b051-0410-bef5-90022cba6387 --- .../factory/support/ConstructorResolver.java | 16 ++++------ .../factory/xml/XmlBeanFactoryTests.java | 30 ------------------- 2 files changed, 5 insertions(+), 41 deletions(-) diff --git a/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java b/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java index d390803b15f..652202ba9c3 100644 --- a/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java +++ b/org.springframework.beans/src/main/java/org/springframework/beans/factory/support/ConstructorResolver.java @@ -259,14 +259,12 @@ class ConstructorResolver { } try { - Object beanInstance = null; - + Object beanInstance; + if (System.getSecurityManager() != null) { final Constructor ctorToUse = constructorToUse; final Object[] argumentsToUse = argsToUse; - beanInstance = AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { return beanFactory.getInstantiationStrategy().instantiate( mbd, beanName, beanFactory, ctorToUse, argumentsToUse); @@ -389,7 +387,6 @@ class ConstructorResolver { final Class factoryClazz = factoryClass; if (System.getSecurityManager() != null) { - rawCandidates = AccessController.doPrivileged(new PrivilegedAction() { public Method[] run() { return (mbd.isNonPublicAccessAllowed() ? @@ -416,7 +413,7 @@ class ConstructorResolver { ConstructorArgumentValues resolvedValues = null; boolean autowiring = (mbd.getResolvedAutowireMode() == RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); int minTypeDiffWeight = Integer.MAX_VALUE; - Set ambiguousFactoryMethods = null; + Set ambiguousFactoryMethods = null; int minNrOfArgs; if (explicitArgs != null) { @@ -526,16 +523,13 @@ class ConstructorResolver { } try { - - Object beanInstance = null; - + Object beanInstance; + if (System.getSecurityManager() != null) { final Object fb = factoryBean; final Method factoryMethod = factoryMethodToUse; final Object[] args = argsToUse; - beanInstance = AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { return beanFactory.getInstantiationStrategy().instantiate( mbd, beanName, beanFactory, fb, factoryMethod, args); diff --git a/org.springframework.context/src/test/java/org/springframework/beans/factory/xml/XmlBeanFactoryTests.java b/org.springframework.context/src/test/java/org/springframework/beans/factory/xml/XmlBeanFactoryTests.java index 2dcb6ee6e12..7081db7cbda 100644 --- a/org.springframework.context/src/test/java/org/springframework/beans/factory/xml/XmlBeanFactoryTests.java +++ b/org.springframework.context/src/test/java/org/springframework/beans/factory/xml/XmlBeanFactoryTests.java @@ -1365,36 +1365,6 @@ public final class XmlBeanFactoryTests { assertEquals(Boolean.TRUE, bean.boolean2); } - public @Test void testDoubleBooleanNoType() { - XmlBeanFactory xbf = new XmlBeanFactory(CONSTRUCTOR_ARG_CONTEXT); - AbstractBeanDefinition bd = (AbstractBeanDefinition) xbf.getBeanDefinition("beanWithDoubleBooleanNoType"); - bd.setLenientConstructorResolution(false); - try { - xbf.getBean("beanWithDoubleBooleanNoType"); - fail("Should have thrown BeanCreationException"); - } - catch (BeanCreationException ex) { - // expected - ex.printStackTrace(); - assertTrue(ex.getMostSpecificCause().getMessage().contains("Ambiguous")); - } - } - - public @Test void testDoubleBooleanNoTypeFactoryMethod() { - XmlBeanFactory xbf = new XmlBeanFactory(CONSTRUCTOR_ARG_CONTEXT); - AbstractBeanDefinition bd = (AbstractBeanDefinition) xbf.getBeanDefinition("beanWithDoubleBooleanNoTypeFactoryMethod"); - bd.setLenientConstructorResolution(false); - try { - xbf.getBean("beanWithDoubleBooleanNoTypeFactoryMethod"); - fail("Should have thrown BeanCreationException"); - } - catch (BeanCreationException ex) { - // expected - ex.printStackTrace(); - assertTrue(ex.getMostSpecificCause().getMessage().contains("Ambiguous")); - } - } - public @Test void testLenientDependencyMatching() { XmlBeanFactory xbf = new XmlBeanFactory(CONSTRUCTOR_ARG_CONTEXT); LenientDependencyTestBean bean = (LenientDependencyTestBean) xbf.getBean("lenientDependencyTestBean");