Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0002613 [Resin] major always 04-20-08 21:57 04-22-08 09:50
Reporter markus View Status public  
Assigned To ferg
Priority normal Resolution fixed  
Status closed   Product Version 3.1.6
Summary 0002613: Webbeans+Amber causes AmberRuntimeException, illegal instance class
Description I'm testing Amber and webbeans on MacOS X 10.5.2/Java 1.5.0_13, and with the combination of a Component that references a persistence bean that is going to be enhanced, I get (at deploy)

[06:44:05.277] {main} WebApp[http://localhost:8080/resintest] [^] error
[06:44:05.279] {main} com.caucho.amber.AmberRuntimeException: 'imba.db.Movie' with classloader EnvironmentClassLoader[web-app:http://localhost:8080/resintest] [^] is an illegal instance class
[06:44:05.279] {main} at com.caucho.amber.type.AbstractEnhancedType.getInstanceClass(AbstractEnhancedType.java:287)
[06:44:05.279] {main} at com.caucho.amber.type.EntityType.getInstanceClass(EntityType.java:58)
[06:44:05.279] {main} at com.caucho.amber.entity.AmberEntityHome.init(AmberEntityHome.java:186)
[06:44:05.279] {main} at com.caucho.amber.manager.AmberPersistenceUnit.initEntityHomes(AmberPersistenceUnit.java:1398)
[06:44:05.279] {main} at com.caucho.amber.manager.AmberContainer.startPersistenceUnits(AmberContainer.java:809)
[06:44:05.279] {main} at com.caucho.amber.manager.AmberContainer.start(AmberContainer.java:567)
[06:44:05.279] {main} at com.caucho.config.j2ee.InjectIntrospector.generatePersistenceContext(InjectIntrospector.java:476)
[06:44:05.279] {main} at com.caucho.config.j2ee.InjectIntrospector.introspect(InjectIntrospector.java:377)
[06:44:05.279] {main} at com.caucho.config.j2ee.InjectIntrospector.introspectInjectImpl(InjectIntrospector.java:210)
[06:44:05.279] {main} at com.caucho.config.j2ee.InjectIntrospector.introspectInject(InjectIntrospector.java:183)
[06:44:05.279] {main} at com.caucho.webbeans.component.ClassComponent.bind(ClassComponent.java:390)
[06:44:05.279] {main} at com.caucho.webbeans.cfg.WbWebBeans.bind(WbWebBeans.java:285)
[06:44:05.279] {main} at com.caucho.webbeans.manager.WebBeansContainer.bind(WebBeansContainer.java:958)
[06:44:05.279] {main} at com.caucho.webbeans.manager.WebBeansContainer.environmentStart(WebBeansContainer.java:995)
[06:44:05.279] {main} at com.caucho.loader.EnvironmentClassLoader.start(EnvironmentClassLoader.java:572)
[06:44:05.279] {main} at com.caucho.server.webapp.WebApp.start(WebApp.java:1823)
[06:44:05.279] {main} at com.caucho.server.deploy.DeployController.startImpl(DeployController.java:667)
[06:44:05.279] {main} at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:72)
[06:44:05.279] {main} at com.caucho.server.deploy.DeployController.startOnInit(DeployController.java:549)
[06:44:05.279] {main} at com.caucho.server.deploy.DeployContainer.start(DeployContainer.java:160)
[06:44:05.279] {main} at com.caucho.server.webapp.WebAppContainer.start(WebAppContainer.java:659)
[06:44:05.279] {main} at com.caucho.server.host.Host.start(Host.java:437)
[06:44:05.279] {main} at com.caucho.server.deploy.DeployController.startImpl(DeployController.java:667)
[06:44:05.279] {main} at com.caucho.server.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:72)
[06:44:05.279] {main} at com.caucho.server.deploy.DeployController.startOnInit(DeployController.java:549)
[06:44:05.279] {main} at com.caucho.server.deploy.DeployContainer.start(DeployContainer.java:160)
[06:44:05.279] {main} at com.caucho.server.host.HostContainer.start(HostContainer.java:484)
[06:44:05.279] {main} at com.caucho.server.cluster.Server.start(Server.java:1217)
[06:44:05.279] {main} at com.caucho.server.cluster.Cluster.startServer(Cluster.java:710)
[06:44:05.279] {main} at com.caucho.server.cluster.ClusterServer.startServer(ClusterServer.java:528)
[06:44:05.279] {main} at com.caucho.server.resin.Resin.start(Resin.java:695)
[06:44:05.279] {main} at com.caucho.server.resin.Resin.initMain(Resin.java:1139)
[06:44:05.279] {main} at com.caucho.server.resin.Resin.main(Resin.java:1341)


When the components @Component annotation is removed the web-app works (and the persistence beans are properly enhanced), but of course the components are not available.

To me it looks like the initialization order is wrong and that the Amber container should be started before any webbeans are loaded. Now a webbean that references the imba.db.Movie bean is loaded, the Amber is trying to enhance it, but since the original class is already loaded it fails to enhance it.
Additional Information Tested on both 3.1.5 and 3.1.6 (3.1.s080417).
Attached Files

- Relationships

- Notes
(0003001)
ferg
04-22-08 09:50

jpa/004{0,1}

If possible, please see if you can reproduce this on the next snapshot. If it's still an issue, please open a new report with more information about the configuration (e.g. order of the resin-web.xml, etc.)

 

- Issue History
Date Modified Username Field Change
04-20-08 21:57 markus New Issue
04-22-08 09:50 ferg Note Added: 0003001
04-22-08 09:50 ferg Assigned To  => ferg
04-22-08 09:50 ferg Status new => closed
04-22-08 09:50 ferg Resolution open => fixed
04-22-08 09:50 ferg Fixed in Version  => 3.1.6


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
29 total queries executed.
26 unique queries executed.
Powered by Mantis Bugtracker