This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 183855 - Consistent class not found when deploying enterprise ear with multiple shared external source roots - works fine deploying from command line
Summary: Consistent class not found when deploying enterprise ear with multiple shared...
Status: RESOLVED WONTFIX
Alias: None
Product: serverplugins
Classification: Unclassified
Component: GlassFish (show other bugs)
Version: 6.x
Hardware: PC Linux
: P3 normal (vote)
Assignee: TomasKraus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-12 01:49 UTC by davidacampbell
Modified: 2012-09-14 11:32 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description davidacampbell 2010-04-12 01:49:22 UTC
I have a J2EE ear that is being built with a web and ejb component.  The web and ejb components have a shared external source root because the existing source for both (created without netbeans) is in the one project source directory tree.

The whole project ear builds fine and can be deployed on the command line without trouble, but deploying from netbeans consistently fails.  I am testing with nightly build 201004110201.

The problem can be avoided on unix by making src2 a symbolic link to src and having one of the projects reference the symbolic link for its source instead but there's no workaround for windows XP since it doesn't support symbolic links.

Below is what is seen in the log on attempted deployment.  Somehow the class loader used to load EJB entity bean classes seems associated in the deployment with the source directory name used.  Does the deployment functionality somehow use the directory name to map the classloader and because the source directory is shared, gets mixed up and uses the wrong classloader?  The class for which it gets a class not found exception is definitely in the ejb jar and deploys just fine on the command line.

[#|2010-04-12T11:27:54.820+1000|SEVERE|glassfishv3.0|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=25;_ThreadName=Thread-1;|Exception while deploying the app
java.lang.RuntimeException: Error processing EjbDescriptor
	at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:273)
	at com.sun.enterprise.deployment.EjbDescriptor.visit(EjbDescriptor.java:2400)
	at com.sun.enterprise.deployment.EjbCMPEntityDescriptor.visit(EjbCMPEntityDescriptor.java:328)
	at com.sun.enterprise.deployment.EjbBundleDescriptor.visit(EjbBundleDescriptor.java:726)
	at com.sun.enterprise.deployment.Application.visit(Application.java:1744)
	at com.sun.enterprise.deployment.archivist.ApplicationArchivist.validate(ApplicationArchivist.java:774)
	at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openWith(ApplicationArchivist.java:253)
	at com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:222)
	at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:145)
	at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:78)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:612)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:554)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:262)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
	at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)
	at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
	at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
	at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
	at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: au.gov.sa.environment.tabs.ejb.entity.TenementTitleValuationBean
	at com.sun.enterprise.loader.ASURLClassLoader.findClassData(ASURLClassLoader.java:736)
	at com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:626)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:218)
	... 39 more
|#]
Comment 1 TomasKraus 2012-05-23 08:43:16 UTC
Targeting this after Toling SDK will be integrated because we are actually doing a lot of changes in deployment code.

We should test this scenario again when we are done and eventually fix this bug.
Comment 2 TomasKraus 2012-05-23 08:44:51 UTC
Assigning to myself until Tolling SDK will be finished.
Comment 3 TomasKraus 2012-09-14 10:56:18 UTC
Do you still have this issue with NetBeans 7.2? Or try last 7.3 nightly build to make sure there is not such an issue future release 7.3.

Also some sample application to reproduce this issue would be helpful.
Comment 4 davidacampbell 2012-09-14 11:30:46 UTC
That project has been out of the picture for a couple years now, working for different client.  Sorry can't answer.
Comment 5 TomasKraus 2012-09-14 11:32:23 UTC
Ok, thanks anyway. I'll close this bug now.