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

Reply via email to