Hi Johan and Maurice,

Many thanks - I've upgraded to the 1.3-SNAPSHOT, and that has fixed my
problem.

(Anyone who finds this message looking for snapshot releases, check:
http://wicket.apache.org/getting-wicket.html)


Cheers,
Charlie.



On Tue, Mar 25, 2008 at 1:50 PM, Maurice Marrink <[EMAIL PROTECTED]> wrote:

> This has recently been fixed on trunk. You could either switch to
> version 1.3-SNAPSHOT or wait til 1.3.3 comes out.
> If you wait untill 1.3.3 you could work around the issue by either
> switching to deployment mode or catching the null in your code and
> then do nothing.
>
> Dammit Johan, could you not have waited 30 seconds :P
>
> Maurice
>
> On Tue, Mar 25, 2008 at 2:44 PM, Charlie Dobbie <[EMAIL PROTECTED]>
> wrote:
> > Hi all,
> >
> >  I've recently upgraded a 1.2.6 application to 1.3.1.  This involved
> >  simultaneously upgrading libraries for Wicket, Databinder and Hibernate
> to
> >  name but three, so until my application settles, I'll never be sure
> which
> >  library is causing each issue!
> >
> >  I'm getting the following exception in my logs on development, but not
> >  deployment:
> >
> >  25-Mar-2008 12:56:21 org.apache.wicket.RequestCycle detach
> >  SEVERE: there was an error cleaning up target
> >
> [EMAIL PROTECTED]
> [Page
> >  class = flow.pages.internal.job.ViewJob, id = 1, version =
> >  0]->newDuplicationTaskLink->interface
> >  org.apache.wicket.markup.html.link.ILinkListener.ILinkListener (request
> >  paramaters: [RequestParameters  componentPath=1:newDuplicationTaskLink
> >  pageMapName=null versionNumber=0 interfaceName=ILinkListener
> >  componentId=null behaviorId=null urlDepth=-1 parameters={}
> >  onlyProcessIfPathActive=false]).
> >  org.hibernate.PropertyValueException: not-null property references a
> null or
> >  transient value: flow.data.DuplicationTask.description
> >     at org.hibernate.engine.Nullability.checkNullability(
> Nullability.java
> >  :72)
> >  [...snip...]
> >     at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java
> :305)
> >     at flow.pages.internal.job.ViewJob$9.isVisible(ViewJob.java:219)
> >     at org.apache.wicket.Component.renderHead(Component.java:2528)
> >     at org.apache.wicket.markup.html.WebPage$1.component(WebPage.java
> :432)
> >     at org.apache.wicket.MarkupContainer.visitChildren(
> MarkupContainer.java
> >  :821)
> >     at org.apache.wicket.MarkupContainer.visitChildren(
> MarkupContainer.java
> >  :836)
> >     at org.apache.wicket.MarkupContainer.visitChildren(
> MarkupContainer.java
> >  :861)
> >     at org.apache.wicket.markup.html.WebPage.onDetach(WebPage.java:425)
> >     at org.apache.wicket.Component.detach(Component.java:1075)
> >     at
> org.apache.wicket.request.target.component.PageRequestTarget.detach(
> >  PageRequestTarget.java:80)
> >     at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1046)
> >     at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1334)
> >     at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
> >     at org.apache.wicket.protocol.http.WicketFilter.doGet(
> WicketFilter.java
> >  :354)
> >     at org.apache.wicket.protocol.http.WicketFilter.doFilter(
> >  WicketFilter.java:194)
> >     at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(
> >  ServletHandler.java:1084)
> >  [...snip...]
> >
> >
> >  I think my problem might be related to the onDetach method in WebPage.
>  In
> >  this method, if there is an HtmlHeaderContainer, and if the application
> is
> >  in development mode, it visits all the components on the page and calls
> >  renderHead on each.
> >
> >  I do not understand the intention behind that at all.  Can anyone
> explain
> >  why it is doing what it is doing, and how I can avoid this Exception?
> >
> >  Charlie.
> >
> >
> >
> >  More detailed information if required:
> >
> >  I have a page (ViewJob) which which has a Link whose onClick calls:
> >
> >     HibernateObjectModel jobModel =
> >
>  
> (HibernateObjectModel)((IChainingModel)ViewJob.this.getModel()).getChainedModel();
> >     WebPage responsePage = new NewDuplicationTask(jobModel);
> >     setResponsePage(responsePage);
> >
> >  The constructor of the NewDuplicationTask page extracts the Job from
> the
> >  passed jobModel and calls duplicationTask.setJob(job).  The
> DuplicationTask
> >  that it holds has a "description" property, which is initially null and
> is
> >  populated via a required field on the NewDuplicationTask page.
>  However, the
> >  above Exception complaining about a null description property occurs at
> page
> >  display, way before the form could have been submitted.  The Exception
> >  thrown is pointing to an isVisible check, on the page that the user has
> just
> >  left.
> >
> >  The renderHead call mentioned above calls isVisible, and in my case I
> have a
> >  component whose visibility depends on whether or not a Job already
> exists in
> >  the database with the same "job number".  I believe this check is
> causing
> >  Hibernate to attempt to flush the Job back to the database, which then
> >  causes the Exception because the DuplicationTask that has just been
> added to
> >  the in-memory Job hasn't been completed yet.  And certainly shouldn't
> be
> >  flushed to the database until the Submit button is finally pressed!
> >
>

Reply via email to