diff options
4 files changed, 67 insertions, 6 deletions
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/Lifecycle.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/Lifecycle.java index ca22795e3d..425d813b7c 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/Lifecycle.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/Lifecycle.java @@ -15,7 +15,7 @@ package org.eclipse.net4j.util.lifecycle; */ public interface Lifecycle { - public void activate() throws Exception; + public void activate() throws LifecycleException; public Exception deactivate(); diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleException.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleException.java new file mode 100644 index 0000000000..e0ead1dfd5 --- /dev/null +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleException.java @@ -0,0 +1,38 @@ +/*************************************************************************** + * Copyright (c) 2004-2007 Eike Stepper, Germany. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Eike Stepper - initial API and implementation + **************************************************************************/ +package org.eclipse.net4j.util.lifecycle; + +/** + * @author Eike Stepper + */ +public class LifecycleException extends RuntimeException +{ + private static final long serialVersionUID = 1L; + + public LifecycleException() + { + } + + public LifecycleException(String message) + { + super(message); + } + + public LifecycleException(Throwable cause) + { + super(cause); + } + + public LifecycleException(String message, Throwable cause) + { + super(message, cause); + } +} diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleImpl.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleImpl.java index 1cea11eaa8..1c5dd6892f 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleImpl.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleImpl.java @@ -50,7 +50,7 @@ public class LifecycleImpl implements Lifecycle, LifecycleNotifier listeners.remove(listener); } - public final synchronized void activate() throws Exception + public final synchronized void activate() throws LifecycleException { if (!active) { @@ -59,16 +59,39 @@ public class LifecycleImpl implements Lifecycle, LifecycleNotifier TRACER.trace("Activating " + this);//$NON-NLS-1$ } - onAboutToActivate(); + try + { + onAboutToActivate(); + } + catch (RuntimeException ex) + { + throw ex; + } + catch (Exception ex) + { + throw new LifecycleException(ex); + } + fireLifecycleAboutToActivate(); if (DUMPER.isEnabled()) { DUMPER.trace("DUMP" + ReflectUtil.toString(this)); //$NON-NLS-1$ } - onActivate(); + try + { + onActivate(); + } + catch (RuntimeException ex) + { + throw ex; + } + catch (Exception ex) + { + throw new LifecycleException(ex); + } + active = true; - fireLifecycleActivated(); } } diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java index 4be6d44803..159c834dcb 100644 --- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java +++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java @@ -68,7 +68,7 @@ public final class LifecycleUtil /** * @see Activator */ - public static void activate(Object object, boolean useAnnotation) throws Exception + public static void activate(Object object, boolean useAnnotation) throws LifecycleException { if (object instanceof Lifecycle) { |