We don't override isVisible() and we don't call setVisible() on the save button.
But we do on the container.
The container starts off hidden and an AjaxTimer is used to set it visible.



On Nov 30, 2010, at 1:57 AM, Matthias Keller wrote:

> One other thing to check is, do you have a custom isVisible() override in the 
> container or do you explicitly set it to visible/invisible using setVisible()?
> If the former, this logic will usually be re-evaluated upon form submission 
> and if that logic depends on some state which might change upon submission, 
> you might get exactly that error.
> 
> Matt
> 
> On 2010-11-29 20:21, Igor Vaynberg wrote:
>> another possibility, if this page is using hybrid url coding strategy,
>> is that the session expires and the form is submitted against a new
>> instance of the page - where the button is not visible.
>> 
>> -igor
>> 
>> On Mon, Nov 29, 2010 at 11:05 AM, Douglas Ferguson
>> <doug...@douglasferguson.us>  wrote:
>>> The problem is that I can't recreate this error, but I see it in production 
>>> alot.
>>> 
>>> So I have no way of looking at the action url.
>>> 
>>> D/
>>> 
>>> 
>>> On Nov 29, 2010, at 12:59 PM, Igor Vaynberg wrote:
>>> 
>>>> easy.
>>>> 
>>>> the form's action url points to a version of the page where the button
>>>> is not visible. so when the button is clicked and the form is
>>>> submitted wicket rolls back the version of the page to one where
>>>> button is not visible and you get the error. not sure that is what is
>>>> happening in your app, but its one possible explanation. look at
>>>> form's url and make sure none of your ajax actions are changing the
>>>> page version.
>>>> 
>>>> -igor
>>>> 
>>>> On Mon, Nov 29, 2010 at 10:41 AM, Douglas Ferguson
>>>> <doug...@douglasferguson.us>  wrote:
>>>>> We do toggle the visibility of the web markup container that contains the 
>>>>> button.
>>>>> 
>>>>> Here's how it works.
>>>>> 
>>>>> 1) Page loads and the container is hidden
>>>>> 2) An ajax timer is used to watch for state to change
>>>>> 3) When state changes we make the container visible (which then makes the 
>>>>> submit button visible)
>>>>> 
>>>>> How could they user manage to click on the save button when is it not 
>>>>> visible?
>>>>> 
>>>>> The only thing I can think of is that this could be some back button 
>>>>> issue.
>>>>> But then again, I'm not sure how that would manifest...
>>>>> 
>>>>> D/
>>>>> 
>>>>> On Nov 29, 2010, at 11:25 AM, Igor Vaynberg wrote:
>>>>> 
>>>>>> in order for component to be visible all of its parents have to be
>>>>>> visible from the page down to the component. same for the enabled
>>>>>> state.
>>>>>> 
>>>>>> -igor
>>>>>> 
>>>>>> On Mon, Nov 29, 2010 at 9:21 AM, Douglas Ferguson
>>>>>> <doug...@douglasferguson.us>  wrote:
>>>>>>> Hmm... even if we aren't changing the visibility of the button?
>>>>>>> 
>>>>>>> On Nov 29, 2010, at 10:42 AM, Marco Mancini wrote:
>>>>>>> 
>>>>>>>> try to set
>>>>>>>> 
>>>>>>>> mybutton.setOutputMarkupPlaceholderTag(true);
>>>>>>>> 
>>>>>>>> bye
>>>>>>>> marco
>>>>>>>> 
>>>>>>>> 2010/11/29 Martin Grigorov<mgrigo...@apache.org>
>>>>>>>> 
>>>>>>>>> On Mon, Nov 29, 2010 at 4:46 PM, Douglas Ferguson<
>>>>>>>>> doug...@douglasferguson.us>  wrote:
>>>>>>>>> 
>>>>>>>>>> We have not overridden isVisible, nor have we do we have a popup 
>>>>>>>>>> modal.
>>>>>>>>>> That's why I was asking if this could be a back button issue.
>>>>>>>>>> 
>>>>>>>>>> The only thing we do is set the button enabled. Could this be the 
>>>>>>>>>> problem
>>>>>>>>>> even thought he message it talking about visibility?
>>>>>>>>>> 
>>>>>>>>> No. There is a separate check for enabled state. It is definitely for
>>>>>>>>> visibility.
>>>>>>>>> 
>>>>>>>>>> D/
>>>>>>>>>> 
>>>>>>>>>> On Nov 29, 2010, at 3:15 AM, Martin Grigorov wrote:
>>>>>>>>>> 
>>>>>>>>>>> Here is another scenario:
>>>>>>>>>>> 
>>>>>>>>>>> Ajax request sets the visibility of the submit button (or its 
>>>>>>>>>>> parent)
>>>>>>>>> to
>>>>>>>>>>> false but forgets to repaint the button so it is still visible for 
>>>>>>>>>>> the
>>>>>>>>>> user.
>>>>>>>>>>> Then the user clicks on this button, it fires and then the backend
>>>>>>>>> shows
>>>>>>>>>>> this message - the button is invisible so it cannot be clicked.
>>>>>>>>>>> 
>>>>>>>>>>> On Mon, Nov 29, 2010 at 9:04 AM, Chris Colman
>>>>>>>>>>> <chr...@stepaheadsoftware.com>wrote:
>>>>>>>>>>> 
>>>>>>>>>>>> A back button where?
>>>>>>>>>>>> 
>>>>>>>>>>>> The form is on a page and has a submit button only. If there is an
>>>>>>>>> error
>>>>>>>>>>>> a ModalWindow pops up - it only has an OK button which is meant to
>>>>>>>>> make
>>>>>>>>>>>> the ModalWindow simply disappear and thus re-enable the page 
>>>>>>>>>>>> beneath -
>>>>>>>>>>>> the one with the form on it.
>>>>>>>>>>>> 
>>>>>>>>>>>> Chris
>>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>>> From: Douglas Ferguson [mailto:doug...@douglasferguson.us]
>>>>>>>>>>>>> Sent: Monday, 29 November 2010 6:53 PM
>>>>>>>>>>>>> To: users@wicket.apache.org
>>>>>>>>>>>>> Subject: Re: component not visible exception
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Could this be happening because of the back button?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> D/
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On Nov 28, 2010, at 4:54 AM, Chris Colman wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> I had a similar problem. In my scenario it occurred when a
>>>>>>>>>>>> ModalWindow
>>>>>>>>>>>>>> was brought up when a form failed validation. When they clicked 
>>>>>>>>>>>>>> ok
>>>>>>>>> to
>>>>>>>>>>>>>> close the ModalWindow and then clicked Submit on the form again I
>>>>>>>>> got
>>>>>>>>>>>> a
>>>>>>>>>>>>>> similar message saying that the Submit button was no longer 
>>>>>>>>>>>>>> visible.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> It doesn't happen if I use the normal validation 'feedback' 
>>>>>>>>>>>>>> panel to
>>>>>>>>>>>>>> display the validation error messages.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Chris
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> -----Original Message-----
>>>>>>>>>>>>>>> From: Douglas Ferguson [mailto:doug...@douglasferguson.us]
>>>>>>>>>>>>>>> Sent: Saturday, 27 November 2010 3:13 AM
>>>>>>>>>>>>>>> To: Wicket Mailing List List
>>>>>>>>>>>>>>> Subject: component not visible exception
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> I have an error I've been seeing in the production logs for 
>>>>>>>>>>>>>>> awhile
>>>>>>>>>>>> now
>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>> haven't been able to to figure it out.
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> My thought is that it is due to a stale page or the back button,
>>>>>>>>> but
>>>>>>>>>>>> it
>>>>>>>>>>>>>>> seems to me that it is happening alot, so I thought I might
>>>>>>>>> inquire.
>>>>>>>>>>>>>>> Any thoughts on what might be causing this and how to avoid it?
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 2010-11-26 08:36:36,676 ERROR [TP-Processor34] 
>>>>>>>>>>>>>>> wicket.RequestCycle
>>>>>>>>> -
>>>>>>>>>>>>>> Submit
>>>>>>>>>>>>>>> Button add (path=dataPanel:contentCenterBox:addUserForm:add) is 
>>>>>>>>>>>>>>> not
>>>>>>>>>>>>>> visible
>>>>>>>>>>>>>>> org.apache.wicket.WicketRuntimeException: Submit Button add
>>>>>>>>>>>>>>> (path=dataPanel:contentCenterBox:addUserForm:add) is not visible
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>> org.apache.wicket.markup.html.form.Form$2.component(Form.java:622)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:89
>>>>>>>>>>>>>> 9)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:91
>>>>>>>>>>>>>> 4)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:91
>>>>>>>>>>>>>> 4)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:91
>>>>>>>>>>>>>> 4)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.markup.html.form.Form.findSubmittingButton(Form.java:
>>>>>>>>>>>>>> 604)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>>>>> org.apache.wicket.markup.html.form.Form.onFormSubmitted(Form.java:899)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.ajax.form.AjaxFormSubmitBehavior.onEvent(AjaxFormSubm
>>>>>>>>>>>>>> itBe
>>>>>>>>>>>>>>> havior.java:135)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java
>>>>>>>>>>>>>> :177
>>>>>>>>>>>>>>> )
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDe
>>>>>>>>>>>>>> faul
>>>>>>>>>>>>>>> tAjaxBehavior.java:300)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.request.target.component.listener.BehaviorRequestTarg
>>>>>>>>>>>>>> et.p
>>>>>>>>>>>>>>> rocessEvents(BehaviorRequestTarget.java:119)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(A
>>>>>>>>>>>>>> bstr
>>>>>>>>>>>>>>> actRequestCycleProcessor.java:92)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.jav
>>>>>>>>>>>>>> a:12
>>>>>>>>>>>>>>> 50)
>>>>>>>>>>>>>>>   at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329)
>>>>>>>>>>>>>>>   at 
>>>>>>>>>>>>>>> org.apache.wicket.RequestCycle.steps(RequestCycle.java:1436)
>>>>>>>>>>>>>>>   at 
>>>>>>>>>>>>>>> org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:48
>>>>>>>>>>>>>> 4)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java
>>>>>>>>>>>>>> :317
>>>>>>>>>>>>>>> )
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic
>>>>>>>>>>>>>> atio
>>>>>>>>>>>>>>> nFilterChain.java:215)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil
>>>>>>>>>>>>>> terC
>>>>>>>>>>>>>>> hain.java:188)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVal
>>>>>>>>>>>>>> ve.j
>>>>>>>>>>>>>>> ava:213)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextVal
>>>>>>>>>>>>>> ve.j
>>>>>>>>>>>>>>> ava:172)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.jav
>>>>>>>>>>>>>> a:12
>>>>>>>>>>>>>>> 7)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.jav
>>>>>>>>>>>>>> a:11
>>>>>>>>>>>>>>> 7)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve
>>>>>>>>>>>>>> .jav
>>>>>>>>>>>>>>> a:108)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
>>>>>>>>>>>>>> 151)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>>>>> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>> org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java
>>>>>>>>>>>>>> :703
>>>>>>>>>>>>>>> )
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket
>>>>>>>>>>>>>> .jav
>>>>>>>>>>>>>>> a:895)
>>>>>>>>>>>>>>>   at
>>>>>>>>>>>>>>> 
>>>>>>>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPoo
>>>>>>>>>>>>>> l.ja
>>>>>>>>>>>>>>> va:689)
>>>>>>>>>>>>>>>   at java.lang.Thread.run(Unknown Source)
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to