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