TIKA-2546: upgrade to java-libpst 0.9.3
diff --git a/CHANGES.txt b/CHANGES.txt
index 13200e1..00d4b43 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -8,6 +8,8 @@
 Release 1.24 - ???
 
    * Fix bug in ASM parser configuration (TIKA-2992).
+   
+   * Upgrade to java-libpst 0.9.3 (TIKA-2546).
 
 Release 1.23 - 12/02/2019
 
diff --git a/tika-parsers/pom.xml b/tika-parsers/pom.xml
index ed515cf..857f01f 100644
--- a/tika-parsers/pom.xml
+++ b/tika-parsers/pom.xml
@@ -355,12 +355,10 @@
         </exclusion>
       </exclusions>
     </dependency>
-    <!-- can't upgrade to java-libpst 0.9.3 because it requires Java 8
-         and is buggy with OST TIKA-2415 -->
     <dependency>
       <groupId>com.pff</groupId>
       <artifactId>java-libpst</artifactId>
-      <version>0.8.1</version>
+      <version>0.9.3</version>
     </dependency>
     <dependency>
       <groupId>com.github.junrar</groupId>
diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/mbox/OutlookPSTParser.java b/tika-parsers/src/main/java/org/apache/tika/parser/mbox/OutlookPSTParser.java
index 612b937..3f9ce98 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/mbox/OutlookPSTParser.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/mbox/OutlookPSTParser.java
@@ -87,11 +87,18 @@
             metadata.set(Metadata.CONTENT_LENGTH, valueOf(pstFile.getFileHandle().length()));
             boolean isValid = pstFile.getFileHandle().getFD().valid();
             metadata.set("isValid", valueOf(isValid));
+            if(pstFile.getPSTFileType() == PSTFile.PST_TYPE_2013_UNICODE) {
+                throw new TikaException("OST 2013 support not added yet. It will be when https://github.com/rjohnsondev/java-libpst/issues/60 is fixed.");
+            }
             if (isValid) {
                 parseFolder(xhtml, pstFile.getRootFolder(), embeddedExtractor);
             }
         } catch (Exception e) {
-            throw new TikaException(e.getMessage(), e);
+            if(e instanceof TikaException) {
+                throw (TikaException) e;
+            }else {
+                throw new TikaException(e.getMessage(), e);
+            }
         } finally {
             if (pstFile != null && pstFile.getFileHandle() != null) {
                 try {