Please file an issue for at least the second issue (whitespace isn't ignored after expressions). That's definitely a regression, and caused by my recent changes to the expansion parsing.
Robert On Sep 14, 2011, at 9/1410:14 AM , Howard Lewis Ship wrote: > These looks like legitimate issues to me. I know Roger was tweaking > the regular expressions for template expansions, that could account > for the one change. The other is certainly in my domain, class > transformation. A simple test case for the class loading problem > would be useful, I'm especially concerned about which packages each > class is in. > > On Wed, Sep 14, 2011 at 5:27 AM, Sigbjørn Tvedt <[email protected]> wrote: >> Hi. >> I just did a test upgrade on one of our applications to 5.3-beta-6 (from >> 5.2.6) and I found two problem areas. >> >> **** >> The first problem I encountered are connected with abstract classes and @Log >> (I have not tried other annotations). >> >> I have a parent class and two subclasses. >> The parent is declared as a abstract class as the logic in the subclasses >> will differ slightly but they are both using Parent.tml and the same setup >> routine. >> >> public abstract class Parent { >> @Log >> public void setupRender() { >> } >> } >> public class ChildA extends Parent { >> .... >> } >> public class ChildB extends Parent { >> @Override >> public void setupRender() { >> super.setupRender(); >> } >> .... >> } >> >> >> In T5.2.6, this was acceptable, but T5.3-beta-6 gives this this error: >> org.apache.tapestry5.internal.services.RenderQueueException >> Render queue error in SetupRender[ChildA]: Unable to locate Method public >> void setupRender(): com.example.newapp.pages.ChildA.setupRender() >> activeComponents: >> ChildA (class com.example.newapp.pages.ChildA) >> java.lang.NoSuchMethodException >> com.example.newapp.pages.ChildA.setupRender() >> >> (The stacktrace are included at the end of the e-mail) >> >> >> >> Please note that the error will _only_ occur if the page ChildA is accessed >> before ChildB. Once ChildB (with the overridden method) has been accessed, >> ChildA will work as expected. >> >> >> ***** >> The second problem is that the tailing whitespace on properties are no >> longer ignored. >> ${message:greeting } will therefore give a [[missing key: greeting ]] >> while ${message:greeting} works as it should. >> >> One could agree that we should not insert the whitespace, but as the editor >> (Eclipse) is eager to insert a whitespace after writing ${, this will >> probably be a problem for several users. >> >> >> Am I breaking the conventions here, or should I file 2 jiras? >> >> >> Regards >> >> Sigbjørn Tvedt >> >> >> ----------------------------------------------------------------------------- >> Stack trace from the parent/child problem: >> java.lang.Class.getDeclaredMethod(Class.java:1954) >> org.apache.tapestry5.internal.plastic.MethodInvocationBundle.findMethod(MethodInvocationBundle.java:59) >> >> org.apache.tapestry5.internal.plastic.MethodInvocationBundle.getMethod(MethodInvocationBundle.java:42) >> >> org.apache.tapestry5.internal.plastic.AbstractMethodInvocation.getMethod(AbstractMethodInvocation.java:110) >> >> org.apache.tapestry5.ioc.internal.services.MethodLogger.entry(MethodLogger.java:63) >> >> org.apache.tapestry5.ioc.internal.services.LoggingAdvice.advise(LoggingAdvice.java:41) >> >> org.apache.tapestry5.internal.plastic.AbstractMethodInvocation.proceed(AbstractMethodInvocation.java:86) >> >> com.example.newapp.pages.Parent.setupRender(Parent.java) >> com.example.newapp.pages.Parent.setupRender(Parent.java) >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:174) >> >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:133) >> >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.render(ComponentPageElementImpl.java:181) >> >> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72) >> >> org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:124) >> >> org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37) >> >> org.apache.tapestry5.services.TapestryModule$31.renderMarkup(TapestryModule.java:1998) >> >> org.apache.tapestry5.services.TapestryModule$30.renderMarkup(TapestryModule.java:1982) >> >> org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1964) >> >> org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1949) >> >> org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1935) >> >> org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1917) >> >> org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1898) >> >> org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:47) >> >> org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) >> >> org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:64) >> >> org.apache.tapestry5.services.TapestryModule$38.handle(TapestryModule.java:2227) >> >> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) >> >> org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47) >> >> org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) >> >> org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:297) >> >> org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) >> >> org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:894) >> >> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:884) >> >> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) >> >> com.example.newapp.services.AppModule$1.service(AppModule.java:90) >> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105) >> >> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95) >> >> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) >> >> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119) >> >> org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:248) >> >> org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) >> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) >> >> org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:844) >> >> org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:160) >> >> >> >> >> -------------------- >> java.library.path >> /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server >> /usr/lib/jvm/java-6-openjdk/jre/lib/amd64 >> /usr/lib/jvm/java-6-openjdk/jre/../lib/amd64 >> /usr/java/packages/lib/amd64 >> /usr/lib/x86_64-linux-gnu/jni >> /lib/x86_64-linux-gnu >> /usr/lib/x86_64-linux-gnu >> /usr/lib/jni >> /lib >> /usr/lib >> java.runtime.name >> OpenJDK Runtime Environment >> java.runtime.version >> 1.6.0_22-b22 >> java.specification.name >> Java Platform API Specification >> java.specification.vendor >> Sun Microsystems Inc. >> java.specification.version >> 1.6 >> java.vendor >> Sun Microsystems Inc. >> java.vendor.url >> http://java.sun.com/ >> java.vendor.url.bug >> http://java.sun.com/cgi-bin/bugreport.cgi >> java.version >> 1.6.0_22 >> java.vm.info >> mixed mode >> java.vm.name >> OpenJDK 64-Bit Server VM >> java.vm.specification.name >> Java Virtual Machine Specification >> java.vm.specification.vendor >> Sun Microsystems Inc. >> java.vm.specification.version >> 1.0 >> java.vm.vendor >> Sun Microsystems Inc. >> java.vm.version >> 20.0-b11 >> > > > > -- > 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: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
