}
if (omElement instanceof OMSourcedElement) {
if ( ((OMSourcedElement) omElement).getDataSource() instanceof JAXBDataSource) {
JAXBDataSource ds = (JAXBDataSource) ((OMSourcedElement)omElement).getDataSource();
JAXBDSContext dsContext = ds.getContext();
try {
if (dsContext.getJAXBContext() == ((JAXBBlockContext)context).getJAXBContext()) {
// Shortcut, use existing JAXB object
Object jaxb = ds.getObject();
return new JAXBBlockImpl(jaxb, (JAXBBlockContext)context, qName, this);
}
} catch (JAXBException e) {
if (log.isDebugEnabled()) {
log.debug("Falling back to using normal unmarshalling approach. " + e.getMessage());