Author: pier
Date: Sun Nov  7 19:23:59 2004
New Revision: 56895

Modified:
   
cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/deployment/Deployer.java
   
cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/plugins/Utilities.java
Log:
Small changes for logging

Modified: 
cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/deployment/Deployer.java
==============================================================================
--- 
cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/deployment/Deployer.java
  (original)
+++ 
cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/deployment/Deployer.java
  Sun Nov  7 19:23:59 2004
@@ -12,6 +12,7 @@
  * 
=============================================================================== 
*/
 package org.apache.cocoon.kernel.deployment;
 
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 import java.net.URL;
@@ -43,6 +44,9 @@
  */
 public class Deployer implements StartupKernel {
 
+    /** <p>The name returned when the kernel is the caller.</p>*/
+    public static final String KERNEL_NAME = "kernel";
+
     /** <p>An empty array of [EMAIL PROTECTED] Object}s to be using in 
reflection.</p> */
     private static final Object NULL[] = new Object[0];
 
@@ -195,6 +199,9 @@
             thread.setContextClassLoader(instance);
             try {
                 if (destructor != null) destructor.invoke(component, NULL);
+            } catch (InvocationTargetException exception) {
+                Throwable t = exception.getCause();
+                this.logger.error("Exception destroying singleton: " + 
current, t);
             } catch (Throwable t) {
                 this.logger.error("Exception destroying singleton: " + 
current, t);
             }
@@ -273,8 +280,14 @@
         if (name == null) throw new NullPointerException("Null name");
         if (inst == null) throw new NullPointerException("Null instance");
         if (conf == null) throw new NullPointerException("Null config");
+        if (KERNEL_NAME.equals(name)) {
+            String message = "Invalid instance name \"" + name + "\"";
+            throw new IllegalArgumentException(message);
+        }
+
         if (this.wrappers.get(name) != null) {
-            throw new DeployerException("Instance \"" + name + "\" aready 
added");
+            String message = "Duplicate instance with name \"" + name + "\"";
+            throw new DeployerException(message);
         } else {
             this.wrappers.put(name, new Wrapper(inst, conf));
         }
@@ -355,6 +368,9 @@
         try {
             /* Non singletons will never have an initializer method set */
             if (initializer != null) initializer.invoke(component, NULL);
+        } catch (InvocationTargetException exception) {
+            Throwable t = exception.getCause();
+            throw new DeployerException("Can't initialize component " + name, 
t);
         } catch (Throwable t) {
             throw new DeployerException("Can't initialize component " + name, 
t);
         } finally {

Modified: 
cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/plugins/Utilities.java
==============================================================================
--- 
cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/plugins/Utilities.java
    (original)
+++ 
cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/plugins/Utilities.java
    Sun Nov  7 19:23:59 2004
@@ -12,7 +12,9 @@
  * 
=============================================================================== 
*/
 package org.apache.cocoon.kernel.plugins;
 
+import org.apache.cocoon.kernel.deployment.Deployer;
 import org.apache.cocoon.kernel.deployment.Instance;
+import org.apache.cocoon.kernel.startup.KernelLoader;
 
 /**
  * <p>Shared kernel [EMAIL PROTECTED] Plugin} uptilities.</p> 
@@ -34,23 +36,23 @@
     /**
      * <p>Retrieve the block instance calling this method.</p>
      */
-    public static Instance getCaller() {
+    public static String getCallerName() {
+
         Class context[] = Utilities.instance.getClassContext();
         if (context == null) return(null);
+
         for (int x = 0; x < context.length; x++) {
             if (context[x].getClassLoader() instanceof Instance) {
-                return((Instance)(context[x].getClassLoader()));
+                return ((Instance)(context[x].getClassLoader())).getName();
+            }
+        }
+
+        for (int x = 0; x < context.length; x++) {
+            if (context[x].getClassLoader() instanceof KernelLoader) {
+                return(Deployer.KERNEL_NAME);
             }
         }
-        return(null);
-    }
 
-    /**
-     * <p>Retrieve the block instance calling this method.</p>
-     */
-    public static String getCallerName() {
-        Instance instance = Utilities.getCaller();
-        if (instance != null) return (instance.getName());
         return(null);
     }
 }

Reply via email to