You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by se...@apache.org on 2022/12/20 18:19:30 UTC

[ctakes] branch main updated: Add deprecation message and stub reminder for assertion. ListAnnotator Add catch for exception from TimSort

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 <se...@childrens.harvard.edu>
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();