Both XmlEventDecoder and Jaxb2XmlDecoder catch XMLStreamExceptions and rethrow them using Exceptions.propagate. According to the Decoder contract, these should be DecodingExceptions instead.