Fix Bug 105 - Make host dectection safer when agent is started
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 28 Mar 2012 10:55:10 +0000 (10:55 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 28 Mar 2012 10:55:10 +0000 (10:55 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@5252 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/runtime/DefaultAgent.java

index feb59eef0ac92fe73a6b85b5f7a03da2045667b3..d0c460f075f6edc807c4eec4543ad92f3078b1e0 100644 (file)
@@ -23,6 +23,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.UUID;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.argeo.slc.SlcException;
 import org.argeo.slc.core.execution.ProcessThread;
 import org.argeo.slc.execution.ExecutionModuleDescriptor;
@@ -37,6 +39,8 @@ import org.argeo.slc.runtime.SlcAgentDescriptor;
 /** Implements the base methods of an SLC agent. */
 @SuppressWarnings("deprecation")
 public class DefaultAgent implements SlcAgent, ExecutionProcessNotifier {
+       private final static Log log = LogFactory.getLog(DefaultAgent.class);
+
        private SlcAgentDescriptor agentDescriptor;
        private ExecutionModulesManager modulesManager;
 
@@ -49,12 +53,13 @@ public class DefaultAgent implements SlcAgent, ExecutionProcessNotifier {
         */
        /** Initialization */
        public void init() {
+               agentDescriptor = new SlcAgentDescriptor();
+               agentDescriptor.setUuid(initAgentUuid());
                try {
-                       agentDescriptor = new SlcAgentDescriptor();
-                       agentDescriptor.setUuid(initAgentUuid());
                        agentDescriptor.setHost(InetAddress.getLocalHost().getHostName());
                } catch (UnknownHostException e) {
-                       throw new SlcException("Unable to create agent descriptor.", e);
+                       log.error("Cannot resolve localhost host name: " + e.getMessage());
+                       agentDescriptor.setHost("localhost");
                }
                processesThreadGroup = new ThreadGroup("SLC Processes of Agent #"
                                + agentDescriptor.getUuid());