On 12.10.2017, at 15:08, Marshall Schor <m...@schor.com> wrote:
> 
> Maybe the test is expecting the CAS's existing type system & index def to be
> replaced, but didn't specify REINIT?
> 
> Or, of course, there might be a bug.
> 
> What was the CasLoadMode for this test, and can you confirm the receiving CAS
> did not have a committed type system?

The test doesn't expect the CAS to be reinitialized. It is a lenient loading
test in which the extra typesystem provides the knowledge about the types 
in the case that is being deserialized into the target CAS.

I have debugged this further. The type system which is passed as the third
parameter to CasUtils.load(stream, cas, typesystem) is loaded using the 
following code:

            CASMgrSerializer casMgr = readCasManager();
            typeSystem = casMgr.getTypeSystem();
            typeSystem.commit();

The problem appears to be in the third line. Although commit() is called
explicitly here, isCommitted() still returns "false" afterwards.

Btw. DKPro Core build against UIMAv3 will soon be stable. There is this
issue and after that, one additional different exception:

java.lang.ArrayIndexOutOfBoundsException: -1
        at 
org.apache.uima.cas.impl.CasTypeSystemMapper.getToFeature(CasTypeSystemMapper.java:197)
        at 
org.apache.uima.cas.impl.CasTypeSystemMapper.getSrcFeature(CasTypeSystemMapper.java:172)
        at 
org.apache.uima.cas.impl.BinaryCasSerDes6.deserializeAfterVersion(BinaryCasSerDes6.java:1875)
        at 
org.apache.uima.cas.impl.BinaryCasSerDes.reinit(BinaryCasSerDes.java:594)
        at org.apache.uima.util.CasIOUtils.load(CasIOUtils.java:382)
        at org.apache.uima.util.CasIOUtils.load(CasIOUtils.java:344)
        ...

Cheers,

-- Richard


Reply via email to