You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "Richard Eckart de Castilho (Jira)" <de...@uima.apache.org> on 2020/10/16 05:54:00 UTC

[jira] [Commented] (UIMA-6274) Setting feature on builtin JCas cover class that was loaded before initializing TypeSystemImpl fails

    [ https://issues.apache.org/jira/browse/UIMA-6274?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17215206#comment-17215206 ] 

Richard Eckart de Castilho commented on UIMA-6274:
--------------------------------------------------

[~serge712] that appeared to be a very specific edge case in an optimized part of the JCas initialization logic - but I think I found a good fix for it.

Can you verify that my changes work in your environment? 

https://github.com/apache/uima-uimaj/pull/67

> Setting feature on builtin JCas cover class that was loaded before initializing TypeSystemImpl fails
> ----------------------------------------------------------------------------------------------------
>
>                 Key: UIMA-6274
>                 URL: https://issues.apache.org/jira/browse/UIMA-6274
>             Project: UIMA
>          Issue Type: Bug
>          Components: uimaj
>    Affects Versions: 3.1.1SDK
>         Environment: java 1.8.0-201
>            Reporter: Serge Démoulin
>            Assignee: Richard Eckart de Castilho
>            Priority: Major
>         Attachments: Screenshot 2020-10-15 at 20.24.40.png, Screenshot 2020-10-15 at 20.30.29.png, easymock-green.zip, easymock-red.zip, exception.txt, proxy-green.zip, proxy-red.zip
>
>
> The following Code (see attached proxy-red.zip)
> {code:java}
> ProxyFactory f = new ProxyFactory();
> f.setTargetClass(JCas.class);
> f.getProxy();
> JCas jCas1 = JCasFactory.createJCas(new String[] {});
> jCas1.setDocumentText("test text"); // ==> ArrayIndexOutOfBoundsException
> {code}
> is throwing the following exception (see attached exception.txt)
> java.lang.ArrayIndexOutOfBoundsException: -1
>  at ....FeatureStructureImplC._setIntValueCommon(FeatureStructureImplC.java:1636)
> WORKAROUND (see attached proxy-green.zip)
>  Creating a regular JCas before fix the problem  (without using the created JCas)
> {code:java}
> JCasFactory.createJCas(new String[] {}); 
> ProxyFactory f = new ProxyFactory(); 
> f.setTargetClass(JCas.class); 
> f.getProxy(); 
> JCas jCas1 = JCasFactory.createJCas(new String[] {}); 
> jCas1.setDocumentText("test text"); // ==> No exception
> {code}
>  
> EASYMOCK
>  The same problem occurs with EasyMock (see attached easymock.-red.zip and easymock-green.zip)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)