Index: forgon-tools/src/main/java/com/forgon/system/concurrent/service/test/OptimisticLockManagerTestLevel2Impl.java =================================================================== diff -u -r23802 -r23803 --- forgon-tools/src/main/java/com/forgon/system/concurrent/service/test/OptimisticLockManagerTestLevel2Impl.java (.../OptimisticLockManagerTestLevel2Impl.java) (revision 23802) +++ forgon-tools/src/main/java/com/forgon/system/concurrent/service/test/OptimisticLockManagerTestLevel2Impl.java (.../OptimisticLockManagerTestLevel2Impl.java) (revision 23803) @@ -46,6 +46,12 @@ } } + + public void test_NewTransaction_Conflict_TRANS_NEW(){ + requestLockById(ENTITY_OPTIMISTICLOCKTEST, "1", null, null); + // Exception + assertEquals(0, 1); + } public void requestLockById_TRANS_NEW(String entity, String id, WaitObject notifyObject, WaitObject continueObject) { Index: ssts-web/src/test/java/test/forgon/system/concurrent/service/OptimisticLockManagerTests.java =================================================================== diff -u -r23802 -r23803 --- ssts-web/src/test/java/test/forgon/system/concurrent/service/OptimisticLockManagerTests.java (.../OptimisticLockManagerTests.java) (revision 23802) +++ ssts-web/src/test/java/test/forgon/system/concurrent/service/OptimisticLockManagerTests.java (.../OptimisticLockManagerTests.java) (revision 23803) @@ -31,7 +31,7 @@ * */ @Transactional(propagation = Propagation.NEVER) -@Test(singleThreaded = true) +//@Test(singleThreaded = true) public class OptimisticLockManagerTests extends AbstractCSSDTest { private static final String ENTITY_OPTIMISTICLOCKTEST = "OptimisticLockTest"; @@ -533,7 +533,7 @@ * 两个事务请求锁_冲突 */ @Test(expectedExceptions = OptimisticLockConflictException.class) - public void test_TwoTransactions_Conflict(String id) { + public void test_TwoTransactions_Conflict() { { WaitObject notifyObject = new WaitObject(); WaitObject continueObject = new WaitObject(); @@ -607,7 +607,7 @@ } /** - * 两个实体,两个事务请求锁_测试资源是否正确分配和释放 + * 调用新事务,正常 */ @Test public void test_NewTransaction_Normal() { @@ -616,4 +616,14 @@ assertEquals(allLocks_end.size(), 0); } + + /** + * 调用新事务,冲突 + */ + @Test(expectedExceptions = OptimisticLockConflictException.class) + public void test_NewTransaction_Conflict() { + optimisticLockManagerTestLevel1.test_NewTransaction_Conflict(); + // Exception + assertEquals(0, 1); + } } Index: ssts-web/src/test/resources/test/forgon/AllTests.xml =================================================================== diff -u -r22553 -r23803 --- ssts-web/src/test/resources/test/forgon/AllTests.xml (.../AllTests.xml) (revision 22553) +++ ssts-web/src/test/resources/test/forgon/AllTests.xml (.../AllTests.xml) (revision 23803) @@ -3,6 +3,7 @@ + Index: forgon-tools/src/main/java/com/forgon/system/concurrent/service/test/OptimisticLockManagerTestLevel2.java =================================================================== diff -u -r23802 -r23803 --- forgon-tools/src/main/java/com/forgon/system/concurrent/service/test/OptimisticLockManagerTestLevel2.java (.../OptimisticLockManagerTestLevel2.java) (revision 23802) +++ forgon-tools/src/main/java/com/forgon/system/concurrent/service/test/OptimisticLockManagerTestLevel2.java (.../OptimisticLockManagerTestLevel2.java) (revision 23803) @@ -13,6 +13,7 @@ OptimisticLockManagerTest { public void test_NewTransaction_Normal_TRANS_NEW(); + public void test_NewTransaction_Conflict_TRANS_NEW(); public void requestLockById_TRANS_NEW(String entity, String id,WaitObject notifyObject,WaitObject continueObject); public void requestLockByStringIds_TRANS_NEW(String entity, Collection ids,WaitObject notifyObject,WaitObject continueObject); } Index: forgon-tools/src/main/java/com/forgon/system/concurrent/service/test/OptimisticLockManagerTestLevel1Impl.java =================================================================== diff -u -r23802 -r23803 --- forgon-tools/src/main/java/com/forgon/system/concurrent/service/test/OptimisticLockManagerTestLevel1Impl.java (.../OptimisticLockManagerTestLevel1Impl.java) (revision 23802) +++ forgon-tools/src/main/java/com/forgon/system/concurrent/service/test/OptimisticLockManagerTestLevel1Impl.java (.../OptimisticLockManagerTestLevel1Impl.java) (revision 23803) @@ -99,6 +99,21 @@ assertEquals(optimisticLock.getId(), "1"); } } + + public void test_NewTransaction_Conflict() { + requestLockById(ENTITY_OPTIMISTICLOCKTEST, "1", null, null); + { + List allLocks = optimisticLockManager.getAllLocks(); + assertEquals(allLocks.size(), 1); + OptimisticLock optimisticLock = allLocks.get(0); + assertEquals(optimisticLock.getEntity(), ENTITY_OPTIMISTICLOCKTEST); + assertEquals(optimisticLock.getId(), "1"); + } + // 调用新事务 + optimisticLockManagerTestLevel2.test_NewTransaction_Conflict_TRANS_NEW(); + // Exception + assertEquals(0, 1); + } public void requestLockById_TRANS_NEVER(String entity, String id, WaitObject notifyObject, WaitObject continueObject) { Index: ssts-web/src/test/resources/test/forgon/system/concurrent/service/AllTests.xml =================================================================== diff -u --- ssts-web/src/test/resources/test/forgon/system/concurrent/service/AllTests.xml (revision 0) +++ ssts-web/src/test/resources/test/forgon/system/concurrent/service/AllTests.xml (revision 23803) @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file Index: forgon-tools/src/main/java/com/forgon/system/concurrent/service/test/OptimisticLockManagerTestLevel1.java =================================================================== diff -u -r23802 -r23803 --- forgon-tools/src/main/java/com/forgon/system/concurrent/service/test/OptimisticLockManagerTestLevel1.java (.../OptimisticLockManagerTestLevel1.java) (revision 23802) +++ forgon-tools/src/main/java/com/forgon/system/concurrent/service/test/OptimisticLockManagerTestLevel1.java (.../OptimisticLockManagerTestLevel1.java) (revision 23803) @@ -17,7 +17,9 @@ public void test_requestLockByStringIds_OneTransaction_RepeatRequest(String entity, List ids,WaitObject notifyObject,WaitObject continueObject); public void test_NewTransaction_Normal(); + public void test_NewTransaction_Conflict(); + public void requestLockById_TRANS_NEVER(String entity, String id,WaitObject notifyObject,WaitObject continueObject); public void requestLockByStringIds_TRANS_NEVER(String entity, Collection ids,WaitObject notifyObject,WaitObject continueObject); }