On 18.01.2018, at 20:06, Marshall Schor <m...@schor.com> wrote: > > Got to the point where I'm getting a JCas feature offset incompatibility - > starting debug...
Great :) Meanwhile, I'm working off the things you found... Btw. trying to run the WebAnno UIMAv3 build from the command line, I found that the tests of the WebAnno remote API fail now. The reason seems to be that you blocked a sneaky little way that I used to change the SOFA string even after the CAS has been locked down: org.apache.uima.cas.CASRuntimeException: Can''t use standard set methods with SofaFS features. at org.apache.uima.jcas.cas.Sofa.setStringValue(Sofa.java:267) ~[classes/:na] at org.apache.uima.cas.impl.CASImpl.ll_setStringValue(CASImpl.java:3291) ~[classes/:na] at de.tudarmstadt.ukp.clarin.webanno.webapp.remoteapi.RemoteApiController2.forceSetFeatureValue(RemoteApiController2.java:1066) ~[classes/:na] at de.tudarmstadt.ukp.clarin.webanno.webapp.remoteapi.RemoteApiController2.createCompatibleCas(RemoteApiController2.java:1003) ~[classes/:na] at de.tudarmstadt.ukp.clarin.webanno.webapp.remoteapi.RemoteApiController2.annotationsCreate(RemoteApiController2.java:703) ~[classes/:na] The code triggering this is here (for your entertainment): // Just in case we really had to chomp off a trailing line break from the annotation CAS, // make sure we copy over the proper text from the initial CAS // NOT AT HOME THIS YOU SHOULD TRY // SETTING THE SOFA STRING FORCEFULLY FOLLOWING THE DARK SIDE IS! forceSetFeatureValue(annotationCas.getSofa(), CAS.FEATURE_BASE_NAME_SOFASTRING, initialCas.getDocumentText()); So Master Schor... you defeated me. I introduced this because it can happen that an annotation file uploaded through the remote API might have a trailing line break while the corresponding reference document that is already in WebAnno does not (or vice versa) - and I am here trying to fix this situation to ensure that the sofa strings are equal. Assuming you had to do that, how would you patch the sofa string? Cheers, -- Richard