You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by al...@apache.org on 2007/05/01 21:44:26 UTC
svn commit: r534214 - in /incubator/uima/uimaj/trunk/uimaj-core/src:
main/java/org/apache/uima/jcas/cas/AnnotationBase.java
test/java/org/apache/uima/cas/test/JcasSofaTest.java
Author: alally
Date: Tue May 1 12:44:25 2007
New Revision: 534214
URL: http://svn.apache.org/viewvc?view=rev&rev=534214
Log:
Fix AnnotationBase.getSofa()
UIMA-389: https://issues.apache.org/jira/browse/UIMA-389
Modified:
incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java
incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/JcasSofaTest.java
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java?view=diff&rev=534214&r1=534213&r2=534214
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/jcas/cas/AnnotationBase.java Tue May 1 12:44:25 2007
@@ -62,7 +62,8 @@
public SofaFS getSofa() {
if (AnnotationBase_Type.featOkTst && ((AnnotationBase_Type) jcasType).casFeat_sofa == null)
this.jcasType.jcas.throwFeatMissing("sofa", "uima.tcas.Annotation");
- return (SofaFS) jcasType.ll_cas.ll_getFSForRef(addr);
+ return (SofaFS) jcasType.ll_cas.ll_getFSForRef(
+ jcasType.ll_cas.ll_getRefValue(addr, ((AnnotationBase_Type)jcasType).casFeatCode_sofa));
}
public CAS getView() {
Modified: incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/JcasSofaTest.java
URL: http://svn.apache.org/viewvc/incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/JcasSofaTest.java?view=diff&rev=534214&r1=534213&r2=534214
==============================================================================
--- incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/JcasSofaTest.java (original)
+++ incubator/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/test/JcasSofaTest.java Tue May 1 12:44:25 2007
@@ -27,14 +27,17 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.ByteBuffer;
+import java.util.Iterator;
import java.util.StringTokenizer;
import junit.framework.TestCase;
+import org.apache.uima.UIMAFramework;
import org.apache.uima.cas.CAS;
import org.apache.uima.cas.FSIndex;
import org.apache.uima.cas.FSIterator;
import org.apache.uima.cas.SofaFS;
+import org.apache.uima.cas.SofaID;
import org.apache.uima.cas.Type;
import org.apache.uima.cas.admin.CASFactory;
import org.apache.uima.cas.admin.CASMgr;
@@ -58,8 +61,10 @@
import org.apache.uima.jcas.cas.Sofa;
import org.apache.uima.jcas.tcas.Annotation;
import org.apache.uima.resource.metadata.TypeSystemDescription;
+import org.apache.uima.resource.metadata.impl.TypeSystemDescription_impl;
import org.apache.uima.test.junit_extension.JUnitExtension;
import org.apache.uima.util.CasCreationUtils;
+import org.apache.uima.util.XMLInputSource;
import org.apache.uima.util.XMLSerializer;
import org.xml.sax.SAXException;
@@ -462,6 +467,46 @@
} catch (Exception e) {
JUnitExtension.handleException(e);
}
+ }
+
+ public void testIndexTwice() throws Exception {
+ try {
+ CAS newCas = CasCreationUtils.createCas(new TypeSystemDescription_impl(), null, null);
+ JCas newJCas = newCas.getJCas();
+ CAS view = newCas.createView("DetaggedView");
+ view.getJCas();
+
+ Annotation annot = new Annotation(newJCas);
+ annot.addToIndexes();
+
+ Iterator annotIter = newJCas.getAnnotationIndex(Annotation.type).iterator();
+ Annotation annot2 = (Annotation)annotIter.next();
+ assertEquals(annot, annot2);
+ assertEquals(annot2.getSofa(), annot2.getCASImpl().getSofa());
+
+ annot2.addToIndexes();
+ }
+ catch (Exception e) {
+ JUnitExtension.handleException(e);
+ }
+ }
+
+ public void testGetSofa() throws Exception {
+ try {
+ File typeSystemFile = JUnitExtension.getFile("ExampleCas/testTypeSystem.xml");
+ TypeSystemDescription typeSystem = UIMAFramework.getXMLParser().parseTypeSystemDescription(
+ new XMLInputSource(typeSystemFile));
+ CAS newCas = CasCreationUtils.createCas(typeSystem, null, null);
+ File xcasFile = JUnitExtension.getFile("ExampleCas/multiSofaCas.xml");
+ XCASDeserializer.deserialize(new FileInputStream(xcasFile), newCas);
+ JCas newJCas = newCas.getJCas();
+
+ SofaID sofaId = new SofaID_impl("EnglishDocument");
+ JCas view = newJCas.getView(newJCas.getSofa(sofaId));
+ }
+ catch (Exception e) {
+ JUnitExtension.handleException(e);
+ }
}
public static void main(String[] args) {