[ 
https://issues.apache.org/jira/browse/UIMA-5050?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15441092#comment-15441092
 ] 

Richard Eckart de Castilho commented on UIMA-5050:
--------------------------------------------------

I do the same as you do.

On my machine, the IndexComparitorTest runs before the 
IndexCorruptionReportingTest.

IndexComparitorTest sets the system property 
THROW_EXCEPTION_FS_UPDATES_CORRUPTS to true.
Then IndexCorruptionReportingTest fails because this property is set. 
In my Eclipse, all the tests run in the same JVM, so system properties carry 
over between tests.
In Maven, afaik each suite uses it's own JVM fork.

Tests that modify system properties should save the old values during a setup 
stage and restore them in a teardown.

> IndexCorruptionReportingTest fails in Eclipse 
> ----------------------------------------------
>
>                 Key: UIMA-5050
>                 URL: https://issues.apache.org/jira/browse/UIMA-5050
>             Project: UIMA
>          Issue Type: Bug
>          Components: Core Java Framework
>            Reporter: Richard Eckart de Castilho
>            Priority: Minor
>
> IndexCorruptionReportingTest fails in Eclipse when all tests in uimaj-core 
> are executed at once. When it runs in Maven or in isolation, it works. This 
> is probably because surefire runs tests classes in forked JVMs so system 
> properties do not leak between tests. Probably some other test sets 
> IS_THROW_EXCEPTION_CORRUPT_INDEX and doesn't restore the property to its 
> original state after executing.
> {noformat}
> org.apache.uima.UIMARuntimeException: Illegal update of indexed Feature 
> Structure feature used as an key in one or more indices
>       at 
> org.apache.uima.cas.impl.CASImpl.featModWhileInIndexReport(CASImpl.java:3692)
>       at 
> org.apache.uima.cas.impl.CASImpl.checkForInvalidFeatureSetting(CASImpl.java:3670)
>       at org.apache.uima.cas.impl.CASImpl.setFeatureValue(CASImpl.java:2245)
>       at org.apache.uima.cas.impl.CASImpl.ll_setIntValue(CASImpl.java:3837)
>       at org.apache.uima.jcas.tcas.Annotation.setBegin(Annotation.java:78)
>       at 
> org.apache.uima.cas.impl.IndexCorruptionReportingTest.testReport(IndexCorruptionReportingTest.java:78)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at junit.framework.TestCase.runTest(TestCase.java:154)
>       at junit.framework.TestCase.runBare(TestCase.java:127)
>       at junit.framework.TestResult$1.protect(TestResult.java:106)
>       at junit.framework.TestResult.runProtected(TestResult.java:124)
>       at junit.framework.TestResult.run(TestResult.java:109)
>       at junit.framework.TestCase.run(TestCase.java:118)
>       at junit.framework.TestSuite.runTest(TestSuite.java:208)
>       at junit.framework.TestSuite.run(TestSuite.java:203)
>       at 
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:131)
>       at 
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
>       at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to