Loading data via XML Mapping not properly handling empty XML elements

Description

An XML data file that worked with Hibernate 3.3 now throws "org.hibernate.HibernateException: could not parse timestamp string" for an empty XML node corresponding to a timestamp column.

Example Class, hbm mapping and XML data file attached.

com.novell.soa.persist.PersistenceException: org.hibernate.HibernateException: could not parse timestamp string
at com.novell.soa.persist.HibernateDAO.loadData(HibernateDAO.java:533)
at com.novell.soa.persist.HibernateDAO.loadData(HibernateDAO.java:479)
at com.novell.soa.af.impl.persist.ProcessDAOTest.setUp(ProcessDAOTest.java:92)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
at junit.extensions.TestSetup.run(TestSetup.java:23)
at com.intellij.junit3.TestRunnerUtil$SuiteMethodWrapper.run(TestRunnerUtil.java:262)
at com.intellij.junit3.JUnit3IdeaTestRunner.doRun(JUnit3IdeaTestRunner.java:109)
at com.intellij.junit3.JUnit3IdeaTestRunner.startRunnerWithArgs(JUnit3IdeaTestRunner.java:43)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:196)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:115)
Caused by: org.hibernate.HibernateException: could not parse timestamp string
at org.hibernate.type.descriptor.java.JdbcTimestampTypeDescriptor.fromString(JdbcTimestampTypeDescriptor.java:76)
at org.hibernate.type.descriptor.java.JdbcTimestampTypeDescriptor.fromString(JdbcTimestampTypeDescriptor.java:42)
at org.hibernate.type.AbstractStandardBasicType.fromString(AbstractStandardBasicType.java:66)
at org.hibernate.type.AbstractStandardBasicType.fromXMLNode(AbstractStandardBasicType.java:300)
at org.hibernate.property.Dom4jAccessor$ElementGetter.get(Dom4jAccessor.java:229)
at org.hibernate.property.Dom4jAccessor$Dom4jGetter.getForInsert(Dom4jAccessor.java:116)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValuesToInsert(AbstractEntityTuplizer.java:497)
at org.hibernate.persister.entity.AbstractEntityPersister.getPropertyValuesToInsert(AbstractEntityPersister.java:3975)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:289)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:203)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:143)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701)
at com.novell.soa.persist.HibernateDAO.loadData(HibernateDAO.java:510)
... 27 more
Caused by: java.text.ParseException: Unparseable date: ""
at java.text.DateFormat.parse(DateFormat.java:337)
at org.hibernate.type.descriptor.java.JdbcTimestampTypeDescriptor.fromString(JdbcTimestampTypeDescriptor.java:73)
... 45 more

Attachments

3
  • 15 Mar 2011, 05:33 PM
  • 15 Mar 2011, 05:33 PM
  • 15 Mar 2011, 05:33 PM

Activity

Brett MeyerJuly 8, 2014 at 3:10 PM

Bulk rejecting stale issues. If this is still a legitimate issue on ORM 4, feel free to comment and attach a test case. I'll address responses case-by-case. Thanks!

Brett MeyerApril 7, 2014 at 5:45 PM

In an effort to clean up, in bulk, tickets that are most likely out of date, we're transitioning all ORM 3 tickets to an "Awaiting Test Case" state. Please see http://in.relation.to/Bloggers/HibernateORMJIRAPoliciesAndCleanUpTactics for more information.

If this is still a legitimate bug in ORM 4, please provide either a test case that reproduces it or enough detail (entities, mappings, snippets, etc.) to show that it still fails on 4. If nothing is received within 3 months or so, we'll be automatically closing them.

Thank you!

Don SmithMarch 15, 2011 at 5:51 PM

Workaround: remove the empty nodes from the XML data file

Rejected

Details

Assignee

Reporter

Components

Affects versions

Priority

Created March 15, 2011 at 5:33 PM
Updated July 8, 2014 at 3:10 PM
Resolved July 8, 2014 at 3:10 PM

Flag notifications