| 
     
      
      
      From: <ha...@us...> - 2008-09-16 10:39:20
      
     
   | 
Revision: 2161
          http://cogkit.svn.sourceforge.net/cogkit/?rev=2161&view=rev
Author:   hategan
Date:     2008-09-16 17:39:15 +0000 (Tue, 16 Sep 2008)
Log Message:
-----------
...
Modified Paths:
--------------
    trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/local/LocalService.java
Modified: trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/local/LocalService.java
===================================================================
--- trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/local/LocalService.java	2008-09-16 17:38:10 UTC (rev 2160)
+++ trunk/current/src/cog/modules/provider-coaster/src/org/globus/cog/abstraction/coaster/service/local/LocalService.java	2008-09-16 17:39:15 UTC (rev 2161)
@@ -12,16 +12,18 @@
 import java.io.IOException;
 import java.net.Socket;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.log4j.Logger;
 import org.globus.cog.abstraction.coaster.service.Registering;
 import org.globus.cog.abstraction.impl.common.task.TaskSubmissionException;
-import org.globus.cog.abstraction.impl.execution.coaster.CoasterChannelManager;
 import org.globus.cog.abstraction.interfaces.Status;
 import org.globus.cog.abstraction.interfaces.Task;
 import org.globus.cog.karajan.workflow.service.ConnectionHandler;
 import org.globus.cog.karajan.workflow.service.GSSService;
+import org.globus.cog.karajan.workflow.service.channels.ChannelManager;
 import org.globus.cog.karajan.workflow.service.channels.KarajanChannel;
 import org.globus.gsi.gssapi.auth.SelfAuthorization;
 
@@ -56,8 +58,10 @@
         logger.debug("Got connection");
         try {
             ConnectionHandler handler = new ConnectionHandler(this, sock,
-                    new LocalRequestManager());
+                    LocalRequestManager.INSTANCE);
+            logger.info("Initialized connection handler");
             handler.start();
+            logger.info("Connection handler started");
         }
         catch (Exception e) {
             logger.warn("Could not start connection handler", e);
@@ -77,7 +81,7 @@
         heardOf(id);
         synchronized (services) {
             while (!services.containsKey(id)) {
-                services.wait(1000);
+                services.wait(250);
                 if (timeout < System.currentTimeMillis() - lastHeardOf(id)) {
                     throw new TaskSubmissionException(
                             "Timed out waiting for registration for " + id);
@@ -116,24 +120,19 @@
         }
         synchronized (services) {
             if (services.containsKey(id)) {
-                throw new IllegalArgumentException(
-                        "Another registration with the same id (" + id
-                                + ") already exists");
+                logger.info("Replacing channel for service with id=" + id
+                        + ".");
             }
-            else {
-                try {
-                    CoasterChannelManager.getManager()
-                            .registerChannel(url,
-                                    channel.getUserContext().getCredential(),
-                                    channel);
-                }
-                catch (Exception e) {
-                    throw new RuntimeException("Failed to register channel "
-                            + url);
-                }
-                services.put(id, url);
-                services.notifyAll();
+            try {
+                ChannelManager.getManager().registerChannel(url,
+                        channel.getUserContext().getCredential(), channel);
             }
+            catch (Exception e) {
+                throw new RuntimeException("Failed to register channel "
+                        + url);
+            }
+            services.put(id, url);
+            services.notifyAll();
         }
     }
 
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |