You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by llama-king <p....@albourne.com> on 2013/01/28 10:53:52 UTC

Re: T5 Varargs in service methods

Sorry to dig up an old thread but seems I'm experiencing precisely the same
issue. Running on 5.3.6, injecting a service, calling method in service that
takes varargs.

Any ideas what might be the cause?

java.lang.LinkageError: loader constraint violation: when resolving method
"com.albourne.web.services.AjaxRenderHelper.render([Lorg/apache/tapestry5/corelib/components/Zone;)V"
the class loader (instance of
org/apache/tapestry5/internal/plastic/PlasticClassLoader) of the current
class, com/albourne/web/components/hf/risk/ListingConditionNew, and the
class loader (instance of runjettyrun/ProjectClassLoader) for resolved
class, com/albourne/web/services/AjaxRenderHelper, have different Class
objects for the type apestry5/corelib/components/Zone;)V used in the
signature
	at
com.albourne.web.components.hf.risk.ListingConditionNew.onSuccessFromNewConditionForm(ListingConditionNew.java:127)
	at
com.albourne.web.components.hf.risk.ListingConditionNew.dispatchComponentEvent(ListingConditionNew.java)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:935)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1112)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3100(ComponentPageElementImpl.java:61)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1057)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1054)
	at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1053)
	at
org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.triggerContextEvent(InternalComponentResourcesImpl.java:302)
	at
org.apache.tapestry5.corelib.components.Form.advised$onAction_60237a7839c(Form.java:545)
	at
org.apache.tapestry5.corelib.components.Form$Invocation_onAction_60237a7839b.proceedToAdvisedMethod(Unknown
Source)
	at
org.apache.tapestry5.internal.plastic.AbstractMethodInvocation.proceed(AbstractMethodInvocation.java:84)
	at
org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(LoggingAdvice.java:37)
	at
org.apache.tapestry5.internal.plastic.AbstractMethodInvocation.proceed(AbstractMethodInvocation.java:86)
	at org.apache.tapestry5.corelib.components.Form.onAction(Form.java)
	at
org.apache.tapestry5.corelib.components.Form.dispatchComponentEvent(Form.java)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:935)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.processEventTriggering(ComponentPageElementImpl.java:1112)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$3100(ComponentPageElementImpl.java:61)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1057)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$5.invoke(ComponentPageElementImpl.java:1054)
	at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
	at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:87)
	at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1124)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementResourcesImpl.invoke(ComponentPageElementResourcesImpl.java:146)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1053)
	at
org.apache.tapestry5.internal.services.AjaxComponentEventRequestHandler.handle(AjaxComponentEventRequestHandler.java:110)
	at
org.apache.tapestry5.internal.services.ajax.AjaxFormUpdateFilter.handle(AjaxFormUpdateFilter.java:56)
	at $ComponentEventRequestHandler_60237a78b89.handle(Unknown Source)
	at $ComponentEventRequestHandler_60237a78b84.handle(Unknown Source)
	at
org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42)
	at $ComponentEventRequestHandler_60237a78b86.handle(Unknown Source)
	at
org.apache.tapestry5.upload.internal.services.UploadExceptionFilter.handle(UploadExceptionFilter.java:75)
	at $ComponentEventRequestHandler_60237a78b86.handle(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$41.handle(TapestryModule.java:2476)
	at $ComponentEventRequestHandler_60237a78b86.handle(Unknown Source)
	at $ComponentEventRequestHandler_60237a78327.handle(Unknown Source)
	at
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handleComponentEvent(ComponentRequestHandlerTerminator.java:43)
	at
org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39)
	at $ComponentRequestHandler_60237a78329.handleComponentEvent(Unknown
Source)
	at
$ComponentRequestHandler_60237a7832d.advised$handleComponentEvent_60237a7832f(Unknown
Source)
	at
$ComponentRequestHandler_60237a7832d$Invocation_handleComponentEvent_60237a7832e.proceedToAdvisedMethod(Unknown
Source)
	at
org.apache.tapestry5.internal.plastic.AbstractMethodInvocation.proceed(AbstractMethodInvocation.java:84)
	at
org.apache.tapestry5.ioc.internal.util.InternalUtils$21$1.proceed(InternalUtils.java:1386)
	at
org.tynamo.conversations.services.RequestHandlerDecoratorImpl$1.advise(RequestHandlerDecoratorImpl.java:26)
	at
org.apache.tapestry5.ioc.internal.util.InternalUtils$21.advise(InternalUtils.java:1455)
	at
org.apache.tapestry5.internal.plastic.AbstractMethodInvocation.proceed(AbstractMethodInvocation.java:86)
	at $ComponentRequestHandler_60237a7832d.handleComponentEvent(Unknown
Source)
	at $ComponentRequestHandler_60237a782af.handleComponentEvent(Unknown
Source)
	at
org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:46)
	at $Dispatcher_60237a782b7.dispatch(Unknown Source)
	at $Dispatcher_60237a780cf.dispatch(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302)
	at
com.albourne.web.services.security.filter.CastleStatefulPageAccessControllerImpl.service(CastleStatefulPageAccessControllerImpl.java:133)
	at $StatefulPageAccessController_60237a78afb.service(Unknown Source)
	at $StatefulPageAccessController_60237a77e04.service(Unknown Source)
	at
com.albourne.web.services.security.filter.PageRequestPipeline.service(PageRequestPipeline.java:91)
	at $RequestHandler_60237a780d0.service(Unknown Source)
	at com.albourne.web.services.AppModule$4.service(AppModule.java:235)
	at $RequestFilter_60237a780cb.service(Unknown Source)
	at $RequestHandler_60237a780d0.service(Unknown Source)
	at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
	at $RequestHandler_60237a780d0.service(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902)
	at $RequestHandler_60237a780d0.service(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892)
	at $RequestHandler_60237a780d0.service(Unknown Source)
	at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
	at $RequestHandler_60237a780d0.service(Unknown Source)
	at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105)
	at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95)
	at
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
	at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119)
	at $RequestHandler_60237a780d0.service(Unknown Source)
	at $RequestHandler_60237a780c0.service(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253)
	at
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44)
	at $HttpServletRequestHandler_60237a780c2.service(Unknown Source)
	at
org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26)
	at $HttpServletRequestHandler_60237a780c2.service(Unknown Source)
	at
org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
	at $HttpServletRequestHandler_60237a780c2.service(Unknown Source)
	at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
	at $HttpServletRequestFilter_60237a780bc.service(Unknown Source)
	at $HttpServletRequestHandler_60237a780c2.service(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
	at $HttpServletRequestHandler_60237a780c2.service(Unknown Source)
	at $HttpServletRequestHandler_60237a780bb.service(Unknown Source)
	at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
	at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
	at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
	at org.mortbay.jetty.Server.handle(Server.java:326)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
	at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
	at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
	at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)




--
View this message in context: http://tapestry.1045711.n5.nabble.com/T5-Varargs-in-service-methods-tp2426400p5719600.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: T5 Varargs in service methods

Posted by Thiago H de Paula Figueiredo <th...@gmail.com>.
On Mon, 28 Jan 2013 07:53:52 -0200, llama-king <p....@albourne.com>  
wrote:

> Sorry to dig up an old thread but seems I'm experiencing precisely the  
> same issue. Running on 5.3.6, injecting a service, calling method in  
> service that takes varargs.
>
> Any ideas what might be the cause?

This doesn't look like it's related to varargs at all.

>
> java.lang.LinkageError: loader constraint violation: when resolving  
> method
> "com.albourne.web.services.AjaxRenderHelper.render([Lorg/apache/tapestry5/corelib/components/Zone;)V"
> the class loader (instance of
> org/apache/tapestry5/internal/plastic/PlasticClassLoader) of the current
> class, com/albourne/web/components/hf/risk/ListingConditionNew, and the
> class loader (instance of runjettyrun/ProjectClassLoader) for resolved
> class, com/albourne/web/services/AjaxRenderHelper, have different Class
> objects for the type apestry5/corelib/components/Zone;)V used in the
> signature

You seem to be receiving an instance of a page or component or mixin in a  
service. Never do that. As Tapestry changes that classes in a different  
classpath when they're loaded, non-transformed classes (like your service)  
only see the original, non-transformed page, component or mixin.

The solution is to create an interface, make the page, component or mixin  
implement it and then use the new interface as the parameter in your  
service.

-- 
Thiago H. de Paula Figueiredo

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org