I tried to persist an object using
session.saveOrUpdateCopy(completedTask,completedTask.getId());
I got NullPointerException. However, if i use save(), no problems occur.
Here is a stack trace
Code:
hk.hku.csis.biosphere.webservices.buffer.BufferException: hk.hku.csis.biosphere.webservices.buffer.PersistenceException: net.sf.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) getter of hk.hku.csis.biosphere.webservices.buffer.CompletedTask.?
at hk.hku.csis.biosphere.webservices.buffer.CompletedTaskBufferImpl.putCompletedTask(CompletedTaskBufferImpl.java:41)
at hk.hku.csis.biosphere.webservices.processor.AlgorithmProcessorThread.run(AlgorithmProcessorThread.java:149)
Caused by: hk.hku.csis.biosphere.webservices.buffer.PersistenceException: net.sf.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) getter of hk.hku.csis.biosphere.webservices.buffer.CompletedTask.?
at hk.hku.csis.biosphere.webservices.buffer.DatabaseCompletedTaskBuffer.putCompletedTask(DatabaseCompletedTaskBuffer.java:72)
at hk.hku.csis.biosphere.webservices.buffer.CompletedTaskBufferImpl.putCompletedTask(CompletedTaskBufferImpl.java:39)
... 1 more
Caused by: net.sf.hibernate.PropertyAccessException: exception setting property value with CGLIB (set hibernate.cglib.use_reflection_optimizer=false for more info) getter of hk.hku.csis.biosphere.webservices.buffer.CompletedTask.?
at net.sf.hibernate.persister.AbstractEntityPersister.getPropertyValues(AbstractEntityPersister.java:238)
at net.sf.hibernate.impl.SessionImpl.doCopy(SessionImpl.java:3826)
at net.sf.hibernate.impl.SessionImpl.saveOrUpdateCopy(SessionImpl.java:3841)
at hk.hku.csis.biosphere.webservices.buffer.DatabaseCompletedTaskBuffer.putCompletedTask(DatabaseCompletedTaskBuffer.java:66)
... 2 more
Caused by: java.lang.NullPointerException
at hk.hku.csis.biosphere.webservices.buffer.CompletedTask$$BulkBeanByCGLIB$$cd42dfa5.getPropertyValues(<generated>)
at net.sf.cglib.beans.BulkBean.getPropertyValues(BulkBean.java:86)
at net.sf.hibernate.persister.AbstractEntityPersister.getPropertyValues(AbstractEntityPersister.java:234)
... 5 more
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class
name="hk.hku.csis.biosphere.webservices.buffer.CompletedTask"
table="completedTask"
dynamic-update="false"
dynamic-insert="false"
>
<id
name="id"
column="id"
type="java.lang.Long"
unsaved-value="null"
>
<generator class="assigned">
</generator>
</id>
<property
name="completionTime"
type="java.util.Date"
update="true"
insert="true"
column="completionTime"
/>
<one-to-one
name="task"
class="hk.hku.csis.biosphere.webservices.buffer.Task"
cascade="save-update"
outer-join="auto"
constrained="false"
/>
<property
name="rowClusterResult"
type="serializable"
update="true"
insert="true"
>
<column
name="rowClusterResult"
/>
</property>
<property
name="columnClusterResult"
type="serializable"
update="true"
insert="true"
>
<column
name="columnClusterResult"
/>
</property>
<property
name="exception"
type="serializable"
update="true"
insert="true"
>
<column
name="exception"
/>
</property>
<!--
To add non XDoclet property mappings, create a file named
hibernate-properties-CompletedTask.xml
containing the additional properties and place it in your merge dir.
-->
</class>
</hibernate-mapping>