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

rec pushed a commit to branch 
bugfix/213-Avoid-broken-typesystem-when-using-ManagedCas
in repository https://gitbox.apache.org/repos/asf/uima-uimafit.git

commit e76d286ced4dbcbfb6a17d3e665ae7bfa8c22954
Author: Richard Eckart de Castilho <[email protected]>
AuthorDate: Fri Nov 11 18:01:02 2022 +0100

    Issue #213: Avoid broken typesystem when using ManagedCas
    
    - Avoid UIMA bug when using Managed(J)Cas - 
https://github.com/apache/uima-uimaj/issues/234 - by initializing a dummy CAS 
in a static block.
---
 .../java/org/apache/uima/fit/testing/junit/ManagedCas.java    | 11 +++++++++++
 .../java/org/apache/uima/fit/testing/junit/ManagedJCas.java   | 11 +++++++++++
 2 files changed, 22 insertions(+)

diff --git 
a/uimafit-junit/src/main/java/org/apache/uima/fit/testing/junit/ManagedCas.java 
b/uimafit-junit/src/main/java/org/apache/uima/fit/testing/junit/ManagedCas.java
index b16d163..98b6aac 100644
--- 
a/uimafit-junit/src/main/java/org/apache/uima/fit/testing/junit/ManagedCas.java
+++ 
b/uimafit-junit/src/main/java/org/apache/uima/fit/testing/junit/ManagedCas.java
@@ -35,6 +35,7 @@ import org.apache.uima.fit.validation.ValidationException;
 import org.apache.uima.fit.validation.ValidationSummary;
 import org.apache.uima.fit.validation.Validator;
 import org.apache.uima.resource.metadata.TypeSystemDescription;
+import org.apache.uima.util.CasCreationUtils;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.extension.AfterAllCallback;
 import org.junit.jupiter.api.extension.AfterTestExecutionCallback;
@@ -57,6 +58,16 @@ public final class ManagedCas implements TestWatcher, 
AfterTestExecutionCallback
   private Validator defaultValidator = new Validator.Builder().build();
   private Validator validator = null;
 
+  static {
+    try {
+      // Try creating a CAS to initialize the internal UIMA types.
+      // Workaround for: https://github.com/apache/uima-uimaj/issues/234
+      CasCreationUtils.createCas();
+    } catch (Exception e) {
+      fail("Unable to initialize UIMA");
+    }
+  }
+
   /**
    * Provides a CAS with an auto-detected type system.
    */
diff --git 
a/uimafit-junit/src/main/java/org/apache/uima/fit/testing/junit/ManagedJCas.java
 
b/uimafit-junit/src/main/java/org/apache/uima/fit/testing/junit/ManagedJCas.java
index 74e51b2..8ff2a55 100644
--- 
a/uimafit-junit/src/main/java/org/apache/uima/fit/testing/junit/ManagedJCas.java
+++ 
b/uimafit-junit/src/main/java/org/apache/uima/fit/testing/junit/ManagedJCas.java
@@ -35,6 +35,7 @@ import org.apache.uima.fit.validation.ValidationSummary;
 import org.apache.uima.fit.validation.Validator;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.resource.metadata.TypeSystemDescription;
+import org.apache.uima.util.CasCreationUtils;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.extension.AfterAllCallback;
 import org.junit.jupiter.api.extension.AfterTestExecutionCallback;
@@ -58,6 +59,16 @@ public final class ManagedJCas
   private Validator defaultValidator = new Validator.Builder().build();
   private Validator validator = null;
 
+  static {
+    try {
+      // Try creating a CAS to initialize the internal UIMA types.
+      // Workaround for: https://github.com/apache/uima-uimaj/issues/234
+      CasCreationUtils.createCas();
+    } catch (Exception e) {
+      fail("Unable to initialize UIMA");
+    }
+  }
+
   /**
    * Provides a JCas with an auto-detected type system.
    */

Reply via email to