Hi Peter, thanks for your comments. Some notes:
1) The Java used is Java 8 (oracle, version 112 I think), which might be different. 2) I'm running with the last Ruta release from the svn tag. 3) The uima v3 is not checked in in a working state with the fixes I put in for bugs found with Ruta testing. There's a bit of scaffolding needed to test with uima v3 at the moment, including building a version of uimaFIT with some changes for v3 (in the test cases). The poms have to change because Java 8 is required. I haven't tried reproducing this using Java 8 with the tag - I'll do that. I think you probably should not bother trying to reproduce this with uima v3 (yet)... -Marshall On 1/3/2017 3:48 AM, Peter Klügl wrote: > Hi, > > > first of all, thanks for testing :-) > > > comments below... > > > Am 02.01.2017 um 20:11 schrieb Marshall Schor: >> Hi, >> >> I'm testing UIMA version 3 with Ruta Core. Found 1 bug (and fixed it) in v3 >> :-). >> >> A lot of the Ruta core tests work at this point. >> >> One test, the SubAtomicTest, fails with an assertion failure at the >> assertions >> in lines 68-71. When I "single step" the call in line 61 to >> RutaTestUtils.process, (running large parts at full speed, others single >> stepping), it works. At full speed, it seems to add fewer Annotations to the >> CAS indexes. >> >> So I'm trying to guess what might be going wrong at full speed. >> >> Does this test or Ruta make any use of multi-threading? > No multi-threading. Parallelization is only applied on component or > pipeline level. There should of course no difference at all when debugging. > >> What is this test doing that's different from the many other tests (that >> run OK)? > Not so much. The test checks if the internal "indexing" works if another > component adds annotations that are smaller than the usual ones. This > forces the implementation to update the RutaBasic annotations > >> The single stepping is hard to comprehend (for me) because there's lots of >> indirection and deep calling stacks. Is there some general debugging switch >> I >> should turn on to make this more comprehensible what's going wrong? I have >> the >> advantage of two identical implementations (only changing the underlying UIMA >> version) so I can run them side-by-side and look at where the difference >> happens. > There is no additional debugging help. The implementation is actually > designed this way in order to make debugging easier :-( > (Well, in contrast to processing all language elements of one rule > within one loop. There are also some historical reasons.) > > I had a similar problem one time when there was a different Java > version. Something changed in the behavior of TreeMaps/TreeSets. Do both > checkouts use the same java version? > > I assume you use the current trunk of Ruta? First, I would check the > RutaBasic annotations in the CAS before and after method > RutaStream.initalizeBasics(), especially for the second process() in the > test. > > I'll try to reproduce the problem today. > > > Peter > >> -Marshall >> >> >
