You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by ta...@apache.org on 2022/05/04 19:32:00 UTC

[tika] 02/02: TIKA-3750 - Fixed bug in ordering of Parsers during service loading.

This is an automated email from the ASF dual-hosted git repository.

tallison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git

commit 42da02ef1b8d1641b7bef3a3aa016fbcc6f40b9d
Author: tallison <ta...@apache.org>
AuthorDate: Wed May 4 15:31:36 2022 -0400

    TIKA-3750 - Fixed bug in ordering of Parsers during service loading.
---
 CHANGES.txt                                                           | 2 ++
 tika-core/src/main/java/org/apache/tika/parser/DefaultParser.java     | 3 +++
 .../src/test/java/org/apache/tika/utils/ServiceLoaderUtilsTest.java   | 4 ++--
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index e815c5557..39acd5973 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,7 @@
 Release 2.4.1 - ???
 
+   * Fixed bug in ordering of Parsers during service loading (TIKA-3750).
+
    * Users can expand system properties from the forking
      process into forked tika-server processes (TIKA-3748).
 
diff --git a/tika-core/src/main/java/org/apache/tika/parser/DefaultParser.java b/tika-core/src/main/java/org/apache/tika/parser/DefaultParser.java
index 336adee93..3205ea81d 100644
--- a/tika-core/src/main/java/org/apache/tika/parser/DefaultParser.java
+++ b/tika-core/src/main/java/org/apache/tika/parser/DefaultParser.java
@@ -115,6 +115,9 @@ public class DefaultParser extends CompositeParser {
             }
         }
         ServiceLoaderUtils.sortLoadedClasses(parsers);
+        //reverse the order of parsers so that custom ones come last
+        //this will prevent them from being overwritten in getParsers(ParseContext ..)
+        Collections.reverse(parsers);
         return parsers;
     }
 
diff --git a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/utils/ServiceLoaderUtilsTest.java b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/utils/ServiceLoaderUtilsTest.java
index a2e00d464..31ec21ce0 100644
--- a/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/utils/ServiceLoaderUtilsTest.java
+++ b/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/utils/ServiceLoaderUtilsTest.java
@@ -54,7 +54,7 @@ public class ServiceLoaderUtilsTest extends TikaTest {
 
         assertNotEquals(vorbisIndex, fictIndex);
         assertNotEquals(fictIndex, dcxmlIndex);
-        assertTrue(vorbisIndex < fictIndex);
-        assertTrue(fictIndex > dcxmlIndex);
+        assertTrue(vorbisIndex > fictIndex);
+        assertTrue(fictIndex < dcxmlIndex);
     }
 }