You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by Craig Russell <Cr...@Sun.COM> on 2005/06/09 03:12:29 UTC
Multithreaded query test fails
Hi Michael,
Could you take a look at this test failure? There is nothing obvious
in the test. It's a tricky test and I couldn't tell you if it is valid.
Thanks,
Craig
11) test
(org.apache.jdo.tck.query.ExecutingMultipleQueriesSimultaneouslyIsThread
Safe)junit.framework.AssertionFailedError: Assertion A14.3-2
(ExecutingMultipleQueriesSimultaneouslyIsThreadSafe) failed:
[java] Thread Thread[ThreadID-3,5,]: uncaught exception
org.jpox.exceptions.TransactionNotActiveException: Transaction is not
active. You either need to define a transaction around this, or run
your PersistenceManagerFactory with 'NontransactionalRead' set to 'true'
[java] at org.apache.jdo.tck.JDO_Test.fail(JDO_Test.java:510)
[java] at
org.apache.jdo.tck.query.ExecutingMultipleQueriesSimultaneouslyIsThreadS
afe.executeMultipleQueries
(ExecutingMultipleQueriesSimultaneouslyIsThreadSafe.java:123)
[java] at
org.apache.jdo.tck.query.ExecutingMultipleQueriesSimultaneouslyIsThreadS
afe.test(ExecutingMultipleQueriesSimultaneouslyIsThreadSafe.java:70)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0
(Native Method)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
[java] at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:
181)
[java] at org.apache.jdo.tck.util.BatchTestRunner.start
(BatchTestRunner.java:112)
[java] at org.apache.jdo.tck.util.BatchTestRunner.main
(BatchTestRunner.java:90)
Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!
Re: Multithreaded query test fails
Posted by Michael Watzek <mw...@spree.de>.
Hi Craig,
I can reproduce the exception.
The exception is thrown because the call "super.executeQueries(pm)" in
method
"ExecutingMultipleQueriesSimultaneouslyIsThreadSafe.executeQueries(PersistenceManager"
is not executed inside a transaction. If you add begin/commit the test
succeeds.
However, I think it is better to move the transaction inside method
"MultipleActiveQueryInstanceInSamePersistenceManager.executeQueries(PersistenceManager)"
which is the super method. That method is called only classes
"MultipleActiveQueryInstanceInSamePersistenceManager" and
"ExecutingMultipleQueriesSimultaneouslyIsThreadSafe".
That means a patch would only change class
"MultipleActiveQueryInstanceInSamePersistenceManager" instead of
"ExecutingMultipleQueriesSimultaneouslyIsThreadSafe". It would add
begin/commit calls in method "executeQueries(PersistenceManager)" and
remove begin/commit calls in method
"runTestMultipleActiveQueryInstanceInSamePersistenceManager(PersistenceManager)"
which calls "executeQueries(PersistenceManager)".
Attached you find this patch.
Regards,
Michael
> Hi Michael,
>
> Could you take a look at this test failure? There is nothing obvious in
> the test. It's a tricky test and I couldn't tell you if it is valid.
>
> Thanks,
>
> Craig
>
> 11) test
> (org.apache.jdo.tck.query.ExecutingMultipleQueriesSimultaneouslyIsThread
> Safe)junit.framework.AssertionFailedError: Assertion A14.3-2
> (ExecutingMultipleQueriesSimultaneouslyIsThreadSafe) failed:
> [java] Thread Thread[ThreadID-3,5,]: uncaught exception
> org.jpox.exceptions.TransactionNotActiveException: Transaction is not
> active. You either need to define a transaction around this, or run
> your PersistenceManagerFactory with 'NontransactionalRead' set to 'true'
> [java] at org.apache.jdo.tck.JDO_Test.fail(JDO_Test.java:510)
> [java] at
> org.apache.jdo.tck.query.ExecutingMultipleQueriesSimultaneouslyIsThreadS
> afe.executeMultipleQueries
> (ExecutingMultipleQueriesSimultaneouslyIsThreadSafe.java:123)
> [java] at
> org.apache.jdo.tck.query.ExecutingMultipleQueriesSimultaneouslyIsThreadS
> afe.test(ExecutingMultipleQueriesSimultaneouslyIsThreadSafe.java:70)
> [java] at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native
> Method)
> [java] at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:39)
> [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
> [java] at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java: 181)
> [java] at org.apache.jdo.tck.util.BatchTestRunner.start
> (BatchTestRunner.java:112)
> [java] at org.apache.jdo.tck.util.BatchTestRunner.main
> (BatchTestRunner.java:90)
>
> Craig Russell
> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
>
>
--
-------------------------------------------------------------------
Michael Watzek Tech@Spree Engineering GmbH
mailto:mwa.tech@spree.de Buelowstr. 66
Tel.: ++49/30/235 520 36 10783 Berlin - Germany
Fax.: ++49/30/217 520 12 http://www.spree.de/
-------------------------------------------------------------------