From 8199b9f9b4a2f538baa56292da8e55337feb0a37 Mon Sep 17 00:00:00 2001 From: Heng Sin Low Date: Fri, 10 Dec 2010 00:31:30 +0800 Subject: [PATCH] added waiting block for equinox event and ds service to start. --- .../org/adempiere/base/event/EventManager.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/org.adempiere.base/src/org/adempiere/base/event/EventManager.java b/org.adempiere.base/src/org/adempiere/base/event/EventManager.java index 53e8138fea..99ec6c059b 100644 --- a/org.adempiere.base/src/org/adempiere/base/event/EventManager.java +++ b/org.adempiere.base/src/org/adempiere/base/event/EventManager.java @@ -42,14 +42,20 @@ public class EventManager implements IEventManager { private static IEventManager instance = null; private final static CLogger log = CLogger.getCLogger(EventManager.class); + private final static Object mutex = new Object(); + private Map> registrations = new HashMap>(); /** * @param eventAdmin */ public void bindEventAdmin(EventAdmin eventAdmin) { - if (instance == null) - instance = this; + synchronized (mutex) { + if (instance == null) { + instance = this; + mutex.notifyAll(); + } + } this.eventAdmin = eventAdmin; } @@ -65,6 +71,14 @@ public class EventManager implements IEventManager { * @return EventManager */ public static IEventManager getInstance() { + synchronized (mutex) { + if (instance == null) { + try { + mutex.wait(10000); + } catch (InterruptedException e) { + } + } + } return instance; }