Does WallBoardMainDataProvider return a non-static inner class that retains a reference to the non-proxied implementation?
FWIW, we avoid @Inject'ed IDataProviders since they tend to retain state (filter/query params etc), and instead give them their service proxies with Injector.get().inject(this) in their constructors. On Thu, Mar 22, 2012 at 7:56 AM, nino martinez wael < nino.martinez.w...@gmail.com> wrote: > Hi heres a part of the stacktrace, im wondering why it bypasses the proxy, > I thought it would never venture beyond that: > > 2012-03-22 15:51:55,739 ERROR > [org.apache.wicket.serialize.java.JavaSerializer] - Error serializing > object class com.netdesign.wallboard.page.ViewerPage [object=[Page class = > com.netdesign.wallboard.page.ViewerPage, id = 6, render count = 1]] > > org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: > Unable to serialize class: com.google.inject.internal.InjectorImpl$4 > Field hierarchy is: > 6 [class=com.netdesign.wallboard.page.ViewerPage, path=6] > private java.lang.Object org.apache.wicket.MarkupContainer.children > [class=com.netdesign.wallboard.panel.WallboardShowPanel, > path=6:wallboardShow] > private java.lang.Object org.apache.wicket.MarkupContainer.children > [class=[Ljava.lang.Object;] > private java.lang.Object > org.apache.wicket.MarkupContainer.children[0] > [class=com.netdesign.wallboard.panel.WallboardShowPanel$1, > path=6:wallboardShow:columnList] > private java.lang.Object > org.apache.wicket.MarkupContainer.children [class=[Ljava.lang.Object;] > private final java.lang.annotation.Annotation > org.apache.wicket.guice.GuiceProxyTargetLocator.bindingAnnotation[2] > [class=org.apache.wicket.markup.html.list.ListItem, > path=6:wallboardShow:columnList:2] > private java.lang.Object > org.apache.wicket.MarkupContainer.children > [class=com.netdesign.wallboard.panel.DisplayItemShowPanel, > path=6:wallboardShow:columnList:2:column] > private java.lang.Object > org.apache.wicket.MarkupContainer.children [class=[Ljava.lang.Object;] > java.lang.Object org.apache.wicket.Component.data[1] > [class=com.netdesign.wallboard.panel.DisplayItemShowPanel$1, > path=6:wallboardShow:columnList:2:column:list] > private java.lang.Object > org.apache.wicket.MarkupContainer.children [class=[Ljava.lang.Object;] > private java.lang.Object > org.apache.wicket.MarkupContainer.children[0] > [class=org.apache.wicket.markup.html.list.ListItem, > path=6:wallboardShow:columnList:2:column:list:0] > private java.lang.Object > org.apache.wicket.MarkupContainer.children > [class=com.netdesign.remedy.panel.DisplayItemRemedyShowPanel, > path=6:wallboardShow:columnList:2:column:list:0:displayItemShowPanel] > private java.lang.Object > org.apache.wicket.MarkupContainer.children > [class=com.netdesign.remedy.panel.DisplayItemRemedyShowPanel$1, > > path=6:wallboardShow:columnList:2:column:list:0:displayItemShowPanel:remedyItems] > java.lang.Object > org.apache.wicket.Component.data > [class=com.netdesign.remedy.provider.RemedyWallboardViewerProvider$2] > final > com.netdesign.remedy.provider.RemedyWallboardViewerProvider > com.netdesign.remedy.provider.RemedyWallboardViewerProvider$2.this$0 > [class=com.netdesign.remedy.provider.RemedyWallboardViewerProvider] > private > com.netdesign.wallboard.core.interfaces.WallBoardMainDataProvider > > com.netdesign.remedy.provider.RemedyWallboardViewerProvider.wallBoardMainDataProvider > [class=com.netdesign.wallboard.core.WallboardMainDataProviderImpl] > private > com.netdesign.wallboard.core.dao.CoreDaoService > com.netdesign.wallboard.core.WallboardMainDataProviderImpl.coreDaoService > > [class=com.netdesign.wallboard.core.dao.CoreDaoServiceImp$$EnhancerByGuice$$29968411] > protected com.google.inject.Provider > com.netdesign.wallboard.core.dao.CoreDaoServiceImp.em > [class=com.google.inject.internal.InjectorImpl$4] <----- field that is not > serializable > at > > org.apache.wicket.util.io.SerializableChecker.internalCheck(SerializableChecker.java:386) > > Part of matching code: > > > public class DisplayItemRemedyShowPanel extends Panel { > > @Inject > private WallBoardMainDataProvider wallBoardMainDataProvider; > > private Logger logger = LoggerFactory > .getLogger(DisplayItemRemedyShowPanel.class); > > public DisplayItemRemedyShowPanel(String id, final String queue, > final IModel<List<RemedyItem>> RemedyItemsModel, final RemedyDisplayItem > remedyDisplayItem) { > > > AND when debugging wallBoardMainDataProvider is wrapped by a proxy.. Of > course the internals of the target of the proxy are not. > > 2012/3/21 Martin Grigorov <mgrigo...@apache.org> > > > Wicket-Guice will inject serializable Proxy. > > It seems Guice's plain Injector injects the binding. Check why. > > > > On Wed, Mar 21, 2012 at 9:55 AM, Wilhelmsen Tor Iver <toriv...@arrive.no > > > > wrote: > > >> Hi I get a serialize exception in a panel of mine its correct that one > > of the contained fields cannot be serialized, however this field are > > injected and should not be touched by the checker, the field are marked > > with the @inject annotation. I'm using guice for injection.. Any thing > > obvious wrong with this? > > > > > > Java serialization does not care for that annotation, only whether it > is > > declared transient or sports the Serializable marker interface. Frankly > it > > baffles me that they didn't just default to letting everything be > > serializable and let the programmer deal with stuff that's not supposed > to > > be, since it otherwise just causes endless exceptions and adding an > > otherwise pointless interface inheritance... > > > > > > - Tor Iver > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > > > > > > -- > > Martin Grigorov > > jWeekend > > Training, Consulting, Development > > http://jWeekend.com > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > > > -- > Best regards / Med venlig hilsen > Nino Martinez >