[jboss-jira] [JBoss JIRA] Closed: (JBAS-5201) EJB2 Entity with cache invalidation fails to deploy with NPE
Brian Stansberry (JIRA)
jira-events at lists.jboss.org
Fri Apr 11 11:07:55 EDT 2008
[ http://jira.jboss.com/jira/browse/JBAS-5201?page=all ]
Brian Stansberry closed JBAS-5201.
----------------------------------
Resolution: Done
> EJB2 Entity with cache invalidation fails to deploy with NPE
> ------------------------------------------------------------
>
> Key: JBAS-5201
> URL: http://jira.jboss.com/jira/browse/JBAS-5201
> Project: JBoss Application Server
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: EJB2
> Affects Versions: JBossAS-5.0.0.Beta3
> Reporter: Brian Stansberry
> Assigned To: Brian Stansberry
> Fix For: JBossAS-5.0.0.CR1
>
>
> An entity with cache invalidation configured will fail to deploy. This is the cause of the failing o.j.t.cluster.multicfg.ejb2.test.CacheInvalidationUnitTestCase.
> Example bean config:
> <entity>
> <ejb-name>cif_CachedEntityPK</ejb-name>
> <configuration-name>Standard CMP 2.x EntityBean with cache invalidation</configuration-name>
> <cache-invalidation>true</cache-invalidation>
> </entity>
> Failure:
> 2008-02-01 23:32:04,875 DEBUG [org.jboss.ejb.plugins.AbstractInstanceCache] Starting InvalidableEntityInstanceCache...
> 2008-02-01 23:32:04,878 DEBUG [org.jboss.ejb.EntityContainer] Starting failed jboss.j2ee:jndiName=local/cif_CachedEntityPK at 8115601,service=EJB
> java.lang.NullPointerException
> at org.jboss.ejb.plugins.InvalidableEntityInstanceCache.start(InvalidableEntityInstanceCache.java:123)
> at org.jboss.ejb.EntityContainer.startService(EntityContainer.java:352)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:299)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
> at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
> at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
> at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
> at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
> at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:167)
> at $Proxy5.start(Unknown Source)
> at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
> at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
> at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
> at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
> at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
> at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:327)
> at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:255)
> at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1309)
> at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:734)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:862)
> at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:784)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:622)
> at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:411)
> at org.jboss.system.ServiceController.doChange(ServiceController.java:659)
> at org.jboss.system.ServiceController.start(ServiceController.java:431)
> .....
> Problem is JBossEntityMetaData.getCacheInvalidationConfig() can return null if jobss.xml doesn't include a cache-invalidation-config element; in 4.x it wouldn't because a default value would be set.
> Likely solution is either 1) to add a JBossEntityMetaData.determineCacheInvalidationConfig() method or 2) just lazy create a default config in JBossEntityMetaData.getCacheInvalidationConfig(). The latter is a simpler solution; the former is used elsewhere when there is a need to merge metadata from a <container-configuration/>, but there is no cache invalidation configuration in <container-configuration/>.
> Either way, this will require a new jboss-metadata release.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list