I've found what I think is a little bug.
I create a new 4.0 project using maven, package it and start it up using cargo.
I run through set up just fine and restart.
During the ensuing startup I get a bunch of error messages like this:
[INFO] [talledLocalContainer] 13:56:31,774 [main] INFO com.jivesoftware.community.util.ClassPathUtils - JAR copy for resource 'jar:file:/C:/dev/projects/vistage/vistage-sitecore-integration/web/target/tomcat6x/webapps/jive/WEB-INF/lib/jive-sbs-employee-4.0.0.jar!/resources/spelling'.
[INFO] [talledLocalContainer] 13:56:31,790 [main] ERROR com.jivesoftware.community.util.ClassPathUtils - Unexpected resource scheme: 'jar:file:/C:/dev/projects/vistage/vistage-sitecore-integration/web/target/tomcat6x/webapps/jive/WEB-INF/lib/jive-sbs-employee-4.0.0.jar!/resources/spelling'. Resource 'resources/spelling' not copied.
[INFO] [talledLocalContainer] 13:56:31,790 [main] INFO com.jivesoftware.community.util.ClassPathUtils - JAR copy for resource 'jar:file:/C:/dev/projects/vistage/vistage-sitecore-integration/web/target/tomcat6x/webapps/jive/WEB-INF/lib/jive-sbs-employee-4.0.0.jar!/resources/images/attachments'.
[INFO] [talledLocalContainer] 13:56:31,790 [main] ERROR com.jivesoftware.community.util.ClassPathUtils - Unexpected resource scheme: 'jar:file:/C:/dev/projects/vistage/vistage-sitecore-integration/web/target/tomcat6x/webapps/jive/WEB-INF/lib/jive-sbs-employee-4.0.0.jar!/resources/images/attachments'. Resource 'resources/images/attachments' not copied.
Which then leads to this:
[INFO] [talledLocalContainer] 2009-11-06 13:56:54,774 [main] [:] ERROR com.jivesoftware.community.objecttype.impl.ObjectTypeManagerImpl - Error initializing content type com.jivesoftware.community.objecttype.impl.AnnouncementObjectType@84b2c2
[INFO] [talledLocalContainer] java.lang.StackOverflowError
[INFO] [talledLocalContainer] at java.lang.ThreadLocal.get(ThreadLocal.java:125)
[INFO] [talledLocalContainer] at org.springframework.transaction.interceptor.TransactionAspectSupport$TransactionInfo.bindToThread(TransactionAspectSupport.java:440)
[INFO] [talledLocalContainer] at org.springframework.transaction.interceptor.TransactionAspectSupport$TransactionInfo.access$100(TransactionAspectSupport.java:394)
[INFO] [talledLocalContainer] at org.springframework.transaction.interceptor.TransactionAspectSupport.prepareTransactionInfo(TransactionAspectSupport.java:307)
[INFO] [talledLocalContainer] at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:272)
[INFO] [talledLocalContainer] at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:220)
[INFO] [talledLocalContainer] at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$before$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:63)
[INFO] [talledLocalContainer] at com.jivesoftware.community.impl.DbJiveProperties.get(DbJiveProperties.java:192)
[INFO] [talledLocalContainer] at com.jivesoftware.community.impl.DbJiveProperties.get(DbJiveProperties.java:34)
[INFO] [talledLocalContainer] at com.jivesoftware.community.JiveGlobals.getJiveProperty(JiveGlobals.java:674)
[INFO] [talledLocalContainer] at com.jivesoftware.util.spell.SpellChecker.init(SpellChecker.java:486)
[INFO] [talledLocalContainer] at com.jivesoftware.util.spell.SpellChecker.getAvailableLanguages(SpellChecker.java:165)
[INFO] [talledLocalContainer] at com.jivesoftware.community.web.JiveResourceResolver.resetLanguageString(JiveResourceResolver.java:53)
[INFO] [talledLocalContainer] at com.jivesoftware.util.spell.SpellChecker.init(SpellChecker.java:611)
[INFO] [talledLocalContainer] at com.jivesoftware.util.spell.SpellChecker.getAvailableLanguages(SpellChecker.java:165)
[INFO] [talledLocalContainer] at com.jivesoftware.community.web.JiveResourceResolver.resetLanguageString(JiveResourceResolver.java:53)
[INFO] [talledLocalContainer] at com.jivesoftware.util.spell.SpellChecker.init(SpellChecker.java:611)
[INFO] [talledLocalContainer] at com.jivesoftware.util.spell.SpellChecker.getAvailableLanguages(SpellChecker.java:165)
i.e an infinite loop / stack overflow initializing the spellchecker
This only happens on windows. So I think what's happening is that your ClassPathUtils are having trouble with the silly windows paths C:/ etc, and are not able to copy the spelling files to JIVE_HOME, which in turn causes the infinite loop.
So there seem to be a couple of problems here. (As a very minor side issue, com/jivesoftware/util/spell isn't in the source jar)
Anybody else run into this?