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
<[email protected]>  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
<[email protected]>  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
<[email protected]>  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<[email protected]>

On Mon, Nov 29, 2010 at 4:46 PM, Douglas Ferguson<
[email protected]>  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
<[email protected]>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:[email protected]]
Sent: Monday, 29 November 2010 6:53 PM
To: [email protected]
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:[email protected]]
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)




Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to