No that not the reason. The reason I need to keep the items each user has entered. I can be a List or Map but for this case linkedlistmultimap works best for me. Do you have a better alternative? I would like to how know to improve this.
Michael Sparer wrote: > > So you're putting an object into your session just because on of its > public methods returns a not-serializable object? > > > TH Lim wrote: >> >> No, linkedlistmultimap is serializable. only $1 is not. If you look at >> the snippet the $1 class is created on the fly when >> linkedlistmultimap.get(...) is invoked. >> >> >> Michael Sparer wrote: >>> >>> but if you save the linkedlistmultimap (which isn't serializable, >>> right?) in the session you'll run into problems as well ... at the >>> latest in a clustered environment .... >>> >>> >>> >>> TH Lim wrote: >>>> >>>> No, I didn't save the provider in the session. Just the >>>> LinkedListMultimap instance. As Martijn has pointed it out with the >>>> code snippet why $1 is not serializable, the only way is to keep the >>>> LinkedListMultimap and not the List. >>>> >>>> Wicket is pretty good. It points to the exact field where the problem >>>> was. >>>> >>>> Thanks guys. >>>> >>>> >>>> Michael Sparer wrote: >>>>> >>>>> you save the provider to the session? that's kind of an anti-pattern >>>>> as it gets serialized there anyway (at least in a clustered >>>>> environment). you should rather boil down to the field that causes the >>>>> not-serializable exception, wicket tells you exactly which field it is >>>>> anyway. or provide us some code to help you. but if you inherit from >>>>> sortabledataprovider or you implement IDataProvider it shouldn't be >>>>> too difficult to find out which field it is ;-) >>>>> >>>>> regards, >>>>> Michael >>>>> >>>>> TH Lim wrote: >>>>>> >>>>>> I tried another method. Instead of passing the reference to my >>>>>> IDataProvider implementation, MyDataProvider, I recode MyDataProvider >>>>>> to get it from the MySession which extends Wicket Session. I don't >>>>>> any difference here but it works. I still not sure what caused >>>>>> MyDataProvider to fail to persist because of the List instance it >>>>>> contained. >>>>>> >>>>>> Btw, >>>>>> http://google-collections.googlecode.com/svn-history/r5/trunk/src/com/google/common/collect/LinkedListMultimap.java >>>>>> LinkedListMultimap uses the inner class Node which is also >>>>>> Serializable. >>>>>> >>>>>> >>>>>> Michael Sparer wrote: >>>>>>> >>>>>>> The Serlializable-check isn't sufficient. you can mark any class >>>>>>> serializable if you want. what really counts is that all fields of >>>>>>> the class are serializable, you should have a look at them ... >>>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > > -- View this message in context: http://www.nabble.com/Unable-to-serialize-class-com.google.common.collect.LinkedListMultimap%241-tp19027449p19034402.html Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
