Fix the FIXME I forgot

Signed-off-by: Jorge Bescos Gascon <jorge.bescos.gascon@oracle.com>
diff --git a/hk2-extras/src/main/java/org/glassfish/hk2/extras/operation/OperationContext.java b/hk2-extras/src/main/java/org/glassfish/hk2/extras/operation/OperationContext.java
index 54e8265..86b3046 100755
--- a/hk2-extras/src/main/java/org/glassfish/hk2/extras/operation/OperationContext.java
+++ b/hk2-extras/src/main/java/org/glassfish/hk2/extras/operation/OperationContext.java
@@ -23,6 +23,7 @@
 import java.util.LinkedList;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.ReentrantLock;
 
 import org.glassfish.hk2.api.ActiveDescriptor;
@@ -64,6 +65,7 @@
 public abstract class OperationContext<T extends Annotation> implements Context<T> {
     private SingleOperationManager<T> manager;
     private final ReentrantLock lock = new ReentrantLock();
+    private final Condition condition = lock.newCondition();
     private final HashMap<OperationHandleImpl<T>, LinkedHashMap<ActiveDescriptor<?>, Object>> operationMap =
             new HashMap<OperationHandleImpl<T>, LinkedHashMap<ActiveDescriptor<?>, Object>>();
     private final HashSet<ActiveDescriptor<?>> creating = new HashSet<ActiveDescriptor<?>>();
@@ -141,8 +143,7 @@
             // retVal is null, and this is not an explicit null, so must actually do the creation
             while (creating.contains(activeDescriptor)) {
                 try {
-                    // FIXME Find other way to replace wait()
-                    Thread.sleep(1);
+                    condition.await();
                 }
                 catch (InterruptedException e) {
                     throw new RuntimeException(e);
@@ -181,6 +182,7 @@
                 }
                 
                 creating.remove(activeDescriptor);
+                condition.signalAll();
             } finally {
                 lock.unlock();
             }