weird... I'd expect that the CheckboxMultipleChoice would force the initialization of the list before the EntityManager is closed. Is the exception thrown on the form submission?
On Fri, Oct 2, 2009 at 8:48 AM, Pedro Santos <[email protected]> wrote: > use *OpenSessionInViewFilter* to avoid lazy initialization exceptions > > On Fri, Oct 2, 2009 at 8:42 AM, Albert Romanius <[email protected]>wrote: > >> The line that throws the exception is below: >> CheckBoxMultipleChoice subMessagesCB = new CheckBoxMultipleChoice( >> "subMessages", new PropertyModel(this, >> "selectedSubs"), showMessage.getLazyList()); >> >> The problem is the showMessage.getLazyList() call. When wicket renders >> this combobox, spring filter have already closed the EntityManager. >> If I uncomment this line (ugly hack): >> //showMessage.getLazyList().size(); >> Everything works. >> >> I am using tomcat 6.0.18 (bundled with Netbeans). >> >> >> The stacktrace: >> >> ERROR - azyInitializationException - failed to lazily initialize a >> collection of role: com.mycompany.persistence.domain.Message.lazyList, >> no session or session was closed >> org.hibernate.LazyInitializationException: failed to lazily initialize >> a collection of role: >> com.mycompany.persistence.domain.Message.lazyList, no session or >> session was closed >> at >> org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358) >> at >> org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350) >> at >> org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:97) >> at >> org.hibernate.collection.PersistentBag.size(PersistentBag.java:225) >> at >> org.apache.wicket.markup.html.form.ListMultipleChoice.onComponentTag(ListMultipleChoice.java:246) >> at >> org.apache.wicket.markup.html.form.CheckBoxMultipleChoice.onComponentTag(CheckBoxMultipleChoice.java:359) >> at org.apache.wicket.Component.renderComponent(Component.java:2597) >> at >> org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1536) >> at org.apache.wicket.Component.render(Component.java:2457) >> at >> org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1414) >> at >> org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1601) >> at >> org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1525) >> at >> org.apache.wicket.markup.html.form.Form.onComponentTagBody(Form.java:1926) >> at org.apache.wicket.Component.renderComponent(Component.java:2626) >> at >> org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1536) >> at org.apache.wicket.markup.html.form.Form.onRender(Form.java:1997) >> at org.apache.wicket.Component.render(Component.java:2457) >> at >> org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1414) >> at >> org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1552) >> at org.apache.wicket.Page.onRender(Page.java:1545) >> at org.apache.wicket.Component.render(Component.java:2457) >> at org.apache.wicket.Page.renderPage(Page.java:914) >> at >> org.apache.wicket.request.target.component.PageRequestTarget.respond(PageRequestTarget.java:63) >> at >> org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:105) >> at >> org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1258) >> at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) >> at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428) >> at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) >> at >> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:456) >> at >> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:289) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> at >> org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:112) >> at >> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) >> at >> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) >> at >> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) >> at >> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) >> at java.lang.Thread.run(Thread.java:619) >> ERROR - RequestCycle - Exception in rendering component: >> [MarkupContainer [Component id = form]] >> org.apache.wicket.WicketRuntimeException: Exception in rendering >> component: [MarkupContainer [Component id = form]] >> at org.apache.wicket.Component.renderComponent(Component.java:2665) >> at >> org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1536) >> at org.apache.wicket.markup.html.form.Form.onRender(Form.java:1997) >> at org.apache.wicket.Component.render(Component.java:2457) >> at >> org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1414) >> at >> org.apache.wicket.MarkupContainer.renderAll(MarkupContainer.java:1552) >> at org.apache.wicket.Page.onRender(Page.java:1545) >> at org.apache.wicket.Component.render(Component.java:2457) >> at org.apache.wicket.Page.renderPage(Page.java:914) >> at >> org.apache.wicket.request.target.component.PageRequestTarget.respond(PageRequestTarget.java:63) >> at >> org.apache.wicket.request.AbstractRequestCycleProcessor.respond(AbstractRequestCycleProcessor.java:105) >> at >> org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1258) >> at org.apache.wicket.RequestCycle.step(RequestCycle.java:1329) >> at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1428) >> at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) >> at >> org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:456) >> at >> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:289) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> at >> org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:112) >> at >> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) >> at >> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) >> at >> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) >> at >> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) >> at java.lang.Thread.run(Thread.java:619) >> Caused by: org.hibernate.LazyInitializationException: failed to lazily >> initialize a collection of role: >> com.mycompany.persistence.domain.Message.lazyList, no session or >> session was closed >> at >> org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358) >> at >> org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350) >> at >> org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:97) >> at >> org.hibernate.collection.PersistentBag.size(PersistentBag.java:225) >> at >> org.apache.wicket.markup.html.form.ListMultipleChoice.onComponentTag(ListMultipleChoice.java:246) >> at >> org.apache.wicket.markup.html.form.CheckBoxMultipleChoice.onComponentTag(CheckBoxMultipleChoice.java:359) >> at org.apache.wicket.Component.renderComponent(Component.java:2597) >> at >> org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1536) >> at org.apache.wicket.Component.render(Component.java:2457) >> at >> org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1414) >> at >> org.apache.wicket.MarkupContainer.renderComponentTagBody(MarkupContainer.java:1601) >> at >> org.apache.wicket.MarkupContainer.onComponentTagBody(MarkupContainer.java:1525) >> at >> org.apache.wicket.markup.html.form.Form.onComponentTagBody(Form.java:1926) >> at org.apache.wicket.Component.renderComponent(Component.java:2626) >> >> >> >> >> >> On Thu, Oct 1, 2009 at 10:39 PM, Marcelo Fukushima <[email protected]> >> wrote: >> > while i couldnt identify which object is throwing the >> > lazyInitialization, the problem is probably that the entity is not >> > associated with the hibernate session. On the request that opens the >> > ModalWindow you must either reload or reatach the entity >> > >> > On Thu, Oct 1, 2009 at 7:55 PM, Albert Romanius <[email protected]> >> wrote: >> >> Hi, >> >> >> >> I am working with wicket and jpa/hibernate/spring. I am trying to >> >> create a ModalWindow, but I get a LazyLoadingException. I tryed the >> >> OSIVpattern, but it did not work. >> >> Using the modal inside a form does not make any difference also. >> >> >> >> Has anyone else this problem? >> >> >> >> >> >> The page which the modalWindow is triggered has: >> >> =============== >> >> AjaxLink link = new AjaxLink("openModal") { >> >> �...@override >> >> public void onClick(AjaxRequestTarget target) { >> >> modalWindow.setPageCreator(new >> >> ModalWindow.PageCreator() { >> >> public Page createPage() { >> >> return new MyModalPage(modalWindow, >> >> messageListModel.getObject().get(0)); >> >> } >> >> }); >> >> modalWindow.show(target); >> >> } >> >> }; >> >> ============== >> >> >> >> #Modal Panel >> >> ============== >> >> public class MyModalPage extends WebPage { >> >> >> >> �...@springbean >> >> GeneralRepository generalRepository; >> >> >> >> Set<SubMessage> selectedSubs = new HashSet<SubMessage>(); >> >> >> >> public MyModalPage(final ModalWindow window, Message message) { >> >> >> >> Message showMessage = (Message) >> >> generalRepository.<Message>getById(message.getId(), Message.class); >> >> >> >> //showMessage.getLazyList().size(); >> >> >> >> Form f = new Form("form"); >> >> add(f); >> >> >> >> CheckBoxMultipleChoice subMessagesCB = new >> CheckBoxMultipleChoice( >> >> "subMessages", new PropertyModel(this, >> >> "selectedSubs"), showMessage.getLazyList()); >> >> f.add(subMessagesCB); >> >> >> >> AjaxButton saveButton = new AjaxButton("save") { >> >> >> >> �...@override >> >> protected void onSubmit(AjaxRequestTarget target, Form<?> >> arg1) { >> >> window.close(target); >> >> } >> >> }; >> >> >> >> f.add(saveButton); >> >> >> >> add(new AjaxLink("closeCancel") >> >> { >> >> �...@override >> >> public void onClick(AjaxRequestTarget target) >> >> { >> >> window.close(target); >> >> } >> >> }); >> >> >> >> >> >> } >> >> ========== >> >> >> >> >> >> -- >> >> Albert >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: [email protected] >> >> For additional commands, e-mail: [email protected] >> >> >> >> >> > >> > >> > >> > -- >> > http://mapsdev.blogspot.com/ >> > Marcelo Takeshi Fukushima >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: [email protected] >> > For additional commands, e-mail: [email protected] >> > >> > >> >> >> >> -- >> Albert >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > > -- > Pedro Henrique Oliveira dos Santos > -- http://mapsdev.blogspot.com/ Marcelo Takeshi Fukushima --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
