Re: How to suppress WicketSerializationException using ListView

2012-03-05 Thread vineet semwal
use loadabledetachablemodel and it should load a list of your
unserialiable entities that will poupulate your listview



On Mon, Mar 5, 2012 at 3:39 PM, Behrooz Nobakht nob...@gmail.com wrote:
 Hello,

 I'm using a ListView*S* in which S is not serializable but it is not
 either kept in the page data structure. So, every time the page is
 rendered, I fetch a list of *S* and then construct the ListView. Even in
 this point, I am not really sure if this assumption is correct but I am
 assuming that since no data is kept at the page component level, so there
 is not need for *S* to be serializable. However, I get the following
 exception in which *T extends S*:

 2012-03-05 10:48:55,002 ERROR [http-8080-6] Error serializing object class
 com.my.MyPage [object=[Page class = com.my.MyPage, id = 7, render count =
 1]] (JavaSerializer.java:94)
 org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException:
 Unable to serialize class: com.my.T
 Field hierarchy is:
  7 [class=com.my.MyPage, path=7]
    private java.lang.Object org.apache.wicket.MarkupContainer.children
 [class=[Ljava.lang.Object;]
      java.lang.Object org.apache.wicket.Component.data[9]
 [class=com.my.MyPage$MyListView, path=7:serviceInstances]
        java.lang.Object org.apache.wicket.Component.data
 [class=org.apache.wicket.model.util.WildcardListModel]
          private java.lang.Object
 org.apache.wicket.model.util.GenericBaseModel.object
 [class=java.util.ArrayList]
            private java.lang.Object
 org.apache.wicket.model.util.GenericBaseModel.object[write:1] [class=*
 com.my.T*] *- field that is not serializable*
    at
 org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:386)
    at
 org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
    at
 org.apache.wicket.util.io.SerializableChecker.access$500(SerializableChecker.java:65)
    at
 org.apache.wicket.util.io.SerializableChecker$1InterceptingObjectOutputStream.replaceObject(SerializableChecker.java:525)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1140)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
    at java.util.ArrayList.writeObject(ArrayList.java:710)
    at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
    at
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at
 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
    at
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
    at
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
    at
 org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:532)
    at
 org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
    at
 org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:646)
    at
 org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:569)
    at
 org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
    at
 org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:646)
    at
 org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:569)
    at
 org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
    at
 org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:431)
    at
 org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
    at
 org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:646)
    at
 org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:569)
    at
 org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
    at
 org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:715)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
    at
 org.apache.wicket.serialize.java.JavaSerializer$CheckerObjectOutputStream.writeObjectOverride(JavaSerializer.java:258)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
    at
 org.apache.wicket.serialize.java.JavaSerializer.serialize(JavaSerializer.java:77)
    at
 org.apache.wicket.pageStore.DefaultPageStore.serializePage(DefaultPageStore.java:368)
    at
 org.apache.wicket.pageStore.DefaultPageStore.storePage(DefaultPageStore.java:146)
    at
 org.apache.wicket.page.PageStoreManager$PersistentRequestAdapter.storeTouchedPages(PageStoreManager.java:383)
    at
 org.apache.wicket.page.RequestAdapter.commitRequest(RequestAdapter.java:171)
    at
 

Re: How to suppress WicketSerializationException using ListView

2012-03-05 Thread Behrooz Nobakht
Thanks, solved the problem.

On Mon, Mar 5, 2012 at 11:14 AM, vineet semwal
vineetsemwal1...@gmail.comwrote:

 use loadabledetachablemodel and it should load a list of your
 unserialiable entities that will poupulate your listview



 On Mon, Mar 5, 2012 at 3:39 PM, Behrooz Nobakht nob...@gmail.com wrote:
  Hello,
 
  I'm using a ListView*S* in which S is not serializable but it is not
  either kept in the page data structure. So, every time the page is
  rendered, I fetch a list of *S* and then construct the ListView. Even in
  this point, I am not really sure if this assumption is correct but I am
  assuming that since no data is kept at the page component level, so there
  is not need for *S* to be serializable. However, I get the following
  exception in which *T extends S*:
 
  2012-03-05 10:48:55,002 ERROR [http-8080-6] Error serializing object
 class
  com.my.MyPage [object=[Page class = com.my.MyPage, id = 7, render count =
  1]] (JavaSerializer.java:94)
 
 org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException:
  Unable to serialize class: com.my.T
  Field hierarchy is:
   7 [class=com.my.MyPage, path=7]
 private java.lang.Object org.apache.wicket.MarkupContainer.children
  [class=[Ljava.lang.Object;]
   java.lang.Object org.apache.wicket.Component.data[9]
  [class=com.my.MyPage$MyListView, path=7:serviceInstances]
 java.lang.Object org.apache.wicket.Component.data
  [class=org.apache.wicket.model.util.WildcardListModel]
   private java.lang.Object
  org.apache.wicket.model.util.GenericBaseModel.object
  [class=java.util.ArrayList]
 private java.lang.Object
  org.apache.wicket.model.util.GenericBaseModel.object[write:1] [class=*
  com.my.T*] *- field that is not serializable*
 at
 
 org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:386)
 at
 
 org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
 at
 
 org.apache.wicket.util.io.SerializableChecker.access$500(SerializableChecker.java:65)
 at
 
 org.apache.wicket.util.io.SerializableChecker$1InterceptingObjectOutputStream.replaceObject(SerializableChecker.java:525)
 at
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1140)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
 at java.util.ArrayList.writeObject(ArrayList.java:710)
 at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
 at
 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:601)
 at
  java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)
 at
  java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)
 at
 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
 at
 java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
 at
 
 org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:532)
 at
 
 org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
 at
 
 org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:646)
 at
 
 org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:569)
 at
 
 org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
 at
 
 org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:646)
 at
 
 org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:569)
 at
 
 org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
 at
 
 org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:431)
 at
 
 org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
 at
 
 org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:646)
 at
 
 org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:569)
 at
 
 org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:365)
 at
 
 org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:715)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
 at
 
 org.apache.wicket.serialize.java.JavaSerializer$CheckerObjectOutputStream.writeObjectOverride(JavaSerializer.java:258)
 at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
 at
 
 org.apache.wicket.serialize.java.JavaSerializer.serialize(JavaSerializer.java:77)
 at
 
 org.apache.wicket.pageStore.DefaultPageStore.serializePage(DefaultPageStore.java:368)
 at
 
 org.apache.wicket.pageStore.DefaultPageStore.storePage(DefaultPageStore.java:146)
 at