[jbossts-issues] [JBoss JIRA] (JBTM-1766) STM test failure with emma: Failed tests: testTransaction(org.jboss.stm.types.AtomicIntegerUnitTest): expected:<1> but was:<0>
Mark Little (JIRA)
jira-events at lists.jboss.org
Mon Jun 10 11:25:55 EDT 2013
[ https://issues.jboss.org/browse/JBTM-1766?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12780585#comment-12780585 ]
Mark Little commented on JBTM-1766:
-----------------------------------
Hi Tom. I have an example here that shows the last transaction is not being called, which is why the state remains at 1 instead of rolling back to 0. I'll illustrate the example here so you can reproduce if you want:
System.err.println("**transaction "+act);
act.begin();
ai.set(1);
assertEquals(ai.get(), 1);
System.err.println("**rolling back "+act);
System.err.println("**using "+act.getClass());
act.abort();
I then put a print statement in abort:
public int abort ()
{
System.err.println("**in abort");
int status = super.cancel();
/*
* Now remove this thread from the action state.
*/
ThreadActionData.popAction();
TransactionReaper.transactionReaper().remove(this);
return status;
}
and got the following output:
**created org.jboss.stm.internal.types.AtomicIntegerImpl at 3aeacb9c
**invoke on org.jboss.stm.internal.reflect.InvocationHandler at cdd8cfc
**transaction BasicAction: 0:ffff0a517f65:d29e:51b5efa8:7 status: ActionStatus.CREATED
Jun 10, 2013 4:24:24 PM com.arjuna.ats.arjuna.recovery.TransactionStatusManager addService
INFO: ARJUNA012163: Starting service com.arjuna.ats.arjuna.recovery.ActionStatusService on port 53919
Jun 10, 2013 4:24:24 PM com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem <init>
INFO: ARJUNA012337: TransactionStatusManagerItem host: 127.0.0.1 port: 53919
Jun 10, 2013 4:24:24 PM com.arjuna.ats.arjuna.recovery.TransactionStatusManager start
INFO: ARJUNA012170: TransactionStatusManager started on port 53919 and host 127.0.0.1 with service com.arjuna.ats.arjuna.recovery.ActionStatusService
**invoke on org.jboss.stm.internal.reflect.InvocationHandler at cdd8cfc
**setlock org.jboss.stm.internal.reflect.InvocationHandler at cdd8cfc
**save_state org.jboss.stm.internal.proxy.LockManagerProxy at 54e156e1 and BasicAction: 0:ffff0a517f65:d29e:51b5efa8:7 status: ActionStatus.RUNNING
**invoke on org.jboss.stm.internal.reflect.InvocationHandler at cdd8cfc
**setlock org.jboss.stm.internal.reflect.InvocationHandler at cdd8cfc
**rolling back BasicAction: 0:ffff0a517f65:d29e:51b5efa8:7 status: ActionStatus.RUNNING
**using class com.arjuna.ats.arjuna.AtomicAction
**done
Ignore the invoke prints for now. But you can see that there's no print from abort.
> STM test failure with emma: Failed tests: testTransaction(org.jboss.stm.types.AtomicIntegerUnitTest): expected:<1> but was:<0>
> --------------------------------------------------------------------------------------------------------------------------------
>
> Key: JBTM-1766
> URL: https://issues.jboss.org/browse/JBTM-1766
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: STM, Testing
> Reporter: Tom Jenkinson
> Assignee: Mark Little
> Priority: Minor
> Fix For: 5.0.0.M4
>
> Attachments: org.jboss.stm.types.AtomicIntegerUnitTest-output (emma off).txt, org.jboss.stm.types.AtomicIntegerUnitTest-output (emma on).txt
>
>
> Most tests run OK, just this one:
> Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.548 sec <<< FAILURE!
> testTransaction(org.jboss.stm.types.AtomicIntegerUnitTest) Time elapsed: 0.328 sec <<< FAILURE!
> junit.framework.AssertionFailedError: expected:<1> but was:<0>
> at junit.framework.Assert.fail(Assert.java:50)
> at junit.framework.Assert.failNotEquals(Assert.java:287)
> at junit.framework.Assert.assertEquals(Assert.java:67)
> at junit.framework.Assert.assertEquals(Assert.java:199)
> at junit.framework.Assert.assertEquals(Assert.java:205)
> at org.jboss.stm.types.AtomicIntegerUnitTest.testTransaction(AtomicIntegerUnitTest.java:81)
> 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:601)
> at junit.framework.TestCase.runTest(TestCase.java:168)
> at junit.framework.TestCase.runBare(TestCase.java:134)
> at junit.framework.TestResult$1.protect(TestResult.java:110)
> at junit.framework.TestResult.runProtected(TestResult.java:128)
> at junit.framework.TestResult.run(TestResult.java:113)
> at junit.framework.TestCase.run(TestCase.java:124)
> at junit.framework.TestSuite.runTest(TestSuite.java:243)
> at junit.framework.TestSuite.run(TestSuite.java:238)
> at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
> at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
> at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
> at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
> 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:601)
> at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
> at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
> at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
> at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
> at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
> Could it be caused by emma altering the bytecode (which it has to do)?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jbossts-issues
mailing list