You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by "Aleksey V. Katorgin" <pr...@gmail.com> on 2012/12/12 14:53:41 UTC

Serialization problem for ConcurrentHashMap

Hello! Sry for my English. I've get the next error while wicket page had
serialized a page:


2012-12-12-qtp22803607-17--ERROR-org.apache.wicket.serialize.java.JavaSerializer:Error
serializing object class
ru.compfort74.b2b_ural_auto_sound.web_ui.loading.prices.ParsePricesResultPage
[object=[Page class =
ru.compfort74.b2b_ural_auto_sound.web_ui.loading.prices.ParsePricesResultPage,
id = 6, render count = 1]]
org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream$ObjectCheckException:
The object type is not Serializable!
A problem occurred while checking object with type: java.lang.Object
Field hierarchy is:
  6
[class=ru.compfort74.b2b_ural_auto_sound.web_ui.loading.prices.ParsePricesResultPage,
path=6]
    private java.lang.Object org.apache.wicket.MarkupContainer.children
[class=[Ljava.lang.Object;]
      private final java.util.Map
org.odlabs.wiquery.core.options.Options.options[1]
[class=ru.compfort74.b2b_ural_auto_sound.web_ui.commons.prices.DefaultPricesTree,
path=6:parseResultTree]
        java.lang.Object org.apache.wicket.Component.data
[class=[Ljava.lang.Object;]
          java.lang.Object org.apache.wicket.Component.data[0]
[class=org.apache.wicket.model.AbstractReadOnlyModel]
            final
org.apache.wicket.extensions.markup.html.repeater.util.ProviderSubset
org.apache.wicket.extensions.markup.html.repeater.util.ProviderSubset$2.this$0
[class=org.apache.wicket.extensions.markup.html.repeater.util.ProviderSubset]
              private
org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider
org.apache.wicket.extensions.markup.html.repeater.util.ProviderSubset.provider
[class=ru.compfort74.b2b_ural_auto_sound.web_ui.commons.prices.PricesTreeProvider]
                private final org.apache.wicket.model.IModel
ru.compfort74.b2b_ural_auto_sound.web_ui.commons.prices.PricesTreeProvider.pricesModel
[class=org.apache.wicket.model.LoadableDetachableModel]
                  final org.apache.cayenne.ObjectContext
ru.compfort74.b2b_ural_auto_sound.web_ui.loading.prices.ParsePricesResultPage$1.val$ctx
[class=org.apache.cayenne.access.DataContext]
                    protected org.apache.cayenne.ObjectContext
org.apache.cayenne.util.ObjectContextGraphAction.context[write:2]
[class=java.util.concurrent.ConcurrentHashMap]
                      private final
java.util.concurrent.locks.ReentrantLock$Sync
java.util.concurrent.locks.ReentrantLock.sync[write:18][write:19]
[class=java.lang.Object] <----- field that is causing the problem



It's very strange in my opinion that ReentrantLock.sync cannot be
serialized. It's bug of the Wicket or my app?
Thanks.

-- 
Aleksey V. Katorgin,
Sr. developer, architect

Russia, Chelyabinsk
cell: +79085792691
skype: aleksey_katorgin

Re: Serialization problem for ConcurrentHashMap

Posted by "Aleksey V. Katorgin" <pr...@gmail.com>.
Sry I've tried to reproduce this bug in quickstart project but with no
results. I
can't investigate anymore because right now I am under time pressure...

The bug regular occurs in Apache Caynnen Object Context which I pass from
one
Page to a constructor of a Page will be forwarded. And this each time
throws the
exception.




On Wed, Dec 12, 2012 at 8:07 PM, Martin Grigorov <mg...@apache.org>wrote:

> Hi,
>
> java.util.concurrent.locks.ReentrantLock.Sync is Serializable, so it looks
> like a bug in Wicket ..
> Please create a simple quickstart that demonstrates the problem and attach
> it to Jira.
>
>
> On Wed, Dec 12, 2012 at 2:53 PM, Aleksey V. Katorgin
> <pr...@gmail.com>wrote:
>
> > Hello! Sry for my English. I've get the next error while wicket page had
> > serialized a page:
> >
> >
> >
> >
> 2012-12-12-qtp22803607-17--ERROR-org.apache.wicket.serialize.java.JavaSerializer:Error
> > serializing object class
> >
> >
> ru.compfort74.b2b_ural_auto_sound.web_ui.loading.prices.ParsePricesResultPage
> > [object=[Page class =
> >
> >
> ru.compfort74.b2b_ural_auto_sound.web_ui.loading.prices.ParsePricesResultPage,
> > id = 6, render count = 1]]
> >
> >
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream$ObjectCheckException:
> > The object type is not Serializable!
> > A problem occurred while checking object with type: java.lang.Object
> > Field hierarchy is:
> >   6
> >
> >
> [class=ru.compfort74.b2b_ural_auto_sound.web_ui.loading.prices.ParsePricesResultPage,
> > path=6]
> >     private java.lang.Object org.apache.wicket.MarkupContainer.children
> > [class=[Ljava.lang.Object;]
> >       private final java.util.Map
> > org.odlabs.wiquery.core.options.Options.options[1]
> >
> >
> [class=ru.compfort74.b2b_ural_auto_sound.web_ui.commons.prices.DefaultPricesTree,
> > path=6:parseResultTree]
> >         java.lang.Object org.apache.wicket.Component.data
> > [class=[Ljava.lang.Object;]
> >           java.lang.Object org.apache.wicket.Component.data[0]
> > [class=org.apache.wicket.model.AbstractReadOnlyModel]
> >             final
> > org.apache.wicket.extensions.markup.html.repeater.util.ProviderSubset
> >
> >
> org.apache.wicket.extensions.markup.html.repeater.util.ProviderSubset$2.this$0
> >
> >
> [class=org.apache.wicket.extensions.markup.html.repeater.util.ProviderSubset]
> >               private
> > org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider
> >
> >
> org.apache.wicket.extensions.markup.html.repeater.util.ProviderSubset.provider
> >
> >
> [class=ru.compfort74.b2b_ural_auto_sound.web_ui.commons.prices.PricesTreeProvider]
> >                 private final org.apache.wicket.model.IModel
> >
> >
> ru.compfort74.b2b_ural_auto_sound.web_ui.commons.prices.PricesTreeProvider.pricesModel
> > [class=org.apache.wicket.model.LoadableDetachableModel]
> >                   final org.apache.cayenne.ObjectContext
> >
> >
> ru.compfort74.b2b_ural_auto_sound.web_ui.loading.prices.ParsePricesResultPage$1.val$ctx
> > [class=org.apache.cayenne.access.DataContext]
> >                     protected org.apache.cayenne.ObjectContext
> > org.apache.cayenne.util.ObjectContextGraphAction.context[write:2]
> > [class=java.util.concurrent.ConcurrentHashMap]
> >                       private final
> > java.util.concurrent.locks.ReentrantLock$Sync
> > java.util.concurrent.locks.ReentrantLock.sync[write:18][write:19]
> > [class=java.lang.Object] <----- field that is causing the problem
> >
> >
> >
> > It's very strange in my opinion that ReentrantLock.sync cannot be
> > serialized. It's bug of the Wicket or my app?
> > Thanks.
> >
> > --
> > Aleksey V. Katorgin,
> > Sr. developer, architect
> >
> > Russia, Chelyabinsk
> > cell: +79085792691
> > skype: aleksey_katorgin
> >
>
>
>
> --
> Martin Grigorov
> jWeekend
> Training, Consulting, Development
> http://jWeekend.com <http://jweekend.com/>
>



-- 
Aleksey V. Katorgin,
Sr. developer, architect

Russia, Chelyabinsk
cell: +79085792691
skype: aleksey_katorgin

Re: Serialization problem for ConcurrentHashMap

Posted by Martin Grigorov <mg...@apache.org>.
Hi,

java.util.concurrent.locks.ReentrantLock.Sync is Serializable, so it looks
like a bug in Wicket ..
Please create a simple quickstart that demonstrates the problem and attach
it to Jira.


On Wed, Dec 12, 2012 at 2:53 PM, Aleksey V. Katorgin
<pr...@gmail.com>wrote:

> Hello! Sry for my English. I've get the next error while wicket page had
> serialized a page:
>
>
>
> 2012-12-12-qtp22803607-17--ERROR-org.apache.wicket.serialize.java.JavaSerializer:Error
> serializing object class
>
> ru.compfort74.b2b_ural_auto_sound.web_ui.loading.prices.ParsePricesResultPage
> [object=[Page class =
>
> ru.compfort74.b2b_ural_auto_sound.web_ui.loading.prices.ParsePricesResultPage,
> id = 6, render count = 1]]
>
> org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream$ObjectCheckException:
> The object type is not Serializable!
> A problem occurred while checking object with type: java.lang.Object
> Field hierarchy is:
>   6
>
> [class=ru.compfort74.b2b_ural_auto_sound.web_ui.loading.prices.ParsePricesResultPage,
> path=6]
>     private java.lang.Object org.apache.wicket.MarkupContainer.children
> [class=[Ljava.lang.Object;]
>       private final java.util.Map
> org.odlabs.wiquery.core.options.Options.options[1]
>
> [class=ru.compfort74.b2b_ural_auto_sound.web_ui.commons.prices.DefaultPricesTree,
> path=6:parseResultTree]
>         java.lang.Object org.apache.wicket.Component.data
> [class=[Ljava.lang.Object;]
>           java.lang.Object org.apache.wicket.Component.data[0]
> [class=org.apache.wicket.model.AbstractReadOnlyModel]
>             final
> org.apache.wicket.extensions.markup.html.repeater.util.ProviderSubset
>
> org.apache.wicket.extensions.markup.html.repeater.util.ProviderSubset$2.this$0
>
> [class=org.apache.wicket.extensions.markup.html.repeater.util.ProviderSubset]
>               private
> org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider
>
> org.apache.wicket.extensions.markup.html.repeater.util.ProviderSubset.provider
>
> [class=ru.compfort74.b2b_ural_auto_sound.web_ui.commons.prices.PricesTreeProvider]
>                 private final org.apache.wicket.model.IModel
>
> ru.compfort74.b2b_ural_auto_sound.web_ui.commons.prices.PricesTreeProvider.pricesModel
> [class=org.apache.wicket.model.LoadableDetachableModel]
>                   final org.apache.cayenne.ObjectContext
>
> ru.compfort74.b2b_ural_auto_sound.web_ui.loading.prices.ParsePricesResultPage$1.val$ctx
> [class=org.apache.cayenne.access.DataContext]
>                     protected org.apache.cayenne.ObjectContext
> org.apache.cayenne.util.ObjectContextGraphAction.context[write:2]
> [class=java.util.concurrent.ConcurrentHashMap]
>                       private final
> java.util.concurrent.locks.ReentrantLock$Sync
> java.util.concurrent.locks.ReentrantLock.sync[write:18][write:19]
> [class=java.lang.Object] <----- field that is causing the problem
>
>
>
> It's very strange in my opinion that ReentrantLock.sync cannot be
> serialized. It's bug of the Wicket or my app?
> Thanks.
>
> --
> Aleksey V. Katorgin,
> Sr. developer, architect
>
> Russia, Chelyabinsk
> cell: +79085792691
> skype: aleksey_katorgin
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>