[jira] Commented: (WICKET-2697) org.apache.wicket.util.listener.ChangeListenerSet should be serializable

2010-01-23 Thread Don Ferguson (JIRA)

[ 
https://issues.apache.org/jira/browse/WICKET-2697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804182#action_12804182
 ] 

Don Ferguson commented on WICKET-2697:
--

FWIW, this problem didn't become apparent until I turned on Jetty's 
HashSessionManager to persist sessions to disk.  I'm now wondering if this had 
been silently failing in production, and causing users to prematurely lose 
their sessions.  Anyway, I changed the code to use an ArrayList, and the 
serialization problem is fixed.

If this isn't meant to be stored in a session (or, by extension, as a member 
variable on a stateful page or component), it should probably be documented as 
such.


> org.apache.wicket.util.listener.ChangeListenerSet should be serializable
> 
>
> Key: WICKET-2697
> URL: https://issues.apache.org/jira/browse/WICKET-2697
> Project: Wicket
>  Issue Type: Bug
>  Components: wicket
>Affects Versions: 1.4.5
> Environment: jetty/mac
>Reporter: Don Ferguson
>Assignee: Igor Vaynberg
>
> I have an instance of org.apache.wicket.util.listener.ChangeListenerSet in my 
> session.  During session serialization, I get exceptions like: 
> 2010-01-23 14:08:09.227::WARN:  Problem restoring session bf7hquqgf9ui
> java.io.WriteAbortedException: writing aborted; 
> java.io.NotSerializableException: 
> org.apache.wicket.util.listener.ChangeListenerSet
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1309)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1910)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1834)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> at 
> org.mortbay.jetty.servlet.HashSessionManager.restoreSession(HashSessionManager.java:494)
> at 
> org.mortbay.jetty.servlet.HashSessionManager.restoreSessions(HashSessionManager.java:400)
> at 
> org.mortbay.jetty.servlet.HashSessionManager.doStart(HashSessionManager.java:81)
> at 
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at 
> org.mortbay.jetty.servlet.SessionHandler.doStart(SessionHandler.java:116)
> at 
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at 
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> at 
> org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:537)
> at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
> at 
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> at 
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> at 
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> at 
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at 
> org.mortbay.jetty.deployer.ContextDeployer.deploy(ContextDeployer.java:268)
> at 
> org.mortbay.jetty.deployer.ContextDeployer.redeploy(ContextDeployer.java:287)
> at 
> org.mortbay.jetty.deployer.ContextDeployer.access$100(ContextDeployer.java:67)
> at 
> org.mortbay.jetty.deployer.ContextDeployer$ScannerListener.fileChanged(ContextDeployer.java:99)
> at org.mortbay.util.Scanner.reportChange(Scanner.java:464)
> at org.mortbay.util.Scanner.reportDifferences(Scanner.java:330)
> at org.mortbay.util.Scanner.scan(Scanner.java:280)
> at org.mortbay.util.Scanner$1.run(Scanner.java:232)
> at java.util.TimerThread.mainLoop(Timer.java:512)
> at java.util.TimerThread.run(Timer.java:462)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Resolved: (WICKET-2697) org.apache.wicket.util.listener.ChangeListenerSet should be serializable

2010-01-23 Thread Igor Vaynberg (JIRA)

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

Igor Vaynberg resolved WICKET-2697.
---

Resolution: Won't Fix
  Assignee: Igor Vaynberg

those classes are not meant to be serializable or for you to hold them in 
session.

even if we did make the listenerset serializable you would still have to make 
sure that every listener inside is also, this would cascade down to everything 
else.

> org.apache.wicket.util.listener.ChangeListenerSet should be serializable
> 
>
> Key: WICKET-2697
> URL: https://issues.apache.org/jira/browse/WICKET-2697
> Project: Wicket
>  Issue Type: Bug
>  Components: wicket
>Affects Versions: 1.4.5
> Environment: jetty/mac
>Reporter: Don Ferguson
>Assignee: Igor Vaynberg
>
> I have an instance of org.apache.wicket.util.listener.ChangeListenerSet in my 
> session.  During session serialization, I get exceptions like: 
> 2010-01-23 14:08:09.227::WARN:  Problem restoring session bf7hquqgf9ui
> java.io.WriteAbortedException: writing aborted; 
> java.io.NotSerializableException: 
> org.apache.wicket.util.listener.ChangeListenerSet
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1309)
> at 
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1910)
> at 
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1834)
> at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
> at 
> org.mortbay.jetty.servlet.HashSessionManager.restoreSession(HashSessionManager.java:494)
> at 
> org.mortbay.jetty.servlet.HashSessionManager.restoreSessions(HashSessionManager.java:400)
> at 
> org.mortbay.jetty.servlet.HashSessionManager.doStart(HashSessionManager.java:81)
> at 
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at 
> org.mortbay.jetty.servlet.SessionHandler.doStart(SessionHandler.java:116)
> at 
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at 
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> at 
> org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:537)
> at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
> at 
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> at 
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> at 
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> at 
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> at 
> org.mortbay.jetty.deployer.ContextDeployer.deploy(ContextDeployer.java:268)
> at 
> org.mortbay.jetty.deployer.ContextDeployer.redeploy(ContextDeployer.java:287)
> at 
> org.mortbay.jetty.deployer.ContextDeployer.access$100(ContextDeployer.java:67)
> at 
> org.mortbay.jetty.deployer.ContextDeployer$ScannerListener.fileChanged(ContextDeployer.java:99)
> at org.mortbay.util.Scanner.reportChange(Scanner.java:464)
> at org.mortbay.util.Scanner.reportDifferences(Scanner.java:330)
> at org.mortbay.util.Scanner.scan(Scanner.java:280)
> at org.mortbay.util.Scanner$1.run(Scanner.java:232)
> at java.util.TimerThread.mainLoop(Timer.java:512)
> at java.util.TimerThread.run(Timer.java:462)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Created: (WICKET-2697) org.apache.wicket.util.listener.ChangeListenerSet should be serializable

2010-01-23 Thread Don Ferguson (JIRA)
org.apache.wicket.util.listener.ChangeListenerSet should be serializable


 Key: WICKET-2697
 URL: https://issues.apache.org/jira/browse/WICKET-2697
 Project: Wicket
  Issue Type: Bug
  Components: wicket
Affects Versions: 1.4.5
 Environment: jetty/mac
Reporter: Don Ferguson


I have an instance of org.apache.wicket.util.listener.ChangeListenerSet in my 
session.  During session serialization, I get exceptions like: 

2010-01-23 14:08:09.227::WARN:  Problem restoring session bf7hquqgf9ui
java.io.WriteAbortedException: writing aborted; 
java.io.NotSerializableException: 
org.apache.wicket.util.listener.ChangeListenerSet
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1309)
at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1910)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1834)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at 
org.mortbay.jetty.servlet.HashSessionManager.restoreSession(HashSessionManager.java:494)
at 
org.mortbay.jetty.servlet.HashSessionManager.restoreSessions(HashSessionManager.java:400)
at 
org.mortbay.jetty.servlet.HashSessionManager.doStart(HashSessionManager.java:81)
at 
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at 
org.mortbay.jetty.servlet.SessionHandler.doStart(SessionHandler.java:116)
at 
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at 
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at 
org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:537)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at 
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
at 
org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
at 
org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
at 
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at 
org.mortbay.jetty.deployer.ContextDeployer.deploy(ContextDeployer.java:268)
at 
org.mortbay.jetty.deployer.ContextDeployer.redeploy(ContextDeployer.java:287)
at 
org.mortbay.jetty.deployer.ContextDeployer.access$100(ContextDeployer.java:67)
at 
org.mortbay.jetty.deployer.ContextDeployer$ScannerListener.fileChanged(ContextDeployer.java:99)
at org.mortbay.util.Scanner.reportChange(Scanner.java:464)
at org.mortbay.util.Scanner.reportDifferences(Scanner.java:330)
at org.mortbay.util.Scanner.scan(Scanner.java:280)
at org.mortbay.util.Scanner$1.run(Scanner.java:232)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (WICKET-2684) Provide a way to disable "Child component has a non-safe child id"

2010-01-23 Thread Igor Vaynberg (JIRA)

[ 
https://issues.apache.org/jira/browse/WICKET-2684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804131#action_12804131
 ] 

Igor Vaynberg commented on WICKET-2684:
---

you do realize that if you use nonnumeric ids some things will break...

if you want to turn off the warning simply disable it in your logging 
configuration.

> Provide a way to disable "Child component  has a non-safe child id"
> ---
>
> Key: WICKET-2684
> URL: https://issues.apache.org/jira/browse/WICKET-2684
> Project: Wicket
>  Issue Type: Improvement
>  Components: wicket
>Affects Versions: 1.4.5
>Reporter: Marat Radchenko
>Assignee: Igor Vaynberg
>
> AbstractRepeater.onBeforeRender checks child component ids to be digit-only. 
> While i (kinda) understand reasoning behind this behavior, it is sometimes 
> not what i want.
> One of examples is user list with login acting as primary key on a stateless 
> page. Relying on index is fragile because users can be added/deleted by other 
> requests, so i want to use user login as repeater child ids, however it 
> triggers warning.
> That check should be either disableable globally or on per-component basis 
> (latter is more desired), so I can tell AbstractRepeater that i know what i'm 
> doing and deliberately want non-numeric ids.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (WICKET-2684) Provide a way to disable "Child component has a non-safe child id"

2010-01-23 Thread Marat Radchenko (JIRA)

[ 
https://issues.apache.org/jira/browse/WICKET-2684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804130#action_12804130
 ] 

Marat Radchenko commented on WICKET-2684:
-

I don't ask to remove that check. I ask to provide a way to suppress it for 
particular component.
Like, protected boolean warnIfNonNumericChild() { return true; }

> Provide a way to disable "Child component  has a non-safe child id"
> ---
>
> Key: WICKET-2684
> URL: https://issues.apache.org/jira/browse/WICKET-2684
> Project: Wicket
>  Issue Type: Improvement
>  Components: wicket
>Affects Versions: 1.4.5
>Reporter: Marat Radchenko
>Assignee: Igor Vaynberg
>
> AbstractRepeater.onBeforeRender checks child component ids to be digit-only. 
> While i (kinda) understand reasoning behind this behavior, it is sometimes 
> not what i want.
> One of examples is user list with login acting as primary key on a stateless 
> page. Relying on index is fragile because users can be added/deleted by other 
> requests, so i want to use user login as repeater child ids, however it 
> triggers warning.
> That check should be either disableable globally or on per-component basis 
> (latter is more desired), so I can tell AbstractRepeater that i know what i'm 
> doing and deliberately want non-numeric ids.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (WICKET-2684) Provide a way to disable "Child component has a non-safe child id"

2010-01-23 Thread Igor Vaynberg (JIRA)

[ 
https://issues.apache.org/jira/browse/WICKET-2684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804119#action_12804119
 ] 

Igor Vaynberg commented on WICKET-2684:
---

the check is there for a reason and will not be removed in 1.4. you will have 
to stick with the first option i mentioned.

> Provide a way to disable "Child component  has a non-safe child id"
> ---
>
> Key: WICKET-2684
> URL: https://issues.apache.org/jira/browse/WICKET-2684
> Project: Wicket
>  Issue Type: Improvement
>  Components: wicket
>Affects Versions: 1.4.5
>Reporter: Marat Radchenko
>Assignee: Igor Vaynberg
>
> AbstractRepeater.onBeforeRender checks child component ids to be digit-only. 
> While i (kinda) understand reasoning behind this behavior, it is sometimes 
> not what i want.
> One of examples is user list with login acting as primary key on a stateless 
> page. Relying on index is fragile because users can be added/deleted by other 
> requests, so i want to use user login as repeater child ids, however it 
> triggers warning.
> That check should be either disableable globally or on per-component basis 
> (latter is more desired), so I can tell AbstractRepeater that i know what i'm 
> doing and deliberately want non-numeric ids.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (WICKET-2696) PATCH: TabbedPanel should allow modifying i) tab panel id and ii) tab panel parent component.

2010-01-23 Thread Martin Makundi (JIRA)

[ 
https://issues.apache.org/jira/browse/WICKET-2696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804085#action_12804085
 ] 

Martin Makundi commented on WICKET-2696:


I will try to clarifty rationale behind the proposal:

a) it does not (hopefully) break anything

b) gives more flexibility to where the child panels are rendered. 

We have the following markup use which required such a change:







 



 

 

  
   
 

 


If markup layout is not to be broken, TabbedPanel2 must be able to addOrReplace 
the panel onto TabbedPanel1's childrens' level.




> PATCH: TabbedPanel should allow modifying i) tab panel id and ii) tab panel 
> parent component.
> -
>
> Key: WICKET-2696
> URL: https://issues.apache.org/jira/browse/WICKET-2696
> Project: Wicket
>  Issue Type: Improvement
>  Components: wicket
>Affects Versions: 1.4-RC7
>Reporter: Martin Makundi
>Priority: Minor
> Attachments: tabpanel-patch.txt
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> TabbedPanel should allow modifying i) tab panel id and ii) tab panel parent 
> component.
> Patch attached.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Issue Comment Edited: (WICKET-2696) PATCH: TabbedPanel should allow modifying i) tab panel id and ii) tab panel parent component.

2010-01-23 Thread Martin Makundi (JIRA)

[ 
https://issues.apache.org/jira/browse/WICKET-2696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804085#action_12804085
 ] 

Martin Makundi edited comment on WICKET-2696 at 1/23/10 2:17 PM:
-

I will try to clarifty rationale behind the proposal:

a) it does not (hopefully) break anything

b) gives more flexibility to where the child panels are rendered. 

We have the following markup use case which required such a change:







 



 

 

  
   
 

 


If markup layout is not to be broken, TabbedPanel2 must be able to addOrReplace 
the panel onto TabbedPanel1's childrens' level.




  was (Author: mmakundi):
I will try to clarifty rationale behind the proposal:

a) it does not (hopefully) break anything

b) gives more flexibility to where the child panels are rendered. 

We have the following markup use which required such a change:







 



 

 

  
   
 

 


If markup layout is not to be broken, TabbedPanel2 must be able to addOrReplace 
the panel onto TabbedPanel1's childrens' level.



  
> PATCH: TabbedPanel should allow modifying i) tab panel id and ii) tab panel 
> parent component.
> -
>
> Key: WICKET-2696
> URL: https://issues.apache.org/jira/browse/WICKET-2696
> Project: Wicket
>  Issue Type: Improvement
>  Components: wicket
>Affects Versions: 1.4-RC7
>Reporter: Martin Makundi
>Priority: Minor
> Attachments: tabpanel-patch.txt
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> TabbedPanel should allow modifying i) tab panel id and ii) tab panel parent 
> component.
> Patch attached.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Resolved: (WICKET-2686) CryptedUrlWebRequestCodingStrategy fails in form with method="get" - 1.5

2010-01-23 Thread Juergen Donnerstag (JIRA)

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

Juergen Donnerstag resolved WICKET-2686.


   Resolution: Duplicate
Fix Version/s: (was: 1.5-M1)
   1.4.6
 Assignee: Juergen Donnerstag

> CryptedUrlWebRequestCodingStrategy fails in form with method="get" - 1.5
> 
>
> Key: WICKET-2686
> URL: https://issues.apache.org/jira/browse/WICKET-2686
> Project: Wicket
>  Issue Type: Bug
>Affects Versions: 1.4.5
>Reporter: Scott MacKenzie
>Assignee: Juergen Donnerstag
>Priority: Minor
> Fix For: 1.4.6
>
>
> A form fails to submit when it has method="get" set in a wicket application 
> which is using CryptedUrlWebRequestCodingStrategy.
> This happens because the form is constructed by wicket like this:
> 
>
>   
>value="vcH4-yiA7z1xdg19IZiML85IPOzB2CaoynoU6UPAVS9n2G2S2bamuw" />
>
>
>
> 
> which can produce a query string in firefox like this:
> http://localhost:8080/crypt-bug/?form26_hf_0=&x=YhsA9niKQasfMz8FBHuRP1lLAZXPdZy8s1XWlmYcu7WwhnsP*VusYw&text2=test
> "x" is the second parameter in the query string, but 
> CryptedUrlWebRequestCodingStrategy accesses this parameter as "?x=" where in 
> this case it is "&x="
> I am attaching the example quickstart app and a possible fix.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (WICKET-2696) PATCH: TabbedPanel should allow modifying i) tab panel id and ii) tab panel parent component.

2010-01-23 Thread Juergen Donnerstag (JIRA)

[ 
https://issues.apache.org/jira/browse/WICKET-2696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804080#action_12804080
 ] 

Juergen Donnerstag commented on WICKET-2696:


and what is the use case for the proposed change?

> PATCH: TabbedPanel should allow modifying i) tab panel id and ii) tab panel 
> parent component.
> -
>
> Key: WICKET-2696
> URL: https://issues.apache.org/jira/browse/WICKET-2696
> Project: Wicket
>  Issue Type: Improvement
>  Components: wicket
>Affects Versions: 1.4-RC7
>Reporter: Martin Makundi
>Priority: Minor
> Attachments: tabpanel-patch.txt
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> TabbedPanel should allow modifying i) tab panel id and ii) tab panel parent 
> component.
> Patch attached.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (WICKET-2684) Provide a way to disable "Child component has a non-safe child id"

2010-01-23 Thread Marat Radchenko (JIRA)

[ 
https://issues.apache.org/jira/browse/WICKET-2684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804058#action_12804058
 ] 

Marat Radchenko commented on WICKET-2684:
-

> or use a low-level repeater where you have total control - RepeatingView 
Great! We finally got to the point :) RepeatingView is _subclass of 
AbstractRepeater_ whose onBeforeRender is producing warning!

> Provide a way to disable "Child component  has a non-safe child id"
> ---
>
> Key: WICKET-2684
> URL: https://issues.apache.org/jira/browse/WICKET-2684
> Project: Wicket
>  Issue Type: Improvement
>  Components: wicket
>Affects Versions: 1.4.5
>Reporter: Marat Radchenko
>Assignee: Igor Vaynberg
>
> AbstractRepeater.onBeforeRender checks child component ids to be digit-only. 
> While i (kinda) understand reasoning behind this behavior, it is sometimes 
> not what i want.
> One of examples is user list with login acting as primary key on a stateless 
> page. Relying on index is fragile because users can be added/deleted by other 
> requests, so i want to use user login as repeater child ids, however it 
> triggers warning.
> That check should be either disableable globally or on per-component basis 
> (latter is more desired), so I can tell AbstractRepeater that i know what i'm 
> doing and deliberately want non-numeric ids.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (WICKET-2684) Provide a way to disable "Child component has a non-safe child id"

2010-01-23 Thread Igor Vaynberg (JIRA)

[ 
https://issues.apache.org/jira/browse/WICKET-2684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804041#action_12804041
 ] 

Igor Vaynberg commented on WICKET-2684:
---

404 may be acceptable in your particular app, but users of my backend would be 
highly perplexed if all of a sudden they saw a generic 404 when clicking an 
edit link.

if you use stateless pages and stateless links to do this sort of thing then 
you know the risks.

> After all, it's not wicket business what ids i assign to my components

it is ListViews, and all other components that do this, job to assign the ids 
and make sure they are unique. the fact that these ids even exist is an 
internal implementation detail.

> (and actually nothing in wicket depends on them being numeric).

not true. maybe not in 1.5 with Juergen's changes, but in 1.4 afair there are 
places that check that id is purely numeric and if it is it is assumed to be 
assigned to a wicket-created component representing an item inside a repeater. 
once again an implementation detail.

you want more control?  you have two options: use a bookmarkable link or use a 
low-level repeater where you have total control - RepeatingView


> Provide a way to disable "Child component  has a non-safe child id"
> ---
>
> Key: WICKET-2684
> URL: https://issues.apache.org/jira/browse/WICKET-2684
> Project: Wicket
>  Issue Type: Improvement
>  Components: wicket
>Affects Versions: 1.4.5
>Reporter: Marat Radchenko
>Assignee: Igor Vaynberg
>
> AbstractRepeater.onBeforeRender checks child component ids to be digit-only. 
> While i (kinda) understand reasoning behind this behavior, it is sometimes 
> not what i want.
> One of examples is user list with login acting as primary key on a stateless 
> page. Relying on index is fragile because users can be added/deleted by other 
> requests, so i want to use user login as repeater child ids, however it 
> triggers warning.
> That check should be either disableable globally or on per-component basis 
> (latter is more desired), so I can tell AbstractRepeater that i know what i'm 
> doing and deliberately want non-numeric ids.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (WICKET-2684) Provide a way to disable "Child component has a non-safe child id"

2010-01-23 Thread Marat Radchenko (JIRA)

[ 
https://issues.apache.org/jira/browse/WICKET-2684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804039#action_12804039
 ] 

Marat Radchenko commented on WICKET-2684:
-

404 is acceptable behavior on the web because you always see outdated page (as 
it was when it was rendered). However, deleting wrong entries isn't acceptable.

After all, it's not wicket business what ids i assign to my components (and 
actually nothing in wicket depends on them being numeric).

> Provide a way to disable "Child component  has a non-safe child id"
> ---
>
> Key: WICKET-2684
> URL: https://issues.apache.org/jira/browse/WICKET-2684
> Project: Wicket
>  Issue Type: Improvement
>  Components: wicket
>Affects Versions: 1.4.5
>Reporter: Marat Radchenko
>Assignee: Igor Vaynberg
>
> AbstractRepeater.onBeforeRender checks child component ids to be digit-only. 
> While i (kinda) understand reasoning behind this behavior, it is sometimes 
> not what i want.
> One of examples is user list with login acting as primary key on a stateless 
> page. Relying on index is fragile because users can be added/deleted by other 
> requests, so i want to use user login as repeater child ids, however it 
> triggers warning.
> That check should be either disableable globally or on per-component basis 
> (latter is more desired), so I can tell AbstractRepeater that i know what i'm 
> doing and deliberately want non-numeric ids.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (WICKET-2684) Provide a way to disable "Child component has a non-safe child id"

2010-01-23 Thread Igor Vaynberg (JIRA)

[ 
https://issues.apache.org/jira/browse/WICKET-2684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804037#action_12804037
 ] 

Igor Vaynberg commented on WICKET-2684:
---

so what happens if ann john and peter are rendered. then john is deleted and 
someone clicks a link associated with john? now wicket wont be able to find the 
component and you get a url error or a 404. not good.

moral of the story is to use a bookmarkable link and encode the pk into the url 
yourself.

> Provide a way to disable "Child component  has a non-safe child id"
> ---
>
> Key: WICKET-2684
> URL: https://issues.apache.org/jira/browse/WICKET-2684
> Project: Wicket
>  Issue Type: Improvement
>  Components: wicket
>Affects Versions: 1.4.5
>Reporter: Marat Radchenko
>Assignee: Igor Vaynberg
>
> AbstractRepeater.onBeforeRender checks child component ids to be digit-only. 
> While i (kinda) understand reasoning behind this behavior, it is sometimes 
> not what i want.
> One of examples is user list with login acting as primary key on a stateless 
> page. Relying on index is fragile because users can be added/deleted by other 
> requests, so i want to use user login as repeater child ids, however it 
> triggers warning.
> That check should be either disableable globally or on per-component basis 
> (latter is more desired), so I can tell AbstractRepeater that i know what i'm 
> doing and deliberately want non-numeric ids.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (WICKET-2684) Provide a way to disable "Child component has a non-safe child id"

2010-01-23 Thread Marat Radchenko (JIRA)

[ 
https://issues.apache.org/jira/browse/WICKET-2684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12804035#action_12804035
 ] 

Marat Radchenko commented on WICKET-2684:
-

> the index is translated into the model which is in turn translated into the PK
Translate 1-3 numbers into "ann", "john", "peter", please.
Also, don't forget that after you initially loaded a stateless page with user 
list (but before you clicked on a link inside repeater), "bob" registered.

> or do all wicket apps out there suffer from concurrency issues where pressing 
> a delete button deletes the wrong thing?
All that do not use persistent object primary key as repeater child id.


> Provide a way to disable "Child component  has a non-safe child id"
> ---
>
> Key: WICKET-2684
> URL: https://issues.apache.org/jira/browse/WICKET-2684
> Project: Wicket
>  Issue Type: Improvement
>  Components: wicket
>Affects Versions: 1.4.5
>Reporter: Marat Radchenko
>Assignee: Igor Vaynberg
>
> AbstractRepeater.onBeforeRender checks child component ids to be digit-only. 
> While i (kinda) understand reasoning behind this behavior, it is sometimes 
> not what i want.
> One of examples is user list with login acting as primary key on a stateless 
> page. Relying on index is fragile because users can be added/deleted by other 
> requests, so i want to use user login as repeater child ids, however it 
> triggers warning.
> That check should be either disableable globally or on per-component basis 
> (latter is more desired), so I can tell AbstractRepeater that i know what i'm 
> doing and deliberately want non-numeric ids.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.