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

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


The following commit(s) were added to refs/heads/main by this push:
     new 2eb5346  Add deprecation message and stub reminder for assertion. 
ListAnnotator Add catch for exception from TimSort
2eb5346 is described below

commit 2eb534696f5ab1badb37183726828ea9dd3f2331
Author: Sean Finan <[email protected]>
AuthorDate: Tue Dec 20 13:19:17 2022 -0500

    Add deprecation message and stub reminder for assertion.
    ListAnnotator Add catch for exception from TimSort
---
 .../apache/ctakes/assertion/medfacts/AssertionAnalysisEngine.java | 5 +++++
 .../ctakes/assertion/medfacts/AssertionAnalysisEngineFit.java     | 2 ++
 .../src/main/java/org/apache/ctakes/core/ae/ListAnnotator.java    | 8 +++++++-
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngine.java
 
b/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngine.java
index 45509af..49bae5d 100644
--- 
a/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngine.java
+++ 
b/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngine.java
@@ -48,12 +48,17 @@ import java.util.Set;
 
 //import org.jfree.util.Log;
 
+/**
+ * Stub classes must be replaced.  See 
https://issues.apache.org/jira/browse/CTAKES-76
+ * @deprecated   Use AssertionAnalysisEngineFit.
+ */
 @PipeBitInfo(
       name = "Assertion Engine",
       description = "Adds Negation, Uncertainty, Conditional and Subject to 
annotations.",
       role = PipeBitInfo.Role.ANNOTATOR,
       dependencies = { PipeBitInfo.TypeProduct.IDENTIFIED_ANNOTATION }
 )
+@Deprecated
 public class AssertionAnalysisEngine extends JCasAnnotator_ImplBase
 {
   private static Logger logger = 
Logger.getLogger(AssertionAnalysisEngine.class.getName());
diff --git 
a/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngineFit.java
 
b/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngineFit.java
index 1cdc876..f9ae740 100644
--- 
a/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngineFit.java
+++ 
b/ctakes-assertion/src/main/java/org/apache/ctakes/assertion/medfacts/AssertionAnalysisEngineFit.java
@@ -26,6 +26,8 @@ import static 
org.apache.ctakes.typesystem.type.constants.CONST.ATTR_SUBJECT_PAT
 
 
 /**
+ * Stub classes must be replaced.  See 
https://issues.apache.org/jira/browse/CTAKES-76
+ *
  * @author SPF , chip-nlp
  * @version %I%
  * @since 10/19/2016
diff --git 
a/ctakes-core/src/main/java/org/apache/ctakes/core/ae/ListAnnotator.java 
b/ctakes-core/src/main/java/org/apache/ctakes/core/ae/ListAnnotator.java
index 562bf4b..61059ab 100644
--- a/ctakes-core/src/main/java/org/apache/ctakes/core/ae/ListAnnotator.java
+++ b/ctakes-core/src/main/java/org/apache/ctakes/core/ae/ListAnnotator.java
@@ -238,7 +238,13 @@ final public class ListAnnotator extends 
JCasAnnotator_ImplBase {
       }
       final Collection<ListEntry> listEntries = new ArrayList<>( 
separators.size() + 1 );
       final List<Pair<Integer>> boundsList = new ArrayList<>( separators );
-      boundsList.sort( ( p1, p2 ) -> p1.getValue1() - p2.getValue2() );
+      try {
+         boundsList.sort( ( p1, p2 ) -> p1.getValue1() - p2.getValue2() );
+      } catch ( IllegalArgumentException iaE ) {
+         // TimSort sometimes throws an exception.  Rare but unfortunate.
+         LOGGER.error( iaE.getMessage() + ", ignoring possible list entries." 
);
+         return Collections.emptyList();
+      }
       Pair<Integer> leftBounds;
       int previousEntryEnd = listBegin;
       final int length = boundsList.size();

Reply via email to