Hi all!
Was there a solution to this really strange ClassCastException already?

I have the same problem in the following circumstances:

public class Search extends BaseComponent
{
   @Component
   private Form simpleSearch;

   @ApplicationState
   private SimpleSearchString simpleSearchString;

   private String searchTerm; // wil be populated by the form;

   /* Form Handler */

   String onSuccess()
   {
       if (searchTerm == null)
           return null;


       getSimpleSearchString().setSearchTerm(searchTerm);
       return "ExtendedSearch";
   }

   public SimpleSearchString getSimpleSearchString()
   {
       return simpleSearchString;
   }

This line gives the following stacktrace

java.lang.ClassCastException myapp.state.SimpleSearchString cannot be cast
to myapp.state.SimpleSearchString
Stack trace

  - myapp.components.search.Search._$read_simpleSearchString(Search.java
  )
  - myapp.components.search.Search.getSimpleSearchString(Search.java:79)
  - myapp.components.search.Search.onSuccess(Search.java:53)
  - myapp.components.search.Search.handleComponentEvent(Search.java)


This happens regardless of if I access simpleSearchString directly or with
the getter.
Any idead what causes this somewhat puzzling behaviour?

Regards,
Otho





2007/5/11, Juan Maya <[EMAIL PROTECTED]>:
> i think u can only access ur ASOs in pages or components.  I am not sure
> about it :S
>
> On 5/11/07, Eric Chatellier <[EMAIL PROTECTED]> wrote:
> >
> > thanks, it' works
> >
> > I check if user is authenticated and if not redirect to loginForm
> >
> > but now I got a strange error using @ApplicationState
> >
> >    @ApplicationState
> >    private SessionBean sessionBean;
> >
> > In this form, when I try to log the user sessionBean.setLogged(true),
> > this excepion is thrown :
> >
> > org.package.test.web.tapestry.base.SessionBean cannot be cast to
> > org.package.test.web.tapestry.base.SessionBean
> >
> > The cast done by tapestry seams good, so how this exception can be
throw ?
> >
> >
> > 2007/5/11, Juan Maya <[EMAIL PROTECTED]>:
> > > Hi Eric,
> > > i think the best way to do it is to contrib to the Request handler
> > pipilene
> > > (
http://tapestry.apache.org/tapestry5/tapestry-core/guide/request.html)
> > > To contrib to a pipeline do it your AppModule:
> > >
> > >  public RequestFilter buildTimingFilter(final Log log) {
> > >     return new RequestFilter() {
> > >         public boolean service(Request request, Response response,
> > >             RequestHandler handler) throws IOException {
> > >         long startTime = System.currentTimeMillis();
> > >         try {
> > >             // The reponsibility of a filter is to invoke the
> > >             // corresponding method
> > >             // in the handler. When you chain multiple filters
> > >             // together, each filter
> > >             // received a handler that is a bridge to the next
> > >             // filter.
> > >             return handler.service(request, response);
> > >
> > >         } finally {
> > >             long elapsed = System.currentTimeMillis() - startTime;
> > >             log.info(String.format("Request time: %d ms",
Long.valueOf
> > > (elapsed)));
> > >         }
> > >         }
> > >     };
> > >     }
> > >
> > >
> > >     /**
> > >      * This is a contribution to the RequestHandler service
> > configuration.
> > >      * This is how we extend Tapestry using the timing filter. A
common
> > use
> > >      * for this kind of filter is transaction management or
security.
> > >      */
> > >     public void
> > contributeRequestHandler(OrderedConfiguration<RequestFilter>
> > > configuration, @InjectService("TimingFilter") RequestFilter filter)
{
> > >     // Each contribution to an ordered configuration has a name,
When
> > >     // necessary, you may
> > >     // set constraints to precisely control the invocation order of
the
> > >     // contributed filter
> > >     // within the pipeline.
> > >     configuration.add("Timing", filter);
> > >     }
> > >
> > >
> > >
> > > On 5/11/07, Eric Chatellier <[EMAIL PROTECTED]> wrote:
> > > >
> > > > hi everyone
> > > >
> > > > I'm starting using Tapestry 5.0.4 and i'm tying to implement an
> > > > authentication filter.
> > > >
> > > >
> > > > In some tapestry 4 samples, code was :
> > > >
> > > > public abstract class AuthenticatedPage implements
> > PageValidateListener {
> > > >
> > > >         public void pageValidate(PageEvent event) {
> > > >
> > > >                 if (!isSessionBeanExist() ||
> > > > getSessionBean().getUid()==-1) {
> > > >                         Login loginPage = (Login)getRequestCycle()
> > > >
> > > >                  .getPage("Login");
> > > >
> > > >                         loginPage.setCallback(new
PageCallback(this));
> > > >
> > > >                         throw new
PageRedirectException(loginPage);
> > > >                 }
> > > >         }
> > > > }
> > > >
> > > > public class ProjectList extends AuthenticatedPage {
> > > >   [...]
> > > > }
> > > >
> > > > but i can't find the way to do it in tapestry 5.
> > > >
> > > > thanks in advance for help, and sorry for my bad english ;)
> > > >
> > > >
---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to