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. */
