I am trying to marshal what is essentially a simple bean with some
contained classes. I am getting a null pointer exception in the
generated code and, since there is no source for this code, I am not
sure how to proceed. The following is an extract from my mapping file.
The class being marshaled is DateTimePeriod.
<!-- Mapping for com.cisco.nm.acs.im.common.DateTimePeriod -->
<mapping name="DateTimePeriod"
class="com.cisco.nm.acs.im.common.DateTimePeriod"
extends="com.cisco.nm.acs.im.common.PredefinedValueDefinition">
<structure map-as="PredefinedValueDefinition.type"/>
<value name="startImmediately" field="startImmediately"/>
<value name="noEndTime" field="noEndTime"/>
<value name="startDate" field="startDate"/>
<value name="endDate" field="endDate"/>
<structure name="dayDefinitions" usage="optional">
<collection field="dayDefinitions"/>
</structure>
</mapping>
<!-- Mapping for com.cisco.nm.acs.im.common.HourDefinition -->
<mapping name="HourDefinition"
class="com.cisco.nm.acs.im.common.HourDefinition">
<value name="hourNumber" field="hourNumber"/>
<value name="id" field="id"/>
</mapping>
<!-- Mapping for com.cisco.nm.acs.im.common.DayDefinition -->
<mapping name="DayDefinition"
class="com.cisco.nm.acs.im.common.DayDefinition">
<value name="dayName" field="dayName"/>
<value name="id" field="id"/>
<structure name="hourDefinitions">
<collection field="hourDefinitions"/>
</structure>
</mapping>
<!-- Mapping for
com.cisco.nm.acs.im.common.PredefinedValueDefinition -->
<mapping
class="com.cisco.nm.acs.im.common.PredefinedValueDefinition"
abstract="true" extends="com.cisco.nm.acs.im.InfoModelBase"
type-name="PredefinedValueDefinition.type">
<structure map-as="com.cisco.nm.acs.im.InfoModelBase"/>
</mapping>
<mapping name="PredefinedValueDefinition"
class="com.cisco.nm.acs.im.common.PredefinedValueDefinition">
<structure map-as="PredefinedValueDefinition.type"/>
</mapping>
<!-- Mapping for com.cisco.nm.acs.im.InfoModelBase -->
<mapping class="com.cisco.nm.acs.im.InfoModelBase" abstract="true"
extends="com.cisco.nm.acs.im.ReferredObject">
<structure map-as="com.cisco.nm.acs.im.ReferredObject"/>
<value name="name" field="name"/>
<value name="description" field="description" usage="optional"/>
<value name="version" field="version"/>
</mapping>
And here is the exception I am getting.
java.lang.NullPointerException
at
com.cisco.nm.acs.im.common.DayDefinition.JiBX_jibxBinding_marshal_1_0(Da
yDefinition.java)
at
com.cisco.nm.acs.im.common.JiBX_jibxBindingDayDefinition_access.marshal(
)
at
com.cisco.nm.acs.im.common.DayDefinition.marshal(DayDefinition.java)
at
com.cisco.nm.acs.im.common.JiBX_MungeAdapter.JiBX_jibxBinding_marshal_1_
0()
at
com.cisco.nm.acs.im.common.DateTimePeriod.JiBX_jibxBinding_marshal_4_0(D
ateTimePeriod.java)
at
com.cisco.nm.acs.im.common.JiBX_jibxBindingDateTimePeriod_access.marshal
()
at
com.cisco.nm.acs.im.common.DateTimePeriod.marshal(DateTimePeriod.java)
at
org.jibx.runtime.impl.MarshallingContext.marshalRoot(MarshallingContext.
java:1044)
at
org.jibx.runtime.impl.MarshallingContext.marshalDocument(MarshallingCont
ext.java:1070)
at
com.cisco.nm.acs.mgmt.replication.RuntimeXMLTranslator.translateXML(Runt
imeXMLTranslator.java:70)
at
com.cisco.nm.acs.mgmt.replication.RuntimeDispatcherNgTest.testTranslatio
n(RuntimeDispatcherNgTest.java:93)
...snip
Here is the code initialising the data in my test:
DateTimePeriod dateTimePeriod = new DateTimePeriod();
dateTimePeriod.setDescription("description");
dateTimePeriod.setName("name");
dateTimePeriod.setStartDate(new Date());
dateTimePeriod.setEndDate(new Date());
DayDefinition day = new DayDefinition();
day.setDayName(DayOfWeek.FRIDAY);
day.setId(4L);
HourDefinition hour = new HourDefinition();
hour.setHourNumber(4);
hour.setId(5L);
List<HourDefinition> hours = new ArrayList<HourDefinition>();
hours.add(hour);
day.setHourDefinitions(hours);
List<DayDefinition> days = new ArrayList<DayDefinition>();
days.add(day);
dateTimePeriod.setDayDefinitions(days);
dateTimePeriod.setVersion(1);
And here is a cut down version of the class that is causing the problem:
public class DayDefinition
implements java.io.Serializable
{
private com.cisco.nm.acs.im.common.DayOfWeek dayName;
private java.lang.Long id;
private com.cisco.nm.acs.im.common.DateTimePeriod
parentDateTimePeriod;
private List <com.cisco.nm.acs.im.common.HourDefinition>
hourDefinitions;
public DayDefinition()
{
}
public DayDefinition(com.cisco.nm.acs.im.common.DayOfWeek dayName,
java.lang.Long id, List <com.cisco.nm.acs.im.common.HourDefinition>
hourDefinitions)
{
this.dayName = dayName;
this.id = id;
this.hourDefinitions= hourDefinitions;
}
public com.cisco.nm.acs.im.common.DayOfWeek getDayName(){
return this.dayName;
}
public void setDayName(com.cisco.nm.acs.im.common.DayOfWeek
dayName){
this.dayName = dayName;
}
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
}
public List< com.cisco.nm.acs.im.common.HourDefinition >
getHourDefinitions(){
return this.hourDefinitions;
}
public void setHourDefinitions(List<
com.cisco.nm.acs.im.common.HourDefinition > hourDefinitionsParam){
// adding a check if it's the same instance as member ignore
the set operation
if (this.hourDefinitions == hourDefinitionsParam){
return;
}
// adding a check to avoid replacement of list
// in the case hibernate populate it since the orphan will be
deleted
if (this.hourDefinitions == null){
this.hourDefinitions = hourDefinitionsParam;
}else{
this.hourDefinitions.clear ();
if (hourDefinitionsParam != null){
this.hourDefinitions.addAll
(hourDefinitionsParam);
}
}
}
}
Any help would be much appreciated.
Thanks,
Ian.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users