I just committed something that along with fixing some owb integration problems seems to fix this specific error.  I think that in the code below some gbean dependencies got mixed up and the web service gbean was starting before the ejb module actually started.  I moved the start code back into EjbModuleImpl and don't see this NPE.

thanks
david jencks

On Jul 14, 2011, at 4:38 AM, Shawn Jiang wrote:

Hi David Jencks,

Many cases in interop and webservices failed with following similar exception at deployment phase after your owb/openejb refactor.     Seems deploymentinfo does not get initialized correclty in

org.apache.geronimo.openejb.EjbDeployment.initialize(BeanContext) {
...
}

at all.    could you please take a look ?

Caused by: org.apache.geronimo.gbean.InvalidConfigurationException: Configuration  xxx failed to start due
following reasons:
  The service EJBModule=xxxx.jar,J2EEApplication=default/xxxx/1-default/car,SingletonBean=xxxx,j
WSLink,name=xxxx  did not start because null
java.lang.NullPointerException
        at org.apache.geronimo.openejb.EjbDeployment.getBeanClass(EjbDeployment.java:239)
        at org.apache.geronimo.axis2.ejb.EJBWebServiceGBean.<init>(EJBWebServiceGBean.java:76)
        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:513)
        at org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(ReflectionUtil.java:958)
        at org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:276)
        at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96)
        at org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:940)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:271)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:105)
        at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:127)
        at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:567)
        at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:386)
        at org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:462)
        at org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:226)
        at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:702)
        at org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:681)
        at org.apache.geronimo.deployment.plugin.local.StartCommand.run(StartCommand.java:67)
        at java.lang.Thread.run(Thread.java:619)



On Thu, Jul 14, 2011 at 1:10 PM, David Jencks <david_jencks@yahoo.com> wrote:

On Jul 13, 2011, at 9:46 PM, David Blevins wrote:

>
> On Jul 11, 2011, at 12:54 AM, David Jencks wrote:
>
>> testSpecializedBeanNotInstantiated(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationIntegrationTest)
>> testSpecializingBeanHasBindingsOfSpecializedAndSpecializingBean(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest)
>> testSpecializingBeanHasNameOfSpecializedBean(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest)
>> testSpecializingClassDirectlyExtendsNothing(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsNothing.DirectlyExtendsNothingTest)
>> testSpecializingClassDirectlyExtendsSimpleBean(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsSimpleBean.DirectlyExtendsSimpleBeanTest)
>> testSpecializingClassImplementsInterfaceAndExtendsNothing(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.implementInterfaceAndExtendsNothing.ImplementsInterfaceAndExtendsNothingTest)
>> testSpecializingAndSpecializedBeanHasName(org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.sameName.SameNameTest)
>
> Have all but 3 of these passing in the embedded container in my local copy.  The 3 that fail are "broken" ones.  Simply need to add validation for those.  My impl code is a bit hacked -- currently only works for @Stateful and not exactly implemented in the right spot -- but otherwise looks like a good approach.  Will clean it up and check it in tomorrow.
>
>

Excellent!  On the geronimo side I've changed things around so that we have one openejb appInfo tree for the entire application and use it to set up the owb context.  This _ought_ to fix the problem in g. that I was seeing that the owb context didn't include any of the specialized classes (since it was looking at only one of the modules in the ear).  However I'm still cleaning up loose ends so apps will deploy ok :-)

thanks
david jencks


> -David
>




--
Shawn