[ https://issues.apache.org/jira/browse/WICKET-749?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matt Welch reopened WICKET-749: ------------------------------- With the suggested change, class files are no longer editable and reloadable without causing a ClassCastException in the demonstration app (as demonstrated int eh previous comment). This limits the usefullness of the ReloadingWicketFilter so I'm reopening the issue. > ClassCastException when using ReloadingWicketFilter > --------------------------------------------------- > > Key: WICKET-749 > URL: https://issues.apache.org/jira/browse/WICKET-749 > Project: Wicket > Issue Type: Bug > Components: wicket > Affects Versions: 1.3.0-beta2 > Environment: OS: Ubuntu Linux > JDK: 1.5.0_11 > COntainer: Jetty via Maven (mvn jetty:run) > Reporter: Matt Welch > Assignee: Jean-Baptiste Quenot > Priority: Minor > Fix For: 1.3.0-beta3 > > Attachments: reloading.zip > > > Reference Threads: > http://www.nabble.com/Has-something-changed-in-markup-inheritance--tf3963374.html > http://www.nabble.com/Classcastexception-and-getSession-tf3979399.html > In summary, in certain situations, classes that should be loaded by the > ReloadingClassLoader are being loaded by the container's normal classloader. > While this happens in several situations, the most obvious and repeatable is > when using the browser's back button. I will attach a small app that > demonstrates this issue after submitting this bug. > The steps needed to recreate this issue int he demo app are actually quite > odd, so this may seem like a fringe issue, however in our real app, the > situations comes up much easier and with much more frequency. > Steps: > 1) Unzip the attached file. > 2) Assuming Maven is installed, run "mvn jetty:run" inside the project > directory. > 3) Use your browser to go to http://127.0.0.1:8080/app > 4) Click "Second Link" > 5) Use your browser back functionality and then click "Second Link" again. > Everything should work fine. > 6) You should now be be on a page with the words "Second changed10". If not, > click "Second Link" to get there. Use the browser to refresh that page. > 7) Refreshing should have caused a "Page Expired" error. That's ok, that > isn't the issue. Click the browser back button to go back to the first page. > 8) Click "Second Link" again. This should generate the ClassCastException. > If you disable the Reloading filter or if you comment out the include/exclude > lines in the included FusionReloadingWicketFilters you can go through the > same steps and not generate a ClassCastError. > As I mentioned above. This may seem like a very fringe case with all the the > refreshing and back buttons, but that just because that's the first and most > reliable way I found to recreate this issue in this tiny demo app. The issue > occurs under all kinds of situations in my real app including almost always > after I modify a java file and recompile it which is the primary use case for > the ReloadingClassloader. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.