Unfortunately we've got another T5.2 migration issue that I can't figure out. I wonder if this is to do with the service class reloading added in 5.2 - is there a way of disabling it to check?
I've posted the error trace below, basically a service (ScholarUniverseSearchEngine) is trying to create a class (ScholarUniverseResultsList) and failing because there seems to be 2 different versions of the service in different classloaders. It's really puzzling because this service and class is copied from another that does the exact same thing and still works okay. I tried running it by deploying a war to a standalone tomcat, and it's fine. It just seems to be a problem when running from within Eclipse using runjettyrun. We'll try some more combinations out, but if anyone can help with this it would be great. ERROR [11:53:15,737] btpool0-6 (services.TapestryModule.RequestExceptionHandler:62) - Processing of request failed with uncaught exception: loader constraint violation: when resolving method "com.proquest.apps.corelib.search.impl.scholaruniverse.ScholarUniverseResultsList.<init>(Lcom/proquest/apps/corelib/search/QueryData;Ljava/lang/String;Ljava/lang/String;Lcom/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseSearchEngine;Lcom/proquest/apps/corelib/config/ProductConfig;)V" the class loader (instance of org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator$ReloadingClassLoader) of the current class, com/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseSearchEngine, and the class loader (instance of runjettyrun/ProjectClassLoader) for resolved class, com/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseResultsList, have different Class objects for the type com/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseSearchEngine used in the signature java.lang.LinkageError: loader constraint violation: when resolving method "com.proquest.apps.corelib.search.impl.scholaruniverse.ScholarUniverseResultsList.<init>(Lcom/proquest/apps/corelib/search/QueryData;Ljava/lang/String;Ljava/lang/String;Lcom/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseSearchEngine;Lcom/proquest/apps/corelib/config/ProductConfig;)V" the class loader (instance of org/apache/tapestry5/ioc/internal/AbstractReloadableObjectCreator$ReloadingClassLoader) of the current class, com/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseSearchEngine, and the class loader (instance of runjettyrun/ProjectClassLoader) for resolved class, com/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseResultsList, have different Class objects for the type com/proquest/apps/corelib/search/impl/scholaruniverse/ScholarUniverseSearchEngine used in the signature at com.proquest.apps.corelib.search.impl.scholaruniverse.ScholarUniverseSearchEngine.executeSearch(ScholarUniverseSearchEngine.java:146) at $SearchEngine_12afb45d215.executeSearch($SearchEngine_12afb45d215.java) at Invocation$SearchEngine$executeSearch$12afb462907.invokeDelegateMethod(Invocation$SearchEngine$executeSearch$12afb462907.java) at org.apache.tapestry5.ioc.internal.services.AbstractInvocation.proceed(AbstractInvocation.java:124) at com.proquest.apps.onesearch.stats.ProfileAdvice.advise(ProfileAdvice.java:33) at org.apache.tapestry5.ioc.internal.services.AbstractInvocation.proceed(AbstractInvocation.java:128) at $SearchEngine_12afb45d216.executeSearch($SearchEngine_12afb45d216.java) at $SearchEngine_12afb45cd44.executeSearch($SearchEngine_12afb45cd44.java) at com.proquest.apps.onesearch.components.scholaruniverse.ScholarUniverseBasic.handleSearchFormSubmission(ScholarUniverseBasic.java:132) at com.proquest.apps.onesearch.components.scholaruniverse.ScholarUniverseBasic$MethodAccess_handleSearchFormSubmission_12afb45cd45.invoke(ScholarUniverseBasic$MethodAccess_handleSearchFormSubmission_12afb45cd45.java) at org.apache.tapestry5.internal.transform.BaseEventHandlerMethodInvoker.invokeEventHandlerMethod(BaseEventHandlerMethodInvoker.java:52) at org.apache.tapestry5.internal.transform.OnEventWorker$4.invokeEventHandlers(OnEventWorker.java:157) at org.apache.tapestry5.internal.transform.OnEventWorker$4.advise(OnEventWorker.java:136) at org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) at com.proquest.apps.onesearch.components.scholaruniverse.ScholarUniverseBasic.dispatchComponentEvent(ScholarUniverseBasic.java) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:942) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1132) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3000(ComponentPageElementImpl.java:72) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$7.invoke(ComponentPageElementImpl.java:1077) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$7.invoke(ComponentPageElementImpl.java:1074) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65) at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1057) at org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:141) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1073) at org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.triggerContextEvent(InternalComponentResourcesImpl.java:287) at org.apache.tapestry5.corelib.components.Form._$advised$onAction(Form.java:548) at org.apache.tapestry5.corelib.components.Form$onAction$invocation_12afb463c82.invokeAdvisedMethod(Form$onAction$invocation_12afb463c82.java) at org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:77) at org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(LoggingAdvice.java:37) at org.apache.tapestry5.internal.transform.LogWorker$1.advise(LogWorker.java:54) at org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) at org.apache.tapestry5.corelib.components.Form.onAction(Form.java) at org.apache.tapestry5.corelib.components.Form$MethodAccess_onAction_12afb45cb89.invoke(Form$MethodAccess_onAction_12afb45cb89.java) at org.apache.tapestry5.internal.transform.BaseEventHandlerMethodInvoker.invokeEventHandlerMethod(BaseEventHandlerMethodInvoker.java:52) at org.apache.tapestry5.internal.transform.OnEventWorker$4.invokeEventHandlers(OnEventWorker.java:157) at org.apache.tapestry5.internal.transform.OnEventWorker$4.advise(OnEventWorker.java:136) at org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) at org.apache.tapestry5.corelib.components.Form.dispatchComponentEvent(Form.java) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:950) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1132) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3000(ComponentPageElementImpl.java:72) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$7.invoke(ComponentPageElementImpl.java:1077) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$7.invoke(ComponentPageElementImpl.java:1074) at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:65) at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:68) at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1057) at org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:141) at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1073) at org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:81) at org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42) at $ComponentEventRequestHandler_12afb45ccf0.handle($ComponentEventRequestHandler_12afb45ccf0.java) at org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42) at $ComponentEventRequestHandler_12afb45ccf0.handle($ComponentEventRequestHandler_12afb45ccf0.java) at org.apache.tapestry5.services.TapestryModule$39.handle(TapestryModule.java:2567) at $ComponentEventRequestHandler_12afb45ccf0.handle($ComponentEventRequestHandler_12afb45ccf0.java) at $ComponentEventRequestHandler_12afb45ccec.handle($ComponentEventRequestHandler_12afb45ccec.java) at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43) at org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39) at $ComponentRequestHandler_12afb45cced.handleComponentEvent($ComponentRequestHandler_12afb45cced.java) at $ComponentRequestHandler_12afb45cacb.handleComponentEvent($ComponentRequestHandler_12afb45cacb.java) at org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46) at $Dispatcher_12afb45cacc.dispatch($Dispatcher_12afb45cacc.java) at $Dispatcher_12afb45ca9c.dispatch($Dispatcher_12afb45ca9c.java) at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:320) at com.proquest.apps.corelib.AppCoreLibModule$13.service(AppCoreLibModule.java:518) at $RequestFilter_12afb45ca9b.service($RequestFilter_12afb45ca9b.java) at $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java) at com.proquest.apps.onesearch.services.OneSearchLocalizationFilter.service(OneSearchLocalizationFilter.java:45) at $RequestFilter_12afb45ca9f.service($RequestFilter_12afb45ca9f.java) at $RequestFilter_12afb45ca97.service($RequestFilter_12afb45ca97.java) at $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java) at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) at $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java) at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:982) at $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java) at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:972) at $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java) at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) at $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java) at org.apache.tapestry5.internal.services.URLRewriterRequestFilter.service(URLRewriterRequestFilter.java:50) at $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java) at com.proquest.apps.onesearch.stats.STLRequestFilter.service(STLRequestFilter.java:50) at $RequestFilter_12afb45ca9e.service($RequestFilter_12afb45ca9e.java) at $RequestFilter_12afb45ca98.service($RequestFilter_12afb45ca98.java) at $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:80) at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103) at $RequestHandler_12afb45ca9d.service($RequestHandler_12afb45ca9d.java) at $RequestHandler_12afb45ca91.service($RequestHandler_12afb45ca91.java) at org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:271) at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) at $HttpServletRequestHandler_12afb45ca93.service($HttpServletRequestHandler_12afb45ca93.java) at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) at $HttpServletRequestFilter_12afb45ca90.service($HttpServletRequestFilter_12afb45ca90.java) at $HttpServletRequestHandler_12afb45ca93.service($HttpServletRequestHandler_12afb45ca93.java) at com.proquest.apps.onesearch.email.EmailHttpServletRequestFilter.service(EmailHttpServletRequestFilter.java:73) at $HttpServletRequestFilter_12afb45ca8e.service($HttpServletRequestFilter_12afb45ca8e.java) at $HttpServletRequestHandler_12afb45ca93.service($HttpServletRequestHandler_12afb45ca93.java) at com.proquest.apps.onesearch.services.SiteRedirectHttpServletRequestFilter.service(SiteRedirectHttpServletRequestFilter.java:45) at $HttpServletRequestFilter_12afb45ca8d.service($HttpServletRequestFilter_12afb45ca8d.java) at $HttpServletRequestHandler_12afb45ca93.service($HttpServletRequestHandler_12afb45ca93.java) at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:926) at $HttpServletRequestHandler_12afb45ca93.service($HttpServletRequestHandler_12afb45ca93.java) at $HttpServletRequestHandler_12afb45ca8a.service($HttpServletRequestHandler_12afb45ca8a.java) at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:147) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:722) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:404) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)