From a946a2818720f0c6f15fdad44317bf87b910a11a Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Mon, 23 Jan 2012 15:44:02 +0100 Subject: [PATCH] OO-89: fix the test and make it create a new publisher every time with a random sub-identifier --- .../olat/notifications/NotificationsManagerImpl.java | 10 +++++++++- .../olat/notifications/NotificationsManagerTest.java | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/olat/notifications/NotificationsManagerImpl.java b/src/main/java/org/olat/notifications/NotificationsManagerImpl.java index 60a4655b863..e99eba5cfb3 100644 --- a/src/main/java/org/olat/notifications/NotificationsManagerImpl.java +++ b/src/main/java/org/olat/notifications/NotificationsManagerImpl.java @@ -532,6 +532,14 @@ public class NotificationsManagerImpl extends NotificationsManager implements Us * @return the publisher */ public Publisher getOrCreatePublisher(final SubscriptionContext scontext, final PublisherData pdata) { + return findOrCreatePublisher(scontext, pdata); + } + /** + * @param scontext + * @param pdata + * @return the publisher + */ + private Publisher findOrCreatePublisher(final SubscriptionContext scontext, final PublisherData pdata) { final OLATResourceable ores = OresHelper.createOLATResourceableInstance(scontext.getResName() + "_" + scontext.getSubidentifier(),scontext.getResId()); //o_clusterOK by:cg //fxdiff VCRP-16:prevent nested doInSync @@ -758,7 +766,7 @@ public class NotificationsManagerImpl extends NotificationsManager implements Us */ public void subscribe(Identity identity, SubscriptionContext subscriptionContext, PublisherData publisherData) { // no need to sync, since an identity only has one gui thread / one mouse - Publisher p = getOrCreatePublisher(subscriptionContext, publisherData); + Publisher p = findOrCreatePublisher(subscriptionContext, publisherData); Subscriber s = getSubscriber(identity, p); if (s == null) { // no subscriber -> create. diff --git a/src/test/java/org/olat/notifications/NotificationsManagerTest.java b/src/test/java/org/olat/notifications/NotificationsManagerTest.java index 383909b8b2d..6521b5ee8b6 100644 --- a/src/test/java/org/olat/notifications/NotificationsManagerTest.java +++ b/src/test/java/org/olat/notifications/NotificationsManagerTest.java @@ -36,6 +36,7 @@ import static org.junit.Assert.fail; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.UUID; import org.apache.log4j.Logger; import org.junit.After; @@ -154,7 +155,7 @@ public class NotificationsManagerTest extends OlatTestCase { JMSCodePointServerJunitHelper.startServer(CODEPOINT_SERVER_ID); - final SubscriptionContext sc = new SubscriptionContext("Course", new Long(1238778565), "676"); + final SubscriptionContext sc = new SubscriptionContext("Course", new Long(1238778565), UUID.randomUUID().toString().replace("-", "")); final PublisherData pd = new PublisherData("Forum", "e.g. forumdata=keyofforum", null ); final List<Exception> exceptionHolder = Collections.synchronizedList(new ArrayList<Exception>(1)); @@ -201,7 +202,9 @@ public class NotificationsManagerTest extends OlatTestCase { } }}).start(); + System.out.println("Thread point 3"); sleep(2000); + System.out.println("Thread point 4"); // check thread 2 should not finished assertEquals("Thread already finished => synchronization did not work",0,statusList.size()); try { -- GitLab