Bug 153572 - LTW with Spring 2.0rc3 fails (using @Configurable)
Summary: LTW with Spring 2.0rc3 fails (using @Configurable)
Status: RESOLVED FIXED
Alias: None
Product: AspectJ
Classification: Tools
Component: LTWeaving (show other bugs)
Version: 1.5.2   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: 1.6.2   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 158179 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-08-11 10:15 EDT by Guido Schmutz CLA
Modified: 2012-04-03 16:12 EDT (History)
2 users (show)

See Also:


Attachments
Test Case for the @Configurable problem (10.17 KB, application/zip)
2006-08-11 10:28 EDT, Guido Schmutz CLA
no flags Details
Patch to ClassLoaderRepository in HEAD to handle bootstrap loader correctly (1.79 KB, patch)
2006-08-11 13:40 EDT, Ron Bodkin CLA
aclement: iplog+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Guido Schmutz CLA 2006-08-11 10:15:19 EDT
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'
...
Comment 1 Guido Schmutz CLA 2006-08-11 10:28:43 EDT
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
Comment 2 Adrian Colyer CLA 2006-08-11 11:48:16 EDT
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.
Comment 3 Adrian Colyer CLA 2006-08-11 12:45:55 EDT
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...
Comment 4 Ron Bodkin CLA 2006-08-11 12:58:14 EDT
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?
Comment 5 Ron Bodkin CLA 2006-08-11 13:03:16 EDT
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*.
Comment 6 Ron Bodkin CLA 2006-08-11 13:14:13 EDT
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;
  }
Comment 7 Adrian Colyer CLA 2006-08-11 13:20:30 EDT
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).
Comment 8 Ron Bodkin CLA 2006-08-11 13:29:25 EDT
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.
Comment 9 Ron Bodkin CLA 2006-08-11 13:40:52 EDT
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.
Comment 10 Adrian Colyer CLA 2006-08-11 13:59:42 EDT
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...
Comment 11 Adrian Colyer CLA 2006-08-18 12:25:44 EDT
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.
Comment 12 Ron Bodkin CLA 2006-08-18 19:39:35 EDT
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.
Comment 13 Dean Wampler CLA 2006-09-22 12:35:50 EDT
*** Bug 158179 has been marked as a duplicate of this bug. ***
Comment 14 Andrew Clement CLA 2008-09-30 15:06:02 EDT
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)