[
https://issues.apache.org/jira/browse/UIMA-6274?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17216013#comment-17216013
]
Richard Eckart de Castilho commented on UIMA-6274:
--------------------------------------------------
It is an optimization feature ;) The idea is that many often the same type
system is created multiple times (i.e. two type system objects which describe
exactly the same type system, e.g. which have been loaded from the same type
system description XML). So instead of keeping all these duplicate objects,
they are consolidated such that when a new type system is committed, we compare
against already known type systems and if we already have an equivalent, then
we discard the new object and re-use the existing one.
> 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
> Fix For: 3.2.0SDK
>
> 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)