[jira] Commented: (WICKET-2697) org.apache.wicket.util.listener.ChangeListenerSet should be serializable
[ 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
[ 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
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"
[ 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"
[ 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"
[ 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.
[ 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.
[ 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
[ 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.
[ 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"
[ 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"
[ 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"
[ 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"
[ 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"
[ 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.