throw better msg/exception for old, unsupported mdb versions
@@ -33,6 +33,7 @@ import org.xml.sax.SAXException;
import org.apache.tika.exception.EncryptedDocumentException;
import org.apache.tika.exception.TikaException;
+import org.apache.tika.exception.UnsupportedFormatException;
import org.apache.tika.io.TikaInputStream;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.metadata.Property;
@@ -100,6 +101,13 @@ public class JackcessParser extends AbstractParser {
db.setLinkResolver(IGNORE_LINK_RESOLVER);//just in case
JackcessExtractor ex = new JackcessExtractor(metadata, context, locale);
ex.parse(db, xhtml);
+ } catch (IOException e) {
+ //TIKA-3849
+ if (e.getMessage() != null && e.getMessage().contains("Unrecognized map type: 75")) {
+ throw new UnsupportedFormatException(
+ "Jackcess doesn't process mdb versions before v97");
+ }
+ throw e;
} catch (IllegalStateException e) {
if (e.getMessage() != null && e.getMessage().contains("Incorrect password")) {
throw new EncryptedDocumentException(e);
