I was able to confirm that clearing the cookie gets rid of the
ClassNotFoundException.

I have a hypothesis as to what happened: It appears that sometime
after the M4 milestone, the SessionToServletBridge moved from the
net.liftweb.http package to net.liftweb.http.provider.servlet. So, the
M4 version of my application serialized a
net.liftweb.http.SessionToServletBridge to a cookie, but the 1.1-
SNAPSHOT version couldn't find a class definition for the object when
deserializing the cookie and threw a ClassNotFoundException.

Anyway, problem resolved! Atsuhiko, thank you very much for your help!
David, thanks for bring the issue to Atsuhiko's attention!

- Mark


On Sep 1, 4:38 pm, Mark Tye <mark...@gmail.com> wrote:
> Thanks for taking a look at this issue. If the solution is as simple
> as clearing/removing a cookie, that's great news. I'll give it a try
> and let you know how it worked. Thanks again!
>
> - Mark
>
> On Aug 26, 2:57 am, Atsuhiko Yamanaka <atsuhiko.yaman...@gmail.com>
> wrote:
>
> > Hi,
>
> > On Mon, Aug 17, 2009 at 9:18 AM, Mark Tye<mark...@gmail.com> wrote:
>
> > ...
>
> > > I don't know if compatibility with App Engine is a priority for the
> > > Lift team, but if this doesn't get fixed, I face an ugly choice
> > > between remaining frozen at 1.1-M4 as Lift development moves forward,
> > > or migrating away from App Engine to another cloud solution. Is there
> > > anything I can do to assist the diagnosis/resolution of this issue?
>
> > I have found that this problem will occur if you run lift app based on 
> > 1.1-M4
> > and then run lift app based on 1.1-SNAPSHOT.
> > And then, if you clear a cookie entry forhttp://yourapp.appsopt.com/
> > in your browser,
> > that problem will disappear.
>
> > I think there is not a solution in the 1.1-SNAPSHOT code.
>
> > How about clearing sessions before updating to 1.1-SNAPSHOT code base?
> > You know that sessions have been kept in the datastore and memcache,
> > and following code will clear them.
> > I have confirmed that I could cure that problem by following code
> > without deleting
> > a cookie in my browser.
>
> >   // clearing sessions in the datastore.
> >   import com.google.appengine.api.datastore.{Query,
> > DatastoreServiceFactory, Entity}
> >   implicit def foo(i:java.lang.Iterable[Entity]) = new Iterator[Entity]{
> >     val itt = i.iterator
> >     def hasNext:Boolean = itt.hasNext
> >     def next:Entity = itt.next
> >   }
> >   val datastore = DatastoreServiceFactory.getDatastoreService
> >   val results = datastore.prepare(new Query("_ah_SESSION"))
> >   for(session <- results.asIterable){
> >     datastore.delete(session.getKey())
> >   }
>
> >   // clearing memcache
> >   import java.util.Collections
> >   import javax.cache._
> >   val cacheFactory = CacheManager.getInstance.getCacheFactory
> >   val cache = cacheFactory.createCache(Collections.emptyMap())
> >   val stats = cache.getCacheStatistics
> >   cache.clear
>
> > Sincerely,
> > --
> > Atsuhiko Yamanaka
> > JCraft,Inc.
> > 1-14-20 HONCHO AOBA-KU,
> > SENDAI, MIYAGI 980-0014 Japan.
> > Tel +81-22-723-2150
> >     +1-415-578-3454
> > Skype callto://jcraft/
>
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to