* Watter:
> 
> 
> 
> Jean-Baptiste Quenot-3 wrote:
> > 
> > * Watter:
> > 
> >> With   that,   I   can   get   past   the   error   I   reported
> >> earlier. Unfortunately, I'm  seeing something else now. If  I go
> >> to a page,  then use my browser  back button to go  back a page,
> >> and then click on any other link, I get a ClassCastException for
> >> FusionAuthenticatedWebSession:
> > 
> > If you don't paste the include/exclude patterns, it will be very
> > hard to help you.
> > 
> You're right, of course. Here is all the relevant information I can think
> of, and thank you for your help.
> 
> Wicket Version: latest 1.3.0-incubating-SNAPSHOT from wicketstuff maven
> repository
> 
> ReloadingFilter Patterns:
> 
> 
> ReloadingClassLoader.includePattern("com.ptc.fusion.web.FusionAuthenticatedWebSession*");
> 
> ReloadingClassLoader.includePattern("com.ptc.fusion.web.FusionWebApplication*");
>       ReloadingClassLoader.includePattern("com.ptc.fusion.web.pages*");
>       ReloadingClassLoader.includePattern("com.ptc.fusion.web.security*");
>       ReloadingClassLoader.includePattern("com.ptc.fusion.web.dataprovider*");
> 
> (the * after FusionWebApplication was added at your suggestion and allowed
> me to revert back to overriding getSessionFactory())
> 
> Here are some important parts of the FusionAuthenticatedWebSession:
> 
> public class FusionAuthenticatedWebSession extends WebSession {
> 
>       private static final long serialVersionUID = 1L;
>       private User user;
> 
>       @SpringBean(name = "ldapauthenticationManager")
>       AuthenticationProvider ldapAuthenticationProvider;
>       
>       @SpringBean(name = "daoauthenticationManager")
>       AuthenticationProvider daoAuthenticationProvider;
>       
>       @SpringBean(name = "webSettings")
>       private WebSettings webSettings;
> 
>       
> 
>       public FusionAuthenticatedWebSession(WebApplication application, Request
> request) {
>               super(application, request);
>               InjectorHolder.getInjector().inject(this);
>       }
> 
>       public static FusionAuthenticatedWebSession get() {
>               return (FusionAuthenticatedWebSession) Session.get();
>       }
> 
>       /** True when the user is signed in */
>       private boolean signedIn;
> 
>       public boolean authenticate(final String username, final String 
> password) {
>               //do some authentication work
>       }
> 
>       public final boolean signIn(final String username, final String 
> password) {
>               signedIn = authenticate(username, password);
>               return signedIn;
>       }
> 
> 
>       /* Accessors */
>       public final boolean isSignedIn() {
>               return signedIn;
>       }
> 
>       public User getUser() {
>               return user;
>       }
> }
> 
> I call the get() method of this class in a few places and it's that call
> that causes the error when using the ReloadingFilter and after I hit the
> back button. 
> 
> WicketMessage: Method onLinkClicked of interface
> org.apache.wicket.markup.html.link.ILinkListener targeted at component
> [MarkupContainer [Component id = listOrganizationLink, page =
> com.ptc.fusion.web.pages.user.ListUsers, path =
> 77:adminMenuItems:listOrganizationLink.PageLink, isVisible = true,
> isVersioned = true]] threw an exception
> 
> Root cause:
> 
> java.lang.ClassCastException:
> com.ptc.fusion.web.FusionAuthenticatedWebSession

It means com.ptc.fusion.web.FusionAuthenticatedWebSession is
already loaded in other classes that did not match the inclusion
patterns.

To debug your usecase, set a conditional breakpoint in
ReloadingClassLoader.loadClass() when class name is
com.ptc.fusion.web.FusionAuthenticatedWebSession.  Maybe I could
also add some debug log statements to help you diagnose.

Sometimes it is really difficult to understand where your class is
loaded from.
-- 
     Jean-Baptiste Quenot
aka  John Banana   Qwerty
http://caraldi.com/jbq/

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to