} else {
// load transient unmarshaller class directly
mname = m_transientUnmarshallerClasses[index-m_transientBase];
if (mname == null) {
throw new JiBXException("No unmarshaller defined for class " + m_factory.getMappedClasses()[index]);
}
clas = m_factory.loadClass(mname);
}
try {
// make sure we have a class
if (clas == null) {
throw new JiBXException("Unable to load unmarshaller class " + mname);
}
// create and cache an instance of the class
IUnmarshaller m = (IUnmarshaller)clas.newInstance();
m_unmarshallers[index] = m;
} catch (JiBXException e) {
throw e;
} catch (Exception e) {
throw new JiBXException("Unable to create unmarshaller of class " + mname + ":", e);
}
}
return m_unmarshallers[index];
}