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
>>
>>
>

Reply via email to