uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard Eckart de Castilho <...@apache.org>
Subject Re: CasCopier breakages in uimaj-2.7.0
Date Sat, 23 May 2015 13:20:53 GMT
I am thinking of switching uimaFIT select to generally use the
withSnapshotIterator(). Any opinion?

-- Richard

On 23.05.2015, at 00:21, Petr Baudis <pasky@ucw.cz> wrote:

>  Hi!
> 
>  I'm trying to bring uimaj-2.7.0 to my code, but I'm hitting some
> trouble with my CasCopier code:
> 
>  * alreadyCopied(FeatureStructure fs) is gone without an obvious
>    replacement; it seems to me that
> 
> 	alreadyCopied(((FeatureStructureImpl) fs).getAddress())
> 
>    is the correct replacement after digging somewhat at CasCopier
>    source code, but is that even really right?  I guess this
>    is a bug as that interface was public...
> 
> 
>  * Even with the fix above, my code, e.g.
> 
> 	https://github.com/brmson/yodaqa/blob/master/src/main/java/cz/brmlab/yodaqa/analysis/passextract/PassFilter.java#L67
> 
> crashes with
> 
> 	Caused by: java.util.ConcurrentModificationException
> 		at org.apache.uima.cas.impl.FSIndexRepositoryImpl$LeafPointerIterator.checkConcurrentModification(FSIndexRepositoryImpl.java:967)
> 		at org.apache.uima.cas.impl.FSIndexRepositoryImpl$LeafPointerIterator.ll_get(FSIndexRepositoryImpl.java:1002)
> 		at org.apache.uima.cas.impl.FSIndexRepositoryImpl$LeafPointerIterator.get(FSIndexRepositoryImpl.java:995)
> 		at org.apache.uima.cas.impl.FSIteratorWrapper.get(FSIteratorWrapper.java:53)
> 		at org.apache.uima.cas.impl.FSIteratorImplBase.next(FSIteratorImplBase.java:67)
> 		at org.apache.uima.cas.impl.FSIteratorImplBase.next(FSIteratorImplBase.java:33)
> 		at cz.brmlab.yodaqa.analysis.passextract.PassFilter.process(PassFilter.java:74)
> 		at org.apache.uima.analysis_component.JCasAnnotator_ImplBase.process(JCasAnnotator_ImplBase.java:48)
> 		at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:385)
> 		... 26 more
> 
>     so it appears I cannot iterate a source view and simultaneously
>     copyFs() from it? What are the exact rules for this?  It seems
>     rather contraintuitive to me, and should be documented.
>     Using the new .withSnapshotIterator() feature helps to work-around
>     this, but it means I need to uglify code currently using JCasUtil
>     selects...
> 
>  Thanks,
> 
> -- 
> 				Petr Baudis
> 	If you do not work on an important problem, it's unlikely
> 	you'll do important work.  -- R. Hamming
> 	http://www.cs.virginia.edu/~robins/YouAndYourResearch.html


Mime
View raw message