There will be a trace in the console of what Tapestry IoC was doing when it hit the issue.
However, this looks like the culprit: public static void contributeMasterObjectProvider( OrderedConfiguration<ObjectProvider> configuration, ObjectLocator locator) { configuration.add("spring", locator .autobuild(SpringObjectProvider.class)); } autobuilding will attmpt to instantiat SpringObjectProvider ... but that will itself require injection that falls into the MasterObjectProvider. Either instantiate SOP yourself, or use the proxy() method, which builds a proxy that can defer instantiation of SOP until it is actually needed. On Tue, Nov 10, 2009 at 1:55 PM, mraible <m...@raibledesigns.com> wrote: > > Hello all, > > I'm in the process of writing tests for AppFuse's Tapestry 5 integration and > I've run into an interesting issue. When I use Hibernate or JPA as backends, > my tests pass just fine. However, when I use iBATIS, they take forever and I > get an OOM error and the following shows up in my logs: > > Construction of service 'InternalRequestGlobals' has failed due to > recursion: the service depends on itself in some way. Please check > org.apache.tapestry5.internal.services.InternalRequestGlobalsImpl() (at > InternalRequestGlobalsImpl.java:22) via > org.apache.tapestry5.internal.services.InternalModule.bind(ServiceBinder) > (at InternalModule.java:65) for references to another service that is itself > dependent on service 'InternalRequestGlobals'. > > Looking at the dependencies differences, my first guess is AspectJ is > causing this, but I'm not sure. > > [INFO] +- org.appfuse:appfuse-ibatis:jar:2.1-SNAPSHOT:compile > [INFO] | +- org.appfuse:appfuse-data-common:jar:2.1-SNAPSHOT:compile > [INFO] | | +- javax.persistence:persistence-api:jar:1.0:compile > [INFO] | | +- javax.xml.bind:jaxb-api:jar:2.2:compile > [INFO] | | | \- javax.xml.stream:stax-api:jar:1.0-2:compile > [INFO] | | \- org.compass-project:compass:jar:2.1.3:compile > [INFO] | | \- org.apache.lucene:lucene-core:jar:2.4.1:compile > [INFO] | +- org.apache.ibatis:ibatis-sqlmap:jar:2.3.4.726:compile > [INFO] | +- org.aspectj:aspectjweaver:jar:1.6.6:compile > [INFO] | +- org.aspectj:aspectjrt:jar:1.6.6:compile > [INFO] | +- org.springframework:spring-aspects:jar:2.5.6:compile > [INFO] | +- commons-beanutils:commons-beanutils:jar:1.8.1:compile > [INFO] | +- org.springframework:spring-jdbc:jar:2.5.6:compile > [INFO] | | \- org.springframework:spring-tx:jar:2.5.6:compile > [INFO] | \- org.springframework:spring-orm:jar:2.5.6:compile > > > [INFO] +- org.appfuse:appfuse-hibernate:jar:2.1-SNAPSHOT:compile > [INFO] | +- org.appfuse:appfuse-data-common:jar:2.1-SNAPSHOT:compile > [INFO] | | +- javax.persistence:persistence-api:jar:1.0:compile > [INFO] | | +- javax.xml.bind:jaxb-api:jar:2.2:compile > [INFO] | | | \- javax.xml.stream:stax-api:jar:1.0-2:compile > [INFO] | | \- org.compass-project:compass:jar:2.1.3:compile > [INFO] | | \- org.apache.lucene:lucene-core:jar:2.4.1:compile > [INFO] | +- org.hibernate:hibernate-annotations:jar:3.4.0.GA:compile > [INFO] | | +- > org.hibernate:hibernate-commons-annotations:jar:3.1.0.GA:compile > [INFO] | | +- org.slf4j:slf4j-api:jar:1.4.2:compile > [INFO] | | \- dom4j:dom4j:jar:1.6.1:compile > [INFO] | +- org.hibernate:hibernate-core:jar:3.3.1.GA:compile > [INFO] | | +- antlr:antlr:jar:2.7.6:compile > [INFO] | | \- javax.transaction:jta:jar:1.1:compile > [INFO] | +- javassist:javassist:jar:3.4.GA:compile > [INFO] | +- org.slf4j:slf4j-log4j12:jar:1.5.2:compile > [INFO] | +- org.hibernate:hibernate-ehcache:jar:3.3.1.GA:compile > [INFO] | +- net.sf.ehcache:ehcache-core:jar:1.7.0:compile > [INFO] | +- commons-beanutils:commons-beanutils:jar:1.8.1:compile > [INFO] | +- org.springframework:spring-jdbc:jar:2.5.6:compile > [INFO] | | \- org.springframework:spring-tx:jar:2.5.6:compile > [INFO] | \- org.springframework:spring-orm:jar:2.5.6:compile > > I also suspect it might be coming from my SpringObjectProvider (used for > testing). > > http://source.appfuse.org/browse/~raw,r=trunk/appfuse/trunk/web/tapestry/src/test/java/org/appfuse/webapp/services/SpringObjectProvider.java > > This is added by an IntegrationTestModule: > > public class IntegrationTestModule { > > // contribution master object provider > public static void contributeMasterObjectProvider( > OrderedConfiguration<ObjectProvider> configuration, > ObjectLocator locator) { > configuration.add("spring", locator > .autobuild(SpringObjectProvider.class)); > } > } > > And wired into PageTester as follows: > > String appPackage = "com.mycompany.webapp"; > String appName = "app"; > tester = new PageTester(appPackage, appName, "src/main/webapp", > IntegrationTestModule.class); > > Any help is appreciated. > > Thanks, > > Matt > -- > View this message in context: > http://old.nabble.com/Construction-of-service-%27InternalRequestGlobals%27-has-failed-due-to-recursion%3A-tp26291936p26291936.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > -- Howard M. Lewis Ship Creator of Apache Tapestry The source for Tapestry training, mentoring and support. Contact me to learn how I can get you up and productive in Tapestry fast! (971) 678-5210 http://howardlewisship.com --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org