code: protected Unmarshaller getOrCreateUnmarshaller() {
  
      try {
        Unmarshaller unmarshaller = this.jaxbContext.createUnmarshaller();
        unmarshaller.setEventHandler(this);
        try {
          unmarshaller.setProperty(com.sun.xml.internal.bind.IDResolver.class.getName(), new InternalValidatingIdResolver());
        } catch (Throwable e) {
          try {
            LOG.debug("No default JAXB implementation found ({0})- trying jaxb-impl (com.sun.xml.bind).", e.toString());
            unmarshaller.setProperty("com.sun.xml.bind.IDResolver", new ExternalValidatingIdResolver());
          } catch (Exception e2) {
            LOG.error("ID-validation will not work! Please check your JAXB implementation!", e2);
          }
        }
        return unmarshaller;
      } catch (JAXBException e) {
        throw new IllegalStateException(e);
      }
    }
docs: This method gets a {@link Marshaller} instance. This method potentially allows reusing the {@link Marshaller} (if
  it is thread-safe).
  
  @return the {@link Unmarshaller}.