Community
Participate
Working Groups
I'm currently testing the Spring @Configurable feature and LTW. Everything worked/works fine with the Spring 2.0rc2 distribution. This morning I then tried to use Spring rc2 togehter with AspectJ 1.5.2 and had problems. Then I upgraded Spring to the latest 2.0rc3 distribution and I'm getting the same problems. With Spring 2.0rc3 I get the following stack trace: info AspectJ Weaver Version 1.5.2 built on Friday Jun 30, 2006 at 09:30:27 GMT info register classloader sun.misc.Launcher$AppClassLoader@10469011 info using configuration /C:/workspace/trivadis-subversion/SpringBook/trunk/java/eurojourney-snippets/target/classes/META-INF/aop.xml info using configuration file:/C:/java/spring-framework-2.0-rc3/dist/spring-aspects.jar!/META-INF/aop.xml info register aspect org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect info register aspect org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect info register aspect org.springframework.transaction.aspectj.AnnotationTransactionAspect info not weaving 'org/eclipse/jdt/internal/junit/runner/RemoteTestRunner' info not weaving 'org/eclipse/jdt/internal/junit/runner/MessageSender' info not weaving 'org/eclipse/jdt/internal/junit/runner/IVisitsTestTrees' info not weaving 'org/eclipse/jdt/internal/junit/runner/IListensToTestExecutions' info not weaving 'org/eclipse/jdt/internal/junit/runner/IClassifiesThrowables' info not weaving 'org/eclipse/jdt/internal/junit/runner/TestIdMap' info not weaving 'org/eclipse/jdt/internal/junit/runner/junit3/JUnit3TestLoader' info not weaving 'org/eclipse/jdt/internal/junit/runner/ITestLoader' info not weaving 'junit/framework/Test' info not weaving 'org/eclipse/jdt/internal/junit/runner/FailuresFirstPrioritizer' info not weaving 'org/eclipse/jdt/internal/junit/runner/ITestPrioritizer' info not weaving 'org/eclipse/jdt/internal/junit/runner/NullPrioritizer' info not weaving 'org/eclipse/jdt/internal/junit/runner/RemoteTestRunner$ReaderThread' info not weaving 'org/eclipse/jdt/internal/junit/runner/FirstRunExecutionListener' info not weaving 'org/eclipse/jdt/internal/junit/runner/TestExecution' info not weaving 'org/eclipse/jdt/internal/junit/runner/DefaultClassifier' info not weaving 'com/trivadis/aop/configurable/ConfigurableTest' info not weaving 'org/springframework/test/AbstractDependencyInjectionSpringContextTests' info not weaving 'org/springframework/test/AbstractSpringContextTests' info not weaving 'org/springframework/test/ConditionalTestCase' info not weaving 'junit/framework/TestCase' info not weaving 'junit/framework/Assert' info not weaving 'org/eclipse/jdt/internal/junit/runner/ITestReference' info not weaving 'junit/framework/ComparisonFailure' info not weaving 'junit/framework/AssertionFailedError' info not weaving 'org/springframework/context/ConfigurableApplicationContext' info not weaving 'org/springframework/context/ApplicationContext' info not weaving 'org/springframework/beans/factory/ListableBeanFactory' info not weaving 'org/springframework/beans/factory/BeanFactory' info not weaving 'org/springframework/beans/factory/HierarchicalBeanFactory' info not weaving 'org/springframework/context/MessageSource' info not weaving 'org/springframework/context/ApplicationEventPublisher' info not weaving 'org/springframework/core/io/support/ResourcePatternResolver' info not weaving 'org/springframework/core/io/ResourceLoader' info not weaving 'org/springframework/context/Lifecycle' info not weaving 'org/springframework/beans/factory/NoSuchBeanDefinitionException' info not weaving 'org/springframework/beans/BeansException' info not weaving 'org/springframework/core/NestedRuntimeException' info not weaving 'junit/framework/TestResult' info not weaving 'junit/framework/TestSuite' info not weaving 'org/apache/commons/logging/LogFactory' info not weaving 'org/apache/commons/logging/LogConfigurationException' info not weaving 'org/apache/commons/logging/impl/WeakHashtable' info not weaving 'org/apache/commons/logging/LogFactory$1' info not weaving 'org/apache/commons/logging/impl/WeakHashtable$Referenced' info not weaving 'org/apache/commons/logging/impl/WeakHashtable$WeakKey' info not weaving 'org/apache/commons/logging/LogFactory$4' info not weaving 'org/apache/commons/logging/LogFactory$3' info not weaving 'org/apache/commons/logging/LogFactory$2' info not weaving 'org/apache/commons/logging/impl/LogFactoryImpl' info not weaving 'org/apache/commons/logging/impl/Log4JLogger' info not weaving 'org/apache/commons/logging/Log' info not weaving 'org/apache/log4j/Category' info not weaving 'org/apache/log4j/spi/AppenderAttachable' info not weaving 'org/apache/log4j/Logger' info not weaving 'org/apache/log4j/Priority' info not weaving 'org/apache/log4j/Level' info not weaving 'org/apache/log4j/LogManager' info not weaving 'org/apache/log4j/spi/RootLogger' info not weaving 'org/apache/log4j/spi/LoggerRepository' info not weaving 'org/apache/log4j/spi/RepositorySelector' info not weaving 'org/apache/log4j/Hierarchy' info not weaving 'org/apache/log4j/spi/RendererSupport' info not weaving 'org/apache/log4j/ProvisionNode' info not weaving 'org/apache/log4j/spi/LoggerFactory' info not weaving 'org/apache/log4j/or/RendererMap' info not weaving 'org/apache/log4j/or/ObjectRenderer' info not weaving 'org/apache/log4j/or/DefaultRenderer' info not weaving 'org/apache/log4j/DefaultCategoryFactory' info not weaving 'org/apache/log4j/spi/DefaultRepositorySelector' info not weaving 'org/apache/log4j/helpers/OptionConverter' info not weaving 'org/apache/log4j/spi/Configurator' info not weaving 'org/apache/log4j/helpers/Loader' info not weaving 'org/apache/log4j/helpers/LogLog' info not weaving 'org/apache/log4j/PropertyConfigurator' info not weaving 'org/apache/log4j/helpers/FileWatchdog' info not weaving 'org/apache/log4j/PropertyWatchdog' info not weaving 'org/apache/log4j/Appender' info not weaving 'org/apache/log4j/ConsoleAppender' info not weaving 'org/apache/log4j/WriterAppender' info not weaving 'org/apache/log4j/AppenderSkeleton' info not weaving 'org/apache/log4j/spi/OptionHandler' info not weaving 'org/apache/log4j/spi/ErrorHandler' info not weaving 'org/apache/log4j/helpers/QuietWriter' info not weaving 'org/apache/log4j/ConsoleAppender$SystemErrStream' info not weaving 'org/apache/log4j/ConsoleAppender$SystemOutStream' info not weaving 'org/apache/log4j/Layout' info not weaving 'org/apache/log4j/helpers/OnlyOnceErrorHandler' info not weaving 'org/apache/log4j/PatternLayout' info not weaving 'org/apache/log4j/helpers/PatternParser' info not weaving 'org/apache/log4j/helpers/PatternParser$CategoryPatternConverter' info not weaving 'org/apache/log4j/helpers/PatternParser$NamedPatternConverter' info not weaving 'org/apache/log4j/helpers/PatternConverter' info not weaving 'org/apache/log4j/helpers/PatternParser$ClassNamePatternConverter' info not weaving 'org/apache/log4j/helpers/ISO8601DateFormat' info not weaving 'org/apache/log4j/helpers/AbsoluteTimeDateFormat' info not weaving 'org/apache/log4j/helpers/DateTimeDateFormat' info not weaving 'org/apache/log4j/helpers/PatternParser$DatePatternConverter' info not weaving 'org/apache/log4j/helpers/PatternParser$LocationPatternConverter' info not weaving 'org/apache/log4j/helpers/PatternParser$BasicPatternConverter' info not weaving 'org/apache/log4j/helpers/PatternParser$MDCPatternConverter' info not weaving 'org/apache/log4j/helpers/PatternParser$LiteralPatternConverter' info not weaving 'org/apache/log4j/helpers/FormattingInfo' info not weaving 'org/apache/log4j/config/PropertySetter' info not weaving 'org/apache/log4j/config/PropertySetterException' info not weaving 'org/apache/log4j/spi/LoggingEvent' info not weaving 'org/apache/log4j/helpers/AppenderAttachableImpl' info not weaving 'org/apache/log4j/CategoryKey' info not weaving 'org/eclipse/jdt/internal/junit/runner/junit3/JUnit3TestReference' info not weaving 'junit/extensions/TestDecorator' info not weaving 'org/eclipse/jdt/internal/junit/runner/ITestIdentifier' info not weaving 'junit/framework/TestListener' info not weaving 'org/eclipse/jdt/internal/junit/runner/IStopListener' info not weaving 'org/eclipse/jdt/internal/junit/runner/junit3/JUnit3Identifier' info not weaving 'org/eclipse/jdt/internal/junit/runner/JUnitMessages' info not weaving 'junit/framework/Protectable' info not weaving 'org/eclipse/jdt/internal/junit/runner/junit3/JUnit3Listener' info not weaving 'org/eclipse/jdt/internal/junit/runner/junit3/JUnit3TestReference$1' info not weaving 'junit/framework/TestResult$1' info not weaving 'org/springframework/util/StringUtils' info not weaving 'org/apache/log4j/NDC' info not weaving 'org/springframework/context/support/ClassPathXmlApplicationContext' info not weaving 'org/springframework/context/support/AbstractXmlApplicationContext' 0 [main] INFO com.trivadis.aop.configurable.ConfigurableTest - Loading config for: classpath:com/trivadis/aop/configurable/applicationContext.xml info not weaving 'org/springframework/context/support/AbstractRefreshableApplicationContext' info not weaving 'org/springframework/context/support/AbstractApplicationContext' info not weaving 'org/springframework/beans/factory/DisposableBean' info not weaving 'org/springframework/core/io/DefaultResourceLoader' info not weaving 'org/springframework/core/io/Resource' info not weaving 'org/springframework/core/io/InputStreamSource' info not weaving 'org/springframework/context/ApplicationEvent' info not weaving 'org/springframework/context/event/ContextClosedEvent' info not weaving 'org/springframework/context/support/AbstractApplicationContext$1' info not weaving 'org/springframework/context/event/ApplicationEventMulticaster' info not weaving 'org/springframework/beans/factory/config/BeanPostProcessor' info not weaving 'org/springframework/beans/factory/config/ConfigurableListableBeanFactory' info not weaving 'org/springframework/beans/factory/config/AutowireCapableBeanFactory' info not weaving 'org/springframework/beans/factory/config/ConfigurableBeanFactory' info not weaving 'org/springframework/beans/factory/config/SingletonBeanRegistry' info not weaving 'org/springframework/beans/PropertyEditorRegistrar' info not weaving 'org/springframework/context/event/ContextRefreshedEvent' info not weaving 'org/springframework/context/ApplicationContextException' info not weaving 'org/springframework/beans/FatalBeanException' info not weaving 'org/springframework/beans/factory/support/BeanDefinitionRegistry' info not weaving 'org/springframework/util/ClassUtils' info not weaving 'org/springframework/core/io/support/PathMatchingResourcePatternResolver' info not weaving 'org/springframework/util/PathMatcher' info not weaving 'org/springframework/util/AntPathMatcher' info not weaving 'org/springframework/util/Assert' info not weaving 'org/springframework/beans/factory/support/DefaultListableBeanFactory' info not weaving 'org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory' info not weaving 'org/springframework/beans/factory/support/AbstractBeanFactory' info not weaving 'org/springframework/beans/factory/support/DefaultSingletonBeanRegistry' info not weaving 'org/springframework/beans/factory/BeanCreationNotAllowedException' info not weaving 'org/springframework/beans/factory/BeanCreationException' info not weaving 'org/springframework/beans/factory/FactoryBeanNotInitializedException' info not weaving 'org/springframework/beans/factory/BeanCurrentlyInCreationException' info not weaving 'org/springframework/beans/factory/BeanIsNotAFactoryException' info not weaving 'org/springframework/beans/factory/BeanNotOfRequiredTypeException' info not weaving 'org/springframework/beans/factory/BeanIsAbstractException' info not weaving 'org/springframework/beans/factory/BeanDefinitionStoreException' info not weaving 'org/springframework/beans/PropertyEditorRegistry' info not weaving 'org/springframework/beans/factory/CannotLoadBeanClassException' info not weaving 'org/springframework/beans/factory/support/AbstractBeanDefinition' info not weaving 'org/springframework/beans/factory/config/BeanDefinition' info not weaving 'org/springframework/core/AttributeAccessor' info not weaving 'org/springframework/core/AttributeAccessorSupport' info not weaving 'org/springframework/beans/factory/support/ChildBeanDefinition' info not weaving 'org/springframework/beans/factory/ObjectFactory' info not weaving 'org/springframework/beans/PropertyValues' info not weaving 'org/springframework/beans/factory/UnsatisfiedDependencyException' info not weaving 'org/springframework/beans/MutablePropertyValues' info not weaving 'org/springframework/beans/factory/support/ConstructorResolver' info not weaving 'org/springframework/beans/factory/support/AbstractAutowireCapableBeanFactory$ConstructorResolverAdapter' info not weaving 'org/springframework/beans/BeanWrapper' info not weaving 'org/springframework/beans/ConfigurablePropertyAccessor' info not weaving 'org/springframework/beans/PropertyAccessor' info not weaving 'org/springframework/beans/factory/support/BeanDefinitionValidationException' info not weaving 'org/springframework/beans/factory/support/InstantiationStrategy' info not weaving 'org/springframework/core/CollectionFactory' info not weaving 'org/springframework/core/JdkVersion' info not weaving 'org/springframework/core/CollectionFactory$Jdk14CollectionFactory' info not weaving 'org/springframework/beans/factory/support/CglibSubclassingInstantiationStrategy' info not weaving 'org/springframework/beans/factory/support/SimpleInstantiationStrategy' 328 [main] INFO org.springframework.core.CollectionFactory - JDK 1.4+ collections available info not weaving 'org/springframework/beans/factory/BeanNameAware' info not weaving 'org/springframework/beans/factory/BeanFactoryAware' info not weaving 'org/springframework/beans/factory/BeanClassLoaderAware' info not weaving 'org/springframework/beans/factory/xml/XmlBeanDefinitionReader' info not weaving 'org/springframework/beans/factory/support/AbstractBeanDefinitionReader' info not weaving 'org/springframework/beans/factory/support/BeanDefinitionReader' info not weaving 'org/springframework/beans/factory/xml/NamespaceHandlerResolver' info not weaving 'org/springframework/beans/factory/parsing/ProblemReporter' info not weaving 'org/springframework/beans/factory/support/ReaderEventListener' info not weaving 'org/springframework/beans/factory/parsing/SourceExtractor' info not weaving 'org/springframework/beans/factory/xml/DocumentLoader' info not weaving 'org/springframework/core/Constants' info not weaving 'org/springframework/core/ConstantException' info not weaving 'org/springframework/util/ReflectionUtils' info not weaving 'org/springframework/util/ReflectionUtils$FieldCallback' info not weaving 'org/springframework/util/ReflectionUtils$MethodCallback' info not weaving 'org/springframework/util/ReflectionUtils$FieldFilter' info not weaving 'org/springframework/util/ReflectionUtils$3' info not weaving 'org/springframework/util/xml/SimpleSaxErrorHandler' info not weaving 'org/springframework/beans/factory/xml/DefaultBeanDefinitionDocumentReader' info not weaving 'org/springframework/beans/factory/xml/BeanDefinitionDocumentReader' info not weaving 'org/springframework/beans/factory/support/ComponentDefinition' info not weaving 'org/springframework/beans/factory/support/ReaderContext' info not weaving 'org/springframework/beans/factory/xml/XmlReaderContext' info not weaving 'org/springframework/beans/factory/parsing/FailFastProblemReporter' info not weaving 'org/springframework/beans/factory/parsing/BeanDefinitionParsingException' info not weaving 'org/springframework/beans/factory/xml/XmlBeanDefinitionReader$NullReaderEventListener' info not weaving 'org/springframework/beans/factory/parsing/NullSourceExtractor' info not weaving 'org/springframework/beans/factory/xml/DefaultDocumentLoader' info not weaving 'org/springframework/util/xml/XmlValidationModeDetector' info not weaving 'org/springframework/beans/factory/xml/ResourceEntityResolver' info not weaving 'org/springframework/beans/factory/xml/DelegatingEntityResolver' info not weaving 'org/springframework/beans/factory/xml/BeansDtdResolver' info not weaving 'org/springframework/beans/factory/xml/PluggableSchemaResolver' info not weaving 'org/springframework/core/io/support/PropertiesLoaderUtils' 515 [main] INFO org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [com/trivadis/aop/configurable/applicationContext.xml] info not weaving 'org/springframework/core/io/ClassPathResource' info not weaving 'org/springframework/core/io/AbstractResource' info not weaving 'org/springframework/core/io/support/EncodedResource' info not weaving 'org/springframework/beans/BeanUtils' info not weaving 'org/springframework/beans/BeanInstantiationException' info not weaving 'org/springframework/beans/factory/xml/DefaultNamespaceHandlerResolver' info not weaving 'org/springframework/beans/factory/xml/SimplePropertyNamespaceHandler' info not weaving 'org/springframework/beans/factory/xml/NamespaceHandler' info not weaving 'org/springframework/scripting/config/LangNamespaceHandler' info not weaving 'org/springframework/beans/factory/xml/NamespaceHandlerSupport' info not weaving 'org/springframework/beans/factory/xml/BeanDefinitionParser' info not weaving 'org/springframework/ejb/config/JeeNamespaceHandler' info not weaving 'org/springframework/ejb/config/JndiLookupBeanDefinitionParser' info not weaving 'org/springframework/ejb/config/AbstractJndiLocatedBeanDefinitionParser' info not weaving 'org/springframework/beans/factory/xml/AbstractSimpleBeanDefinitionParser' info not weaving 'org/springframework/beans/factory/xml/AbstractSingleBeanDefinitionParser' info not weaving 'org/springframework/beans/factory/xml/AbstractBeanDefinitionParser' info not weaving 'org/springframework/ejb/config/LocalStatelessSessionBeanDefinitionParser' info not weaving 'org/springframework/ejb/config/RemoteStatelessSessionBeanDefinitionParser' info not weaving 'org/springframework/aop/config/AopNamespaceHandler' info not weaving 'org/springframework/beans/factory/xml/BeanDefinitionDecorator' info not weaving 'org/springframework/aop/config/ConfigBeanDefinitionParser' info not weaving 'org/springframework/beans/factory/support/RootBeanDefinition' info not weaving 'org/springframework/beans/factory/parsing/ParseState$Entry' info not weaving 'org/springframework/beans/factory/parsing/ParseState' info not weaving 'org/springframework/aop/config/SpringConfiguredBeanDefinitionParser' info not weaving 'org/springframework/aop/config/AspectJAutoProxyBeanDefinitionParser' info not weaving 'org/springframework/core/Conventions' info not weaving 'org/springframework/aop/config/ScopedProxyBeanDefinitionDecorator' info not weaving 'org/springframework/beans/factory/xml/UtilNamespaceHandler' info not weaving 'org/springframework/beans/factory/xml/UtilNamespaceHandler$PropertiesBeanDefinitionParser' info not weaving 'org/springframework/beans/factory/xml/UtilNamespaceHandler$ConstantBeanDefinitionParser' info not weaving 'org/springframework/beans/factory/xml/PropertyPathBeanDefinitionParser' info not weaving 'org/springframework/beans/factory/xml/UtilNamespaceHandler$MapBeanDefinitionParser' info not weaving 'org/springframework/beans/factory/xml/UtilNamespaceHandler$ListBeanDefinitionParser' info not weaving 'org/springframework/beans/factory/xml/UtilNamespaceHandler$SetBeanDefinitionParser' info not weaving 'org/springframework/transaction/config/TxNamespaceHandler' info not weaving 'org/springframework/transaction/config/TxAdviceBeanDefinitionParser' info not weaving 'org/springframework/transaction/config/AnnotationDrivenBeanDefinitionParser' info not weaving 'org/springframework/beans/factory/xml/BeanDefinitionParserDelegate' info not weaving 'org/springframework/beans/factory/support/ManagedProperties' info not weaving 'org/springframework/beans/Mergeable' info not weaving 'org/springframework/beans/factory/support/MethodOverride' info not weaving 'org/springframework/beans/factory/support/ReplaceOverride' info not weaving 'org/springframework/beans/factory/support/LookupOverride' info not weaving 'org/springframework/beans/factory/xml/ParserContext' info not weaving 'org/springframework/aop/config/AopNamespaceUtils' info not weaving 'org/springframework/aop/framework/autoproxy/InvocationContextExposingAdvisorAutoProxyCreator' info not weaving 'org/springframework/aop/framework/autoproxy/AbstractAdvisorAutoProxyCreator' info not weaving 'org/springframework/aop/framework/autoproxy/AbstractAutoProxyCreator' info not weaving 'org/springframework/beans/factory/config/InstantiationAwareBeanPostProcessor' info not weaving 'org/springframework/core/Ordered' info not weaving 'org/springframework/aop/framework/ProxyConfig' info not weaving 'org/springframework/aop/framework/AopProxyFactory' info not weaving 'org/springframework/aop/TargetSource' info not weaving 'org/springframework/aop/aspectj/autoproxy/AspectJInvocationContextExposingAdvisorAutoProxyCreator' info not weaving 'org/springframework/aop/aspectj/annotation/AnnotationAwareAspectJAutoProxyCreator' info not weaving 'org/springframework/aop/aspectj/annotation/MetadataAwareAspectInstanceFactory' info not weaving 'org/springframework/aop/aspectj/AspectInstanceFactory' info not weaving 'org/springframework/aop/aspectj/annotation/AspectJAdvisorFactory' info not weaving 'org/springframework/beans/factory/support/MethodOverrides' info not weaving 'org/springframework/beans/factory/config/ConstructorArgumentValues' info not weaving 'org/springframework/beans/factory/support/BeanComponentDefinition' info not weaving 'org/springframework/beans/factory/support/AbstractComponentDefinition' info not weaving 'org/springframework/beans/PropertyValue' info not weaving 'org/springframework/beans/factory/config/RuntimeBeanReference' info not weaving 'org/springframework/beans/factory/support/BeanDefinitionRegistryBuilder' info not weaving 'org/springframework/beans/factory/aspectj/AnnotationBeanConfigurerAspect' info not weaving 'org/springframework/beans/factory/aspectj/AbstractBeanConfigurerAspect' info not weaving 'org/springframework/beans/factory/wiring/BeanConfigurerSupport' info not weaving 'org/springframework/beans/factory/wiring/BeanWiringInfoResolver' info not weaving 'org/aspectj/lang/NoAspectBoundException' info not weaving 'org/springframework/beans/factory/wiring/ClassNameBeanWiringInfoResolver' info not weaving 'org/springframework/beans/factory/annotation/AnnotationBeanWiringInfoResolver' info not weaving 'org/springframework/beans/factory/support/BeanDefinitionBuilder' info not weaving 'org/springframework/beans/factory/support/BeanDefinitionReaderUtils' info not weaving 'org/springframework/util/xml/DomUtils' info not weaving 'org/springframework/util/CollectionUtils' info not weaving 'org/springframework/beans/factory/parsing/BeanEntry' info not weaving 'org/springframework/beans/factory/parsing/PropertyEntry' info not weaving 'org/springframework/beans/factory/config/BeanDefinitionHolder' info not weaving 'org/springframework/beans/support/ResourceEditorRegistrar' info not weaving 'org/springframework/context/support/ApplicationContextAwareProcessor' info not weaving 'org/springframework/beans/factory/config/DestructionAwareBeanPostProcessor' info not weaving 'org/springframework/context/ResourceLoaderAware' info not weaving 'org/springframework/context/ApplicationEventPublisherAware' info not weaving 'org/springframework/context/MessageSourceAware' info not weaving 'org/springframework/context/ApplicationContextAware' info not weaving 'org/springframework/beans/factory/config/BeanFactoryPostProcessor' info not weaving 'org/springframework/beans/factory/BeanFactoryUtils' info not weaving 'org/springframework/util/ObjectUtils' 1265 [main] INFO org.springframework.context.support.ClassPathXmlApplicationContext - Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=9523050]: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [org.springframework.aop.config.internalAutoProxyCreator,org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect,com.trivadis.aop.configurable.Address,codeRepository]; root of BeanFactory hierarchy 1281 [main] INFO org.springframework.context.support.ClassPathXmlApplicationContext - 4 beans defined in application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=9523050] info not weaving 'org/springframework/beans/factory/FactoryBean' info not weaving 'org/springframework/util/ReflectionUtils$1' info weaving 'com/trivadis/aop/configurable/Address' abort trouble in: public class com.trivadis.aop.configurable.Address extends java.lang.Object: private com.trivadis.aop.configurable.CodeRepository codeRepository private long id private String street private String city private com.trivadis.aop.configurable.Country country public void setCodeRepository(com.trivadis.aop.configurable.CodeRepository): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 14) ALOAD_1 // Lcom/trivadis/aop/configurable/CodeRepository; codeRepository PUTFIELD com.trivadis.aop.configurable.Address.codeRepository Lcom/trivadis/aop/configurable/CodeRepository; RETURN (line 15) end public void setCodeRepository(com.trivadis.aop.configurable.CodeRepository) public String getCity(): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 27) GETFIELD com.trivadis.aop.configurable.Address.city Ljava/lang/String; ARETURN end public String getCity() public void setCity(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 31) ALOAD_1 // Ljava/lang/String; city PUTFIELD com.trivadis.aop.configurable.Address.city Ljava/lang/String; RETURN (line 32) end public void setCity(String) public com.trivadis.aop.configurable.Country getCountry(): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 35) GETFIELD com.trivadis.aop.configurable.Address.country Lcom/trivadis/aop/configurable/Country; ARETURN end public com.trivadis.aop.configurable.Country getCountry() public void setCountry(com.trivadis.aop.configurable.Country): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 39) ALOAD_1 // Lcom/trivadis/aop/configurable/Country; country PUTFIELD com.trivadis.aop.configurable.Address.country Lcom/trivadis/aop/configurable/Country; RETURN (line 40) end public void setCountry(com.trivadis.aop.configurable.Country) public String getStreet(): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 43) GETFIELD com.trivadis.aop.configurable.Address.street Ljava/lang/String; ARETURN end public String getStreet() public void setStreet(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 47) ALOAD_1 // Ljava/lang/String; street PUTFIELD com.trivadis.aop.configurable.Address.street Ljava/lang/String; RETURN (line 48) end public void setStreet(String) private void <init>(): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 52) INVOKESPECIAL java.lang.Object.<init> ()V RETURN end private void <init>() public static com.trivadis.aop.configurable.Address createAddress(String, String): NEW com.trivadis.aop.configurable.Address (line 57) DUP INVOKESPECIAL com.trivadis.aop.configurable.Address.<init> ()V ASTORE_2 ALOAD_2 // Lcom/trivadis/aop/configurable/Address; adr (line 58) ALOAD_0 // Ljava/lang/String; street INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setStreet (Ljava/lang/String;)V ALOAD_2 // Lcom/trivadis/aop/configurable/Address; adr (line 59) ALOAD_1 // Ljava/lang/String; city INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setCity (Ljava/lang/String;)V ALOAD_2 // Lcom/trivadis/aop/configurable/Address; adr (line 60) ARETURN end public static com.trivadis.aop.configurable.Address createAddress(String, String) public com.trivadis.aop.configurable.Address withStreet(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 66) ALOAD_1 // Ljava/lang/String; street INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setStreet (Ljava/lang/String;)V ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 67) ARETURN end public com.trivadis.aop.configurable.Address withStreet(String) public com.trivadis.aop.configurable.Address withCity(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 71) ALOAD_1 // Ljava/lang/String; city INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setCity (Ljava/lang/String;)V ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 72) ARETURN end public com.trivadis.aop.configurable.Address withCity(String) public com.trivadis.aop.configurable.Address forCountry(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 76) ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this GETFIELD com.trivadis.aop.configurable.Address.codeRepository Lcom/trivadis/aop/configurable/CodeRepository; ALOAD_1 // Ljava/lang/String; code INVOKEINTERFACE com.trivadis.aop.configurable.CodeRepository.findCountryByCode (Ljava/lang/String;)Lcom/trivadis/aop/configurable/Country; INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setCountry (Lcom/trivadis/aop/configurable/Country;)V ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 77) ARETURN end public com.trivadis.aop.configurable.Address forCountry(String) end public class com.trivadis.aop.configurable.Address -- (NullPointerException) null null java.lang.NullPointerException at org.aspectj.apache.bcel.util.ClassLoaderRepository.loadClass(ClassLoaderRepository.java:128) at org.aspectj.apache.bcel.util.ClassLoaderRepository.loadClass(ClassLoaderRepository.java:146) at org.aspectj.weaver.reflect.Java15AnnotationFinder.getAnnotations(Java15AnnotationFinder.java:143) at org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate.getAnnotationTypes(Java15ReflectionBasedReferenceTypeDelegate.java:86) at org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate.hasAnnotation(Java15ReflectionBasedReferenceTypeDelegate.java:92) at org.aspectj.weaver.ReferenceType.hasAnnotation(ReferenceType.java:151) at org.aspectj.weaver.patterns.ExactAnnotationTypePattern.matches(ExactAnnotationTypePattern.java:95) at org.aspectj.weaver.patterns.AnyWithAnnotationTypePattern.matchesExactly(TypePattern.java:470) at org.aspectj.weaver.patterns.TypePattern.matchesStatically(TypePattern.java:121) at org.aspectj.weaver.patterns.SignaturePattern.matchesExactlyMethod(SignaturePattern.java:375) at org.aspectj.weaver.patterns.SignaturePattern.matchesExactly(SignaturePattern.java:325) at org.aspectj.weaver.patterns.SignaturePattern.matches(SignaturePattern.java:289) at org.aspectj.weaver.patterns.KindedPointcut.matchInternal(KindedPointcut.java:106) at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) at org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:51) at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) at org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:51) at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) at org.aspectj.weaver.patterns.OrPointcut.matchInternal(OrPointcut.java:52) at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) at org.aspectj.weaver.ShadowMunger.match(ShadowMunger.java:71) at org.aspectj.weaver.Advice.match(Advice.java:111) at org.aspectj.weaver.bcel.BcelAdvice.match(BcelAdvice.java:107) at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2799) at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2330) at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:490) at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:115) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1574) at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1525) at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1305) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1127) at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:284) at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:212) at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:65) at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:55) at sun.instrument.TransformerManager.transform(TransformerManager.java:122) at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:155) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:242) at org.springframework.util.ClassUtils.forName(ClassUtils.java:160) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:308) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:853) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:176) at org.springframework.context.support.AbstractApplicationContext.getBeanNamesForType(AbstractApplicationContext.java:686) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:397) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:330) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:92) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77) at org.springframework.test.AbstractSpringContextTests.loadContextLocations(AbstractSpringContextTests.java:130) at org.springframework.test.AbstractDependencyInjectionSpringContextTests.loadContextLocations(AbstractDependencyInjectionSpringContextTests.java:238) at org.springframework.test.AbstractSpringContextTests.getContext(AbstractSpringContextTests.java:110) at org.springframework.test.AbstractDependencyInjectionSpringContextTests.setUp(AbstractDependencyInjectionSpringContextTests.java:194) at junit.framework.TestCase.runBare(TestCase.java:125) at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) Message: abort trouble in: public class com.trivadis.aop.configurable.Address extends java.lang.Object: private com.trivadis.aop.configurable.CodeRepository codeRepository private long id private String street private String city private com.trivadis.aop.configurable.Country country public void setCodeRepository(com.trivadis.aop.configurable.CodeRepository): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 14) ALOAD_1 // Lcom/trivadis/aop/configurable/CodeRepository; codeRepository PUTFIELD com.trivadis.aop.configurable.Address.codeRepository Lcom/trivadis/aop/configurable/CodeRepository; RETURN (line 15) end public void setCodeRepository(com.trivadis.aop.configurable.CodeRepository) public String getCity(): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 27) GETFIELD com.trivadis.aop.configurable.Address.city Ljava/lang/String; ARETURN end public String getCity() public void setCity(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 31) ALOAD_1 // Ljava/lang/String; city PUTFIELD com.trivadis.aop.configurable.Address.city Ljava/lang/String; RETURN (line 32) end public void setCity(String) public com.trivadis.aop.configurable.Country getCountry(): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 35) GETFIELD com.trivadis.aop.configurable.Address.country Lcom/trivadis/aop/configurable/Country; ARETURN end public com.trivadis.aop.configurable.Country getCountry() public void setCountry(com.trivadis.aop.configurable.Country): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 39) ALOAD_1 // Lcom/trivadis/aop/configurable/Country; country PUTFIELD com.trivadis.aop.configurable.Address.country Lcom/trivadis/aop/configurable/Country; RETURN (line 40) end public void setCountry(com.trivadis.aop.configurable.Country) public String getStreet(): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 43) GETFIELD com.trivadis.aop.configurable.Address.street Ljava/lang/String; ARETURN end public String getStreet() public void setStreet(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 47) ALOAD_1 // Ljava/lang/String; street PUTFIELD com.trivadis.aop.configurable.Address.street Ljava/lang/String; RETURN (line 48) end public void setStreet(String) private void <init>(): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 52) INVOKESPECIAL java.lang.Object.<init> ()V RETURN end private void <init>() public static com.trivadis.aop.configurable.Address createAddress(String, String): NEW com.trivadis.aop.configurable.Address (line 57) DUP INVOKESPECIAL com.trivadis.aop.configurable.Address.<init> ()V ASTORE_2 ALOAD_2 // Lcom/trivadis/aop/configurable/Address; adr (line 58) ALOAD_0 // Ljava/lang/String; street INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setStreet (Ljava/lang/String;)V ALOAD_2 // Lcom/trivadis/aop/configurable/Address; adr (line 59) ALOAD_1 // Ljava/lang/String; city INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setCity (Ljava/lang/String;)V ALOAD_2 // Lcom/trivadis/aop/configurable/Address; adr (line 60) ARETURN end public static com.trivadis.aop.configurable.Address createAddress(String, String) public com.trivadis.aop.configurable.Address withStreet(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 66) ALOAD_1 // Ljava/lang/String; street INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setStreet (Ljava/lang/String;)V ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 67) ARETURN end public com.trivadis.aop.configurable.Address withStreet(String) public com.trivadis.aop.configurable.Address withCity(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 71) ALOAD_1 // Ljava/lang/String; city INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setCity (Ljava/lang/String;)V ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 72) ARETURN end public com.trivadis.aop.configurable.Address withCity(String) public com.trivadis.aop.configurable.Address forCountry(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 76) ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this GETFIELD com.trivadis.aop.configurable.Address.codeRepository Lcom/trivadis/aop/configurable/CodeRepository; ALOAD_1 // Ljava/lang/String; code INVOKEINTERFACE com.trivadis.aop.configurable.CodeRepository.findCountryByCode (Ljava/lang/String;)Lcom/trivadis/aop/configurable/Country; INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setCountry (Lcom/trivadis/aop/configurable/Country;)V ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 77) ARETURN end public com.trivadis.aop.configurable.Address forCountry(String) end public class com.trivadis.aop.configurable.Address -- (NullPointerException) null null java.lang.NullPointerException at org.aspectj.apache.bcel.util.ClassLoaderRepository.loadClass(ClassLoaderRepository.java:128) at org.aspectj.apache.bcel.util.ClassLoaderRepository.loadClass(ClassLoaderRepository.java:146) at org.aspectj.weaver.reflect.Java15AnnotationFinder.getAnnotations(Java15AnnotationFinder.java:143) at org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate.getAnnotationTypes(Java15ReflectionBasedReferenceTypeDelegate.java:86) at org.aspectj.weaver.reflect.Java15ReflectionBasedReferenceTypeDelegate.hasAnnotation(Java15ReflectionBasedReferenceTypeDelegate.java:92) at org.aspectj.weaver.ReferenceType.hasAnnotation(ReferenceType.java:151) at org.aspectj.weaver.patterns.ExactAnnotationTypePattern.matches(ExactAnnotationTypePattern.java:95) at org.aspectj.weaver.patterns.AnyWithAnnotationTypePattern.matchesExactly(TypePattern.java:470) at org.aspectj.weaver.patterns.TypePattern.matchesStatically(TypePattern.java:121) at org.aspectj.weaver.patterns.SignaturePattern.matchesExactlyMethod(SignaturePattern.java:375) at org.aspectj.weaver.patterns.SignaturePattern.matchesExactly(SignaturePattern.java:325) at org.aspectj.weaver.patterns.SignaturePattern.matches(SignaturePattern.java:289) at org.aspectj.weaver.patterns.KindedPointcut.matchInternal(KindedPointcut.java:106) at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) at org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:51) at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) at org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:51) at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) at org.aspectj.weaver.patterns.OrPointcut.matchInternal(OrPointcut.java:52) at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146) at org.aspectj.weaver.ShadowMunger.match(ShadowMunger.java:71) at org.aspectj.weaver.Advice.match(Advice.java:111) at org.aspectj.weaver.bcel.BcelAdvice.match(BcelAdvice.java:107) at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2799) at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2330) at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:490) at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:115) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1574) at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1525) at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1305) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1127) at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:284) at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:212) at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:65) at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:55) at sun.instrument.TransformerManager.transform(TransformerManager.java:122) at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:155) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:242) at org.springframework.util.ClassUtils.forName(ClassUtils.java:160) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:308) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:853) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:176) at org.springframework.context.support.AbstractApplicationContext.getBeanNamesForType(AbstractApplicationContext.java:686) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:397) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:330) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:92) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77) at org.springframework.test.AbstractSpringContextTests.loadContextLocations(AbstractSpringContextTests.java:130) at org.springframework.test.AbstractDependencyInjectionSpringContextTests.loadContextLocations(AbstractDependencyInjectionSpringContextTests.java:238) at org.springframework.test.AbstractSpringContextTests.getContext(AbstractSpringContextTests.java:110) at org.springframework.test.AbstractDependencyInjectionSpringContextTests.setUp(AbstractDependencyInjectionSpringContextTests.java:194) at junit.framework.TestCase.runBare(TestCase.java:125) at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) org.aspectj.bridge.AbortException: trouble in: public class com.trivadis.aop.configurable.Address extends java.lang.Object: private com.trivadis.aop.configurable.CodeRepository codeRepository private long id private String street private String city private com.trivadis.aop.configurable.Country country public void setCodeRepository(com.trivadis.aop.configurable.CodeRepository): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 14) ALOAD_1 // Lcom/trivadis/aop/configurable/CodeRepository; codeRepository PUTFIELD com.trivadis.aop.configurable.Address.codeRepository Lcom/trivadis/aop/configurable/CodeRepository; RETURN (line 15) end public void setCodeRepository(com.trivadis.aop.configurable.CodeRepository) public String getCity(): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 27) GETFIELD com.trivadis.aop.configurable.Address.city Ljava/lang/String; ARETURN end public String getCity() public void setCity(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 31) ALOAD_1 // Ljava/lang/String; city PUTFIELD com.trivadis.aop.configurable.Address.city Ljava/lang/String; RETURN (line 32) end public void setCity(String) public com.trivadis.aop.configurable.Country getCountry(): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 35) GETFIELD com.trivadis.aop.configurable.Address.country Lcom/trivadis/aop/configurable/Country; ARETURN end public com.trivadis.aop.configurable.Country getCountry() public void setCountry(com.trivadis.aop.configurable.Country): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 39) ALOAD_1 // Lcom/trivadis/aop/configurable/Country; country PUTFIELD com.trivadis.aop.configurable.Address.country Lcom/trivadis/aop/configurable/Country; RETURN (line 40) end public void setCountry(com.trivadis.aop.configurable.Country) public String getStreet(): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 43) GETFIELD com.trivadis.aop.configurable.Address.street Ljava/lang/String; ARETURN end public String getStreet() public void setStreet(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 47) ALOAD_1 // Ljava/lang/String; street PUTFIELD com.trivadis.aop.configurable.Address.street Ljava/lang/String; RETURN (line 48) end public void setStreet(String) private void <init>(): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 52) INVOKESPECIAL java.lang.Object.<init> ()V RETURN end private void <init>() public static com.trivadis.aop.configurable.Address createAddress(String, String): NEW com.trivadis.aop.configurable.Address (line 57) DUP INVOKESPECIAL com.trivadis.aop.configurable.Address.<init> ()V ASTORE_2 ALOAD_2 // Lcom/trivadis/aop/configurable/Address; adr (line 58) ALOAD_0 // Ljava/lang/String; street INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setStreet (Ljava/lang/String;)V ALOAD_2 // Lcom/trivadis/aop/configurable/Address; adr (line 59) ALOAD_1 // Ljava/lang/String; city INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setCity (Ljava/lang/String;)V ALOAD_2 // Lcom/trivadis/aop/configurable/Address; adr (line 60) ARETURN end public static com.trivadis.aop.configurable.Address createAddress(String, String) public com.trivadis.aop.configurable.Address withStreet(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 66) ALOAD_1 // Ljava/lang/String; street INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setStreet (Ljava/lang/String;)V ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 67) ARETURN end public com.trivadis.aop.configurable.Address withStreet(String) public com.trivadis.aop.configurable.Address withCity(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 71) ALOAD_1 // Ljava/lang/String; city INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setCity (Ljava/lang/String;)V ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 72) ARETURN end public com.trivadis.aop.configurable.Address withCity(String) public com.trivadis.aop.configurable.Address forCountry(String): ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 76) ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this GETFIELD com.trivadis.aop.configurable.Address.codeRepository Lcom/trivadis/aop/configurable/CodeRepository; ALOAD_1 // Ljava/lang/String; code INVOKEINTERFACE com.trivadis.aop.configurable.CodeRepository.findCountryByCode (Ljava/lang/String;)Lcom/trivadis/aop/configurable/Country; INVOKEVIRTUAL com.trivadis.aop.configurable.Address.setCountry (Lcom/trivadis/aop/configurable/Country;)V ALOAD_0 // Lcom/trivadis/aop/configurable/Address; this (line 77) ARETURN end public com.trivadis.aop.configurable.Address forCountry(String) end public class com.trivadis.aop.configurable.Address at org.aspectj.bridge.MessageWriter.handleMessage(MessageWriter.java:47) at org.aspectj.weaver.tools.WeavingAdaptor$WeavingAdaptorMessageHandler.handleMessage(WeavingAdaptor.java:417) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1592) at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1525) at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1305) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1127) at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:284) at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:212) at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:65) at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:55) at sun.instrument.TransformerManager.transform(TransformerManager.java:122) at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:155) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:242) at org.springframework.util.ClassUtils.forName(ClassUtils.java:160) at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:308) at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:853) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:176) at org.springframework.context.support.AbstractApplicationContext.getBeanNamesForType(AbstractApplicationContext.java:686) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:397) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:330) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:92) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77) at org.springframework.test.AbstractSpringContextTests.loadContextLocations(AbstractSpringContextTests.java:130) at org.springframework.test.AbstractDependencyInjectionSpringContextTests.loadContextLocations(AbstractDependencyInjectionSpringContextTests.java:238) at org.springframework.test.AbstractSpringContextTests.getContext(AbstractSpringContextTests.java:110) at org.springframework.test.AbstractDependencyInjectionSpringContextTests.setUp(AbstractDependencyInjectionSpringContextTests.java:194) at junit.framework.TestCase.runBare(TestCase.java:125) at org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.java:124) at junit.framework.TestResult.run(TestResult.java:109) at junit.framework.TestCase.run(TestCase.java:118) at junit.framework.TestSuite.runTest(TestSuite.java:208) at junit.framework.TestSuite.run(TestSuite.java:203) at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) info not weaving 'com/trivadis/aop/configurable/CodeRepositoryImpl' info not weaving 'com/trivadis/aop/configurable/CodeRepository' ...
Created attachment 47768 [details] Test Case for the @Configurable problem Just execute set the SPRING Eclipse variable to the Spring RC3 distribution and start ConfigurableTest unit test with the -javaagent argument and it fails
The offending code has changed in the 1.5.3 development branch. Looking back at the V1_5_2_final tagged version, this NPE must have been caused by someone passing null into ClassLoaderRepository constructor. L183 is the corresponding line in the current version.
This is almost certainly triggered by the change to use ReflectionDelegates during load time weaving. We know go to the Java15ReflectionBasedReferenceTypeDelegate and ask for annotation types :- the Java15AnnotationFinder has not been properly initialized at this point and does not have a classloader set. It's all downhill from there...
Beyond this call in the constructor of LTWWorld: annotationFinder = ReflectionWorld.makeAnnotationFinderIfAny(loader, this); what else is needed to properly initialize the annotationFinder? That call should be setting the loader on the finder... Then for a bootstrap type this call: ReflectionBasedReferenceTypeDelegateFactory.createDelegate(ty, this, resolutionLoader); has a null resolutionLoader since it's being resolved from the bootstrap loader (which are the only types that LTW currently resolves with reflection delegates). Is it possible the annotation finder doesn't handle types from the null loader (i.e., the bootstrap loader) correctly?
I think it's a bug in ClassLoaderRepositor: it should allow for loading from the bootstrap loader with null. So when the annotation finder gets set to have a null loader for the bootstrap and it makes a new repository for null, that should be *valid*.
With the new (slated for 1.5.3) optimized approach of looking up resources via URL's, we could look up resources for the bootstrap loader by having a special URLClassLoader with no URL's and the bootstrap loader as its parent. That would only see bootstrap classes. A new approach for this code is being tested right now by Andy and I but this change to the constructor should fix it: private static java.lang.ClassLoader bootstrapProxy = null; public ClassLoaderRepository( java.lang.ClassLoader loader ) { if (loader == null) { loader = getBootstrapProxy(); } this.loader = loader; } private static synchronized java.lang.ClassLoader getBootstrapProxy() { if (bootstrapProxy == null) { bootstrapProxy = new URLClassLoader(new URL[0]); } return bootstrapProxy; }
The problem comes from Java15ReflectionBasedReferenceTypeDelegate L66 that creates an annotation finder to use based on the classloader passed in. LTWWorld L108 passes in "null" for the classloader parameter, and this is the cause of the problem. Changing the code here to pass in ClassLoader.getSystemClassLoader instead makes the test pass. I'm running the full suite now. Can you think of any adverse side-effects that passing this classloader in here would have? This is a serious issue for Spring as it breaks LTW with annotation matching on classes (i.e. @Configurable support).
Yes this isn't correct semantics. ClassLoader.getSystemClassLoader returns the application loader but these are types loaded from the bootstrap loader, i.e., null. My suggestion for fixing the issue in the ClassLoaderRepository to handle bootstrap loaders won't return annotations defined on the classpath that aren't visible to the bootstrap loader.
Created attachment 47784 [details] Patch to ClassLoaderRepository in HEAD to handle bootstrap loader correctly This needs to be tested. Of course we should add a simple LTW test case that exercises the annotation finder to test any solution to this problem.
I guess it *could* find annotations on boot classes that aren't in the boot classpath - unlikely... but the new URLClassLoader(new URL[0]) trick you suggest is better. The ReflectionTypeDelegate doesn't only use the passed in classloader for annotation finding, it's also used for finding declared pointcuts too. I think it's better if this field is never null in a reflection delegate, so I'm going to initialize the delegate classloader to a boot classloader (constructed as above) if null is passed in. We could patch ClassLoaderRepository too for a belt-and-braces approach. Given that 1.5.3 is probably not until end of September, and the seriousness of this issue, we may have to put out a 1.5.2a (I hate those...) containing this fix on the 1.5.2 tagged source. The pipelining stuff in 1.5.3 needs more time to bed down before we put a release out with that in, so I don't want to go from HEAD for a full release. We definitely need to add some tests to the suite as part of this bug fix so that we don't let this one slip through the net again...
fix committed in HEAD (1.5.3 release stream). I've also created branch RB_V_1_5_2 from the 1.5.2_final tag, and am adding just this one fix to it. I'll then tag that tree as 1_5_2a and upload the file to the AspectJ downloads page.
I'd suggest one small change: it's confusing to have the variable in ReflectionBasedReferenceTypeDelegate be named BootClassLoader with a capital B: it makes you think there's a new type involved at a glance. I'd suggest renaming to bootClassLoader.
*** Bug 158179 has been marked as a duplicate of this bug. ***
Lots of changes in this area since the bug was raised - so considering this stale. please reopen if still an issue. I did change that field name to bootClassLoader though ;) (comment #12)