Also, igonre the validate="required" in radiogroup - it was a typo. The issue ofcourse still occurrs when validate="required" is removed.
On Thu, Mar 6, 2008 at 5:49 AM, Adam Zimowski <[EMAIL PROTECTED]> wrote: > I have a very simple radiogroup backed by the enum (below is grossly > simplified & trimmed version from my project page), running on 5.0.10. > > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> > <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> > <head> > <title>test</title> > </head> > > <body> > > <h3>Web Registrations</h3> > > <t:form t:id="matchForm" t:clientValidation="false"> > <t:errors/> > <t:radiogroup t:value="matchType" validate="required"> > <input type="radio" t:type="radio" t:value="easyMatch"/>Easy > <input type="radio" t:type="radio" t:value="customerByIdMatch"/>By > Customer ID > </t:radiogroup> > > <input type="submit" t:type="submit" t:id="submitButton" > value="Search"/> > <input type="submit" t:type="submit" t:id="resetButton" > value="Reset"/> > > </t:form> > > </body> > </html> > > public class Registrations { > > @Persist > private MatchType _matchType; > > @Component > private Form _matchForm; > > > public MatchType getMatchType() { > return _matchType; > } > > public void setMatchType(MatchType aMatchType) { > _matchType = aMatchType; > } > > public MatchType getEasyMatch() { > return MatchType.EASY; > } > > public MatchType getCustomerByIdMatch() { > return MatchType.BY_CUSTOMER_ID; > } > > @OnEvent(component="matchForm",value="validateForm") > void validateMatch() { > if(_matchType == null) { > _matchForm.recordError("Indicate match type!"); > } > } > > @OnEvent(component="resetButton",value="selected") > void resetMatchForm() { > _matchType = null; > _matchForm.clearErrors(); > } > } > > public enum MatchType { > > EASY, BY_CUSTOMER_ID > } > > > This very simple form works as expected until changes are made to > either the template or a backing java class while jetty is running. > For example, adding some string below <h3>..</h3>: > > <h3>Web Registrations</h3> > Some live change to the template while Jetty is running... > <t:form t:id="matchForm" t:clientValidation="false"> > .... > > still works if there is no value assigned to the radiogroup (form > hasn't been submitted). However, if either of the radio buttons has > been submitted, and above change is made Tapestry throws a weird > ClassCastException on the enum as below: > > org.apache.tapestry.ioc.internal.util.TapestryException > com.kkamerica.workbench.pages.chweb.regfix.MatchType > > java.lang.ClassCastException > com.kkamerica.workbench.pages.chweb.regfix.MatchType > > Stack trace > > com.kkamerica.workbench.pages.chweb.regfix.View.containingPageDidAttach(View.java) > > org.apache.tapestry.internal.structure.ComponentPageElementImpl$2.run(ComponentPageElementImpl.java:71) > > org.apache.tapestry.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:874) > > org.apache.tapestry.internal.structure.ComponentPageElementImpl.containingPageDidAttach(ComponentPageElementImpl.java:706) > org.apache.tapestry.internal.structure.PageImpl.attached(PageImpl.java:146) > > org.apache.tapestry.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:45) > > org.apache.tapestry.internal.services.RequestEncodingInitializerImpl.initializeRequestEncoding(RequestEncodingInitializerImpl.java:41) > > org.apache.tapestry.services.TapestryModule$39.handle(TapestryModule.java:2071) > > org.apache.tapestry.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:131) > > org.apache.tapestry.services.TapestryModule$13.service(TapestryModule.java:911) > > org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43) > > org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:529) > > org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:504) > > org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79) > > org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93) > > org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84) > > org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77) > > org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106) > > org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:891) > > org.apache.tapestry.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) > org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:164) > > org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1065) > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:365) > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185) > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689) > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391) > > org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:146) > > org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) > org.mortbay.jetty.Server.handle(Server.java:285) > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457) > > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:765) > org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:627) > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209) > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:357) > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329) > > org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475) > > This also happens if hot deploy changes are made to a java class, for > instance adding a logger with some debugs would yield the same result. > My work around right now is to restart Jetty, but because of this I'm > loosing the whole benefit of on the fly changes Tapestry offers. > > Is there a wrong setup on my part of an unexpected issue I've ran into? > > -adam > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]