[ 
https://issues.apache.org/jira/browse/TAPESTRY-1898?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Howard M. Lewis Ship updated TAPESTRY-1898:
-------------------------------------------

    Assignee: Howard M. Lewis Ship
     Summary: Strange error for component classes under JDK 1.6  (was: Leaky 
Framework: cannot implement a method named 'getServlerContext()' on a Page 
component)

I would like to resolve this bug as a duplicate of TAPESTRY-1897 if you are no 
longer seeing the odd error.

> Strange error for component classes under JDK 1.6
> -------------------------------------------------
>
>                 Key: TAPESTRY-1898
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1898
>             Project: Tapestry
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.0.6
>         Environment: JDK 1.6
> Windows XP
>            Reporter: Ezra Epstein
>            Assignee: Howard M. Lewis Ship
>
> Leaky Framework: cannot implement a method named 'getServlerContext()' on a 
> Page component.
> I've got a page that's working fine.  Was getting the ServletContext via an 
> injected ApplicationGlobals and using the ApplicationGlobals within methods 
> that needed the ServletContext.  Started to be a few methods needed it so I 
> created a simple convenience method:
>       @Inject
>       @Service("ApplicationGlobals")
>       private ApplicationGlobals applicationGlobals;
>       protected ServletContext getServletContextObj() {
>               return (applicationGlobals == null ? null : 
> applicationGlobals.getServletContext());
>       }
> And:
> org.apache.tapestry.internal.services.TransformationException
>  
> StackMapTable format error: bad class index
> transformation 
> InternalClassTransformation[
> public com.bar.baf.pages.UploadClip extends java.lang.Object
>   implements org.apache.tapestry.runtime.Component, 
> org.apache.tapestry.runtime.RenderCommand
> add default method: public void postRenderCleanup()
> <default>
> add default method: public void setupRender(org.apache.tapestry.MarkupWriter 
> $1, org.apache.tapestry.runtime.Event $2)
> <default>
> add default method: public void beginRender(org.apache.tapestry.MarkupWriter 
> $1, org.apache.tapestry.runtime.Event $2)
> <default>
> add default method: public void 
> beforeRenderTemplate(org.apache.tapestry.MarkupWriter $1, 
> org.apache.tapestry.runtime.Event $2)
> <default>
> add default method: public void 
> afterRenderTemplate(org.apache.tapestry.MarkupWriter $1, 
> org.apache.tapestry.runtime.Event $2)
> <default>
> add default method: public void 
> beforeRenderBody(org.apache.tapestry.MarkupWriter $1, 
> org.apache.tapestry.runtime.Event $2)
> <default>
> add default method: public void 
> afterRenderBody(org.apache.tapestry.MarkupWriter $1, 
> org.apache.tapestry.runtime.Event $2)
> <default>
> add default method: public void afterRender(org.apache.tapestry.MarkupWriter 
> $1, org.apache.tapestry.runtime.Event $2)
> <default>
> add default method: public void 
> cleanupRender(org.apache.tapestry.MarkupWriter $1, 
> org.apache.tapestry.runtime.Event $2)
> <default>
> add default method: public boolean 
> handleComponentEvent(org.apache.tapestry.runtime.ComponentEvent $1)
> <default>
> add default method: public org.apache.tapestry.ComponentResources 
> getComponentResources()
> <default>
> add default method: public void containingPageDidLoad()
> <default>
> add default method: public void containingPageDidDetach()
> <default>
> add default method: public void containingPageDidAttach()
> <default>
> add field: protected final 
> org.apache.tapestry.internal.InternalComponentResources _$resources;
> replace method: public final org.apache.tapestry.ComponentResources 
> getComponentResources()
> return _$resources
> ...
> Turns out that getServletContext() is "reserved" by Tapestry.  I tried 
> protected abstract ServletContext getServletContext();
> But no dice. 
> Work-around:  changed the name of the method.  That worked.  Downside: the 
> getServletContext() method name is the obvious /desirable one.
> Suggestion:  Prefer to have Tapestry not take over method names.  If it must, 
> prefer to give them scoped names that aren't likely to be used by regular 
> apps.  E.g.,  get/setTap5Foo (in general) and  getTap5ServletContext() (in 
> particular).
> Thanks.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to