[ http://jira.codehaus.org/browse/AW-157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

admin@example... deleted AW-157:
---------------------------------


> NPE thrown on null class name
> -----------------------------
>
>                 Key: AW-157
>                 URL: http://jira.codehaus.org/browse/AW-157
>             Project: AspectWerkz
>          Issue Type: Bug
>         Environment: Windows 2000, Spring 1.0, Hibernate 2.1.2
>            Reporter: Steven Caswell
>            Assignee: Alexandre Vasseur
>            Priority: Minor
>
> My application is loading a Spring framework context that includes creating a Hibernate session factory. At some point in loading the context, a null pointer exception is thrown from the following point in the code:
> org.codehaus.aspectwerkz.transform.AspectWerkzPreProcessor.preProcess
> (AspectWerkzPreProcessor.java:136)
>         final String className = name.replace('/', '.'); // needed for JRockit (as well as all in all TFs)
> The problem is that the name of the class passed to the preProcess method is null. It is null because of the call to java.lang.ClassLoader.defineClass at Classloader.java:382:
>     protected final Class defineClass(byte[] b, int off, int len)
> 	throws ClassFormatError
>     {
> 	return defineClass(null, b, off, len, null);
>     }
>    
> What is not obvious to me is why this overload of defineClass is called by sun.reflect.NativeMethodAccessorImpl.invoke0.
> Other than getting the stack trace, the application runs fine.
> I can't tell if this is a problem with AspectWerkz or with something else. Is it plausible that a null for class name would get this far? If so, AW should handle it without throwing a NPE, or at least without dumping the stack trace.
> Here is the full stack trace for reference:
> java.lang.NullPointerException
>         at org.codehaus.aspectwerkz.transform.AspectWerkzPreProcessor.preProcess(AspectWerkzPreProcessor.java:136)
>         at org.codehaus.aspectwerkz.hook.impl.ClassPreProcessorHelper.defineClass0Pre(ClassPreProcessorHelper.java:122)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:382)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:324)
>         at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:373)
>         at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:193)
>         at net.sf.cglib.reflect.FastClass$Generator.create(FastClass.java:92)
>         at net.sf.cglib.reflect.FastClass.create(FastClass.java:74)
>         at net.sf.hibernate.util.ReflectHelper.getBulkBean(ReflectHelper.java:140)
>         at net.sf.hibernate.persister.AbstractEntityPersister.<init>(AbstractEntityPersister.java:754)
>         at net.sf.hibernate.persister.NormalizedEntityPersister.<init>(NormalizedEntityPersister.java:718)
>         at net.sf.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:44)
>         at net.sf.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:137)
>         at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:750)
>         at org.springframework.orm.hibernate.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:417)
>         at org.springframework.orm.hibernate.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:355)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:707)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:202)
>         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:159)
>         at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:172)
>         at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:265)
>         at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:62)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
>         at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:66)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:339)
>         at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:169)
>         at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:159)
>         at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:178)
>         at org.springframework.beans.factory.access.SingletonBeanFactoryLocator.createDefinition(SingletonBeanFactoryLocator.java:485)
>         at org.springframework.beans.factory.access.SingletonBeanFactoryLocator.useBeanFactory(SingletonBeanFactoryLocator.java:386)
>         at com.termnetinc.common.app.Context.loadApplicationContext(Context.java:123)
>         at com.termnetinc.common.app.Context.loadApplicationContext(Context.java:103)
>         at com.termnetinc.common.app.Context.getApplicationContext(Context.java:86)
>         at com.termnetinc.common.app.Context.getBean(Context.java:70)
>         at com.termnetinc.common.GeneralAbstractTestCase.getBean(GeneralAbstractTestCase.java:117)
>         at com.termnetinc.domain.merchant.MerchantLocationBaseImplTestCase.getPhoneNumberTypeFactory(MerchantLocationBaseImplTestCase.java:139)
>         at com.termnetinc.domain.merchant.MerchantLocationBaseImplTestCase.getPhoneNumberTypes(MerchantLocationBaseImplTestCase.java:57)
>         at com.termnetinc.domain.merchant.MerchantLocationAbstractTestCase.setUp(MerchantLocationAbstractTestCase.java:110)
>         at junit.framework.TestCase.runBare(TestCase.java:125)
>         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 junit.textui.TestRunner.doRun(TestRunner.java:116)
>         at junit.textui.TestRunner.doRun(TestRunner.java:109)
>         at junit.textui.TestRunner.run(TestRunner.java:72)
>         at com.termnetinc.domain.merchant.MerchantLocationBaseImplTestCase.main(MerchantLocationBaseImplTestCase.java:41)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email


Message Thread

[aspectwerkz-dev] [jira] Deleted: (AW-157) NPE thrown on null class name admin@example.com (JIRA) (jira@codehaus...)
02 Aug 2007
Copyright 2006-2007 The Codehaus Foundation
Powered by Codehaus March (Version: 0.1-HEAD)