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

Jesse Kuhnert closed TAPESTRY-1455.
-----------------------------------

    Resolution: Cannot Reproduce
      Assignee: Jesse Kuhnert

This particular thing I know works as I'm using the exact same logic in my own 
project.  The only difference is that I'm not getting a NumberFormatException 
in my page when attempting to parse an empty "" string.  ;)

p.s. You don't need submitForm = "foo" anymore, it gets wired automatically. 

> EventListener fails to update PropertySelection in Internet Explorer-only
> -------------------------------------------------------------------------
>
>                 Key: TAPESTRY-1455
>                 URL: https://issues.apache.org/jira/browse/TAPESTRY-1455
>             Project: Tapestry
>          Issue Type: Bug
>          Components: XHR/dhtml/Ajax
>    Affects Versions: 4.1.2
>         Environment: Tapestry 4.1.2 snapshot from 5-9, WinXP
>            Reporter: Ben Dotte
>         Assigned To: Jesse Kuhnert
>
> I have an EventListener that is trying to take the input from one 
> PropertySelection and update a second PropertySelection asynchronously based 
> on the input from the first one. It works great in Firefox 2 but fails in 
> IE7. In IE7, when I pick a value on the first dropdown, all values from the 
> second dropdown disappear and a stacktrace appears on the console. I couldn't 
> get it to work in IE6 either but I can't tell if it is the same problem or 
> something else going on in the page.
> Here is some example code that demonstrates the problem:
> .html:
> <form jwcid="[EMAIL PROTECTED]">
>       <span jwcid="[EMAIL PROTECTED]" value="ognl:selectedNumber" 
> model="ognl:numberModel" />
>       <br />
>       <br />
>       <span jwcid="[EMAIL PROTECTED]" value="ognl:selectedLetter" 
> model="ognl:letterModel" />
> </form>
> .java:
> @InitialValue("1")
> public abstract Integer getSelectedNumber();
>       
> public abstract String getSelectedLetter();
>       
> public IPropertySelectionModel getNumberModel()
> {
>       List<Integer> numbers = Arrays.asList(1, 2);
>       return getBasicModel(numbers);
> }
>       
> public IPropertySelectionModel getLetterModel()
> {
>       if (getSelectedNumber().intValue() == 1)
>       {
>               List<String> letters = Arrays.asList("a", "b", "c");
>               return getBasicModel(letters);
>       }
>       List<String> letters = Arrays.asList("d", "e", "f");
>       return getBasicModel(letters);
> }
>       
> private IPropertySelectionModel getBasicModel(final List items)
> {
>       return new IPropertySelectionModel()
>       {
>               public String getLabel(int index)
>               {
>                       return items.get(index).toString();
>               }
>               public Object getOption(int index)
>               {
>                       return items.get(index);
>               }
>               public int getOptionCount()
>               {
>                       return items.size();
>               }
>               public String getValue(int index)
>               {
>                       return Integer.toString(index);
>               }
>               public boolean isDisabled(int index)
>               {
>                       return false;
>               }
>               public Object translateValue(String value)
>               {
>                       return getOption(Integer.parseInt(value));
>               }
>       };
> }
>       
> @EventListener(targets="numbers", events="onchange", submitForm="theForm")
> public void numberSelected(IRequestCycle cycle)
> {
>       try
>       {
>               cycle.getResponseBuilder().updateComponent("letters");
>       }
>       catch (Exception e)
>       {
>               e.printStackTrace();
>       }
> }
> The stacktrace I get on the console is as follows:
> org.apache.hivemind.ApplicationRuntimeException: For input string: "" 
> [context:/WEB-INF/app/DirectorAccount.html]
>       at 
> org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:474)
>       at org.apache.tapestry.form.Form.trigger(Form.java:289)
>       at 
> org.apache.tapestry.engine.DirectService.triggerComponent(DirectService.java:166)
>       at 
> org.apache.tapestry.engine.DirectService.service(DirectService.java:142)
>       at $IEngineService_1127198abca.service($IEngineService_1127198abca.java)
>       at 
> org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(EngineServiceOuterProxy.java:72)
>       at 
> org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:246)
>       at 
> org.apache.tapestry.services.impl.InvokeEngineTerminator.service(InvokeEngineTerminator.java:54)
>       at 
> $WebRequestServicer_1127198aba3.service($WebRequestServicer_1127198aba3.java)
>       at 
> $WebRequestServicer_1127198ab9f.service($WebRequestServicer_1127198ab9f.java)
>       at 
> org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service(WebRequestServicerPipelineBridge.java:61)
>       at 
> $ServletRequestServicer_1127198ab81.service($ServletRequestServicer_1127198ab81.java)
>       at 
> org.apache.tapestry.request.DecodedRequestInjector.service(DecodedRequestInjector.java:55)
>       at 
> $ServletRequestServicerFilter_1127198ab7d.service($ServletRequestServicerFilter_1127198ab7d.java)
>       at 
> $ServletRequestServicer_1127198ab83.service($ServletRequestServicer_1127198ab83.java)
>       at collective.ui.custom.HibernateFilter.service(HibernateFilter.java:37)
>       at 
> $ServletRequestServicerFilter_1127198ab7b.service($ServletRequestServicerFilter_1127198ab7b.java)
>       at 
> $ServletRequestServicer_1127198ab83.service($ServletRequestServicer_1127198ab83.java)
>       at 
> collective.ui.custom.LuceneIndexFilter.service(LuceneIndexFilter.java:24)
>       at 
> $ServletRequestServicerFilter_1127198ab79.service($ServletRequestServicerFilter_1127198ab79.java)
>       at 
> $ServletRequestServicer_1127198ab83.service($ServletRequestServicer_1127198ab83.java)
>       at 
> org.apache.tapestry.multipart.MultipartDecoderFilter.service(MultipartDecoderFilter.java:52)
>       at 
> $ServletRequestServicerFilter_1127198ab77.service($ServletRequestServicerFilter_1127198ab77.java)
>       at 
> $ServletRequestServicer_1127198ab83.service($ServletRequestServicer_1127198ab83.java)
>       at 
> org.apache.tapestry.services.impl.SetupRequestEncoding.service(SetupRequestEncoding.java:53)
>       at 
> $ServletRequestServicerFilter_1127198ab7f.service($ServletRequestServicerFilter_1127198ab7f.java)
>       at 
> $ServletRequestServicer_1127198ab83.service($ServletRequestServicer_1127198ab83.java)
>       at 
> $ServletRequestServicer_1127198ab70.service($ServletRequestServicer_1127198ab70.java)
>       at 
> org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:123)
>       at 
> collective.ui.CollectiveApplicationServlet.doService(CollectiveApplicationServlet.java:71)
>       at 
> org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:168)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>       at 
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
>       at 
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:832)
>       at 
> collective.servlet.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:32)
>       at 
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:823)
>       at 
> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
>       at 
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:556)
>       at org.mortbay.http.HttpContext.handle(HttpContext.java:1563)
>       at 
> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:623)
>       at org.mortbay.http.HttpContext.handle(HttpContext.java:1515)
>       at org.mortbay.http.HttpServer.service(HttpServer.java:956)
>       at org.mortbay.http.HttpConnection.service(HttpConnection.java:814)
>       at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:981)
>       at org.mortbay.http.HttpConnection.handle(HttpConnection.java:831)
>       at 
> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
>       at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
>       at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
> Caused by: java.lang.NumberFormatException: For input string: ""
>       at java.lang.NumberFormatException.forInputString(Unknown Source)
>       at java.lang.Integer.parseInt(Unknown Source)
>       at java.lang.Integer.parseInt(Unknown Source)
>       at 
> collective.md.ui.pages.DirectorAccount$1.translateValue(DirectorAccount.java:89)
>       at 
> org.apache.tapestry.form.PropertySelection.rewindFormComponent(PropertySelection.java:120)
>       at 
> org.apache.tapestry.form.AbstractFormComponent.renderComponent(AbstractFormComponent.java:94)
>       at 
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
>       at 
> org.apache.tapestry.services.impl.DojoAjaxResponseBuilder.render(DojoAjaxResponseBuilder.java:590)
>       at 
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:537)
>       at 
> org.apache.tapestry.form.FormSupportImpl.rewind(FormSupportImpl.java:603)
>       at org.apache.tapestry.form.Form.renderComponent(Form.java:205)
>       at 
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:724)
>       at 
> org.apache.tapestry.services.impl.DojoAjaxResponseBuilder.render(DojoAjaxResponseBuilder.java:590)
>       at org.apache.tapestry.form.Form.rewind(Form.java:278)
>       at 
> org.apache.tapestry.engine.RequestCycle.rewindForm(RequestCycle.java:453)
>       ... 48 more

-- 
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