Seam applications continuously redeploy in AS-5.1.0
jaikiran Jun 11, 2009 10:44 AMA couple of users have now reported an issue with Seam applications in AS-5.1.0. The issue causes the applications to continuously redeploy without any changes in the app. The issue is specific to Seam apps.
Here are the 2 threads:
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=156752
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=155974
The issue is because of the *.spdia or *.jsfdia files that get added to the metadata locations of a Seam app (.war/WEB-INF). However, the extension of those files doesn't matter as long as the extension is not a .xml. So any files that have a non .xml extension in the metadata location (WEB-INF) of a Seam application causes the app to continuously redeploy.
The piece of code that causes this is:
List<VirtualFile> children = mdpVF.getChildren(filter); String mdpPathName = mdpVF.getPathName(); Set<String> leaves = getCache().getLeaves(mdpPathName); // do we have some new files or some were deleted if (leaves != null && children != null && leaves.size() != children.size()) { if (log.isTraceEnabled()) log.trace("Metadata files number changed, old: " + leaves + ", now: " + children); return true; }
Here's the output from the logs for this piece of code:
2009-06-11 18:54:01,957 TRACE [org.jboss.deployers.vfs.spi.structure.modified.MetaDataStructureModificationChecker] (HDScanner) Metadata files number changed, old: [myapp.ear/myapp.war/WEB-INF/pages.xml.unknownexttype, myapp.ear/myapp.war/WEB-INF/web.xml, myapp.ear/myapp.war/WEB-INF/components.xml], now: [FileHandler@16915265[path=myapp.ear/myapp.war/WEB-INF/components.xml context=file:/home/me/jboss-5.1.0.GA/server/default/deploy/ real=file:/home/me/jboss-5.1.0.GA/server/default/deploy/myapp.ear/myapp.war/WEB-INF/components.xml], FileHandler@21718173[path=myapp.ear/myapp.war/WEB-INF/web.xml context=file:/home/me/jboss-5.1.0.GA/server/default/deploy/ real=file:/home/me/jboss-5.1.0.GA/server/default/deploy/myapp.ear/myapp.war/WEB-INF/web.xml]]
Interesting the presence of such files does not cause the other non-seam app to go crazy. So i am sure it has to do something with the Seam integration deployers or the SeamModificationTypeMatcher. Even after some debugging i haven't understood why this happens.