Ales Justin wrote:
> 1. ProfileService calls VFS.getRoot() on the ear
> 2. The VirtualFile is passed to MainDeployer.addDeployment
> 3. Structure scanning is performed, which holds on to the roots.
Only client side top root is kept,
all other (sub)roots are cleaned up at undeploy,
and new DeploymentContext (+ roots) are created an (re)deploy.
> 4. MainDeployer.process()
> 5. Undeploy is performed which invalidates the EAR ZEC
> 6. Deploy is performed which *reuses* the root in 2, so everything
> using the VDF gets the old ZEC
Only top root should get reused - the client side,
all other should be re-created.
Right, and the top is the old EAR ZEC, so it becomes a fork. The VDF
code creates new nested ZECs rooted at the old EAR ZEC. This is the true
owner of the temp.
The scan in the middle of the deployment process gets the new EAR ZEC,
and thus creates a new nested entry under that. It reuses the temp that
is attached to the WAR ZEC child of the old EAR ZEC.
http://rafb.net/p/ODGBmE10.html
--
Jason T. Greene
JBoss, a division of Red Hat