Tapestry team, Sven stumbled over situation in which Tapestry falls over when loading component classes, throwing an OOM exception. He and I have been looking into the problem which was first believed to be caused by a package structure being to deep. However after some closer examination, it's not that. The issue has to do with a temporary queue used to hold package names to be scanned for class files, in org.apache.tapestry.ioc.internal.services.ClassNameLocatorImpl. For more detail see the original bug report with our findings here:
http://code.google.com/p/tapestry5-components/issues/detail?id=55 What it comes down to is this: if you have a file in the components package without a file extension (such as MIT-LICENSE), Tapestry will fail to start because it will have exhausted it's available memory and have thrown a java.lang.OutOfMemoryError exception. It assumes such files are directory names, and then tacks on a '/' and pushes it on to the queue to be searched. This results in a loop that fills the queue with bogus package names until the memory is gone. Clearly this is an issue and I wanted to provide a patch, but having looked a bit at the code, I'm not sure how one can determine if the simple strings represent actual directories (as opposed to files with no extensions). A new file object could be created, but doing that for each iteration seems like it might be slow, as does querying the queue each time to see if that package is already contained. -- http://thegodcode.net --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
