good catch... I (obviously) didn't consider the error path... -Marshall
On 11/12/2019 3:48 AM, Richard Eckart de Castilho wrote: > On 11. Nov 2019, at 15:58, Marshall Schor <[email protected]> wrote: >> This stack trace seems impossible, because the 3rd line shows >> >> CASImpl.ll_getFSRef calling a FeatureStructureImpl.toString method, which I >> believe it doesn't do. > Actually .... > >> org.apache.uima.cas.impl.CASImpl.ll_getFSRef(CASImpl.java:3653) > in UIMA 2.10.2 the code at this line is: > > *uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java:3644ff* [1] > ``` > @Override > public final int ll_getFSRef(FeatureStructure fsImpl) { > if (null == fsImpl) { > return NULL; > } > final FeatureStructureImpl fsi = (FeatureStructureImpl) fsImpl; > if (this != fsi.getCASImpl()) { > if (this.getBaseCAS() != fsi.getCASImpl().getBaseCAS()) { > // https://issues.apache.org/jira/browse/UIMA-3429 > throw new CASRuntimeException(CASRuntimeException.DEREF_FS_OTHER_CAS, > new Object[] {fsi.toString(), this.toString() } ); > } > } > return fsi.getAddress(); > } > ``` > > So there *IS* in fact a call to `FeatureStructureImpl.toString()` here! > > Cheers, > > -- Richard > > [1] > https://github.com/apache/uima-uimaj/blob/uimaj-2.10.2/uimaj-core/src/main/java/org/apache/uima/cas/impl/CASImpl.java#L3643-L3657
