Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2009-06-05 04:17:33 +0000
committerEike Stepper2009-06-05 04:17:33 +0000
commitddc070d72906268870565dd605c399a468bb44ca (patch)
tree3434ce147137c95265199487c7748b5900718b84
parent41b4a1e580164e1a03003d22c770366c99b9fa3f (diff)
downloadcdo-ddc070d72906268870565dd605c399a468bb44ca.tar.gz
cdo-ddc070d72906268870565dd605c399a468bb44ca.tar.xz
cdo-ddc070d72906268870565dd605c399a468bb44ca.zip
[278970] Exception is hidden in CDOView close
https://bugs.eclipse.org/bugs/show_bug.cgi?id=278970
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/StoreAccessorPool.java7
-rw-r--r--plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/internal/team/bundle/OM.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.tests/net4j/org/eclipse/net4j/tests/AbstractOMTest.java23
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/bundle/Activator.java7
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java5
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java4
-rw-r--r--plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/ServerSession.java6
-rw-r--r--plugins/org.eclipse.net4j.buddies/src/org/eclipse/net4j/internal/buddies/ClientSession.java5
-rw-r--r--plugins/org.eclipse.net4j.http.server/src/org/eclipse/net4j/http/internal/server/HTTPAcceptor.java6
-rw-r--r--plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java8
-rw-r--r--plugins/org.eclipse.net4j.jms/src/org/eclipse/net4j/internal/jms/SessionImpl.java6
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/container/PluginContainer.java6
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/QueueWorkerWorkSerializer.java7
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java15
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/AbstractLogHandler.java76
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/FileLogHandler.java64
-rw-r--r--plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/PrintLogHandler.java38
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java4
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Acceptor.java11
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java11
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Connector.java9
-rw-r--r--plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Protocol.java4
25 files changed, 256 insertions, 80 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java
index 27a2edd1d2..a090305150 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate/src/org/eclipse/emf/cdo/server/internal/hibernate/HibernateStore.java
@@ -29,6 +29,8 @@ import org.eclipse.emf.cdo.spi.server.StoreAccessorPool;
import org.eclipse.net4j.util.WrappedException;
import org.eclipse.net4j.util.io.IOUtil;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.hibernate.SessionFactory;
@@ -196,7 +198,7 @@ public class HibernateStore extends Store implements IHibernateStore
se.drop(false, true);
}
- packageHandler.deactivate();
+ LifecycleUtil.deactivate(packageHandler, OMLogger.Level.WARN);
if (doDropSchema)
{
packageHandler.doDropSchema();
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
index a8102e6cd8..a0e3f9c939 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/Session.java
@@ -42,6 +42,7 @@ import org.eclipse.net4j.util.event.IListener;
import org.eclipse.net4j.util.lifecycle.ILifecycle;
import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter;
import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.net4j.util.options.IOptionsContainer;
import org.eclipse.emf.ecore.EClass;
@@ -402,7 +403,7 @@ public class Session extends Container<IView> implements ISession, CDOIDProvider
*/
public void close()
{
- deactivate();
+ LifecycleUtil.deactivate(this, OMLogger.Level.WARN);
}
/**
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
index ab62ca0d1b..0f6e9f2375 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/SessionManager.java
@@ -19,8 +19,8 @@ import org.eclipse.emf.cdo.common.protocol.CDOAuthenticationResult;
import org.eclipse.emf.cdo.common.protocol.CDOProtocolConstants;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.internal.server.bundle.OM;
-import org.eclipse.emf.cdo.internal.server.protocol.CDOServerProtocol;
import org.eclipse.emf.cdo.internal.server.protocol.AuthenticationRequest;
+import org.eclipse.emf.cdo.internal.server.protocol.CDOServerProtocol;
import org.eclipse.emf.cdo.server.IRepository;
import org.eclipse.emf.cdo.server.ISession;
import org.eclipse.emf.cdo.server.ISessionManager;
@@ -331,7 +331,7 @@ public class SessionManager extends Container<ISession> implements ISessionManag
super.doBeforeActivate();
if (userManager == null)
{
- OM.LOG.warn("No user manager configured. Users will not be authenticated");
+ OM.LOG.info("No user manager configured. Users will not be authenticated");
}
}
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/StoreAccessorPool.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/StoreAccessorPool.java
index 4fc686fe56..5aeb3c1653 100644
--- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/StoreAccessorPool.java
+++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/spi/server/StoreAccessorPool.java
@@ -4,7 +4,7 @@
* 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
*/
@@ -15,6 +15,9 @@ import org.eclipse.emf.cdo.server.ISession;
import org.eclipse.emf.cdo.server.IStore;
import org.eclipse.emf.cdo.server.IView;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
+
import java.util.concurrent.ConcurrentLinkedQueue;
/**
@@ -104,7 +107,7 @@ public class StoreAccessorPool
break;
}
- accessor.deactivate();
+ LifecycleUtil.deactivate(accessor, OMLogger.Level.WARN);
}
context = null;
diff --git a/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/internal/team/bundle/OM.java b/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/internal/team/bundle/OM.java
index aeb64fb54a..22542a435d 100644
--- a/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/internal/team/bundle/OM.java
+++ b/plugins/org.eclipse.emf.cdo.team/src/org/eclipse/emf/cdo/internal/team/bundle/OM.java
@@ -12,6 +12,7 @@ package org.eclipse.emf.cdo.internal.team.bundle;
import org.eclipse.emf.cdo.internal.team.RepositoryManager;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
import org.eclipse.net4j.util.om.OMBundle;
import org.eclipse.net4j.util.om.OMPlatform;
import org.eclipse.net4j.util.om.OSGiActivator;
@@ -53,7 +54,7 @@ public abstract class OM
@Override
protected void doStop() throws Exception
{
- RepositoryManager.INSTANCE.deactivate();
+ LifecycleUtil.deactivate(RepositoryManager.INSTANCE, OMLogger.Level.WARN);
super.doStop();
}
}
diff --git a/plugins/org.eclipse.emf.cdo.tests/net4j/org/eclipse/net4j/tests/AbstractOMTest.java b/plugins/org.eclipse.emf.cdo.tests/net4j/org/eclipse/net4j/tests/AbstractOMTest.java
index 40d0cbb8e0..cab11a5234 100644
--- a/plugins/org.eclipse.emf.cdo.tests/net4j/org/eclipse/net4j/tests/AbstractOMTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/net4j/org/eclipse/net4j/tests/AbstractOMTest.java
@@ -16,9 +16,15 @@ import org.eclipse.net4j.util.concurrent.ConcurrencyUtil;
import org.eclipse.net4j.util.io.IOUtil;
import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
import org.eclipse.net4j.util.om.OMPlatform;
+import org.eclipse.net4j.util.om.log.FileLogHandler;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.net4j.util.om.log.PrintLogHandler;
import org.eclipse.net4j.util.om.trace.PrintTraceHandler;
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
import junit.framework.TestCase;
import junit.framework.TestResult;
@@ -31,6 +37,23 @@ public abstract class AbstractOMTest extends TestCase
private static boolean consoleEnabled;
+ static
+ {
+ try
+ {
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
+ String prefix = AbstractOMTest.class.getName() + "-" + formatter.format(new Date()) + "-";
+ File logFile = File.createTempFile(prefix, ".log");
+ OMPlatform.INSTANCE.addLogHandler(new FileLogHandler(logFile, OMLogger.Level.WARN));
+ IOUtil.ERR().println("Logging errors and warnings to " + logFile);
+ IOUtil.ERR().println();
+ }
+ catch (Throwable ex)
+ {
+ IOUtil.print(ex);
+ }
+ }
+
protected AbstractOMTest()
{
}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/bundle/Activator.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/bundle/Activator.java
index 24d1e8a2c9..15dbe12e25 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/bundle/Activator.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/bundle/Activator.java
@@ -4,7 +4,7 @@
* 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
*/
@@ -12,7 +12,9 @@ package org.eclipse.emf.internal.cdo.bundle;
import org.eclipse.emf.internal.cdo.view.CDOViewProviderRegistryImpl;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
import org.eclipse.net4j.util.om.OSGiActivator;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.emf.common.EMFPlugin;
import org.eclipse.emf.common.util.ResourceLocator;
@@ -123,8 +125,7 @@ public final class Activator extends EMFPlugin
*/
protected void doStop() throws Exception
{
- CDOViewProviderRegistryImpl.INSTANCE.deactivate();
- // CDOPackageTypeRegistryImpl.INSTANCE.deactivate();
+ LifecycleUtil.deactivate(CDOViewProviderRegistryImpl.INSTANCE, OMLogger.Level.WARN);
}
}
}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java
index 2a065b15d7..e3c4dd3167 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/session/CDOSessionImpl.java
@@ -67,6 +67,7 @@ import org.eclipse.net4j.util.lifecycle.ILifecycle;
import org.eclipse.net4j.util.lifecycle.Lifecycle;
import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter;
import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.net4j.util.om.monitor.OMMonitor;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.net4j.util.options.IOptionsContainer;
@@ -242,7 +243,7 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
public void close()
{
- deactivate();
+ LifecycleUtil.deactivate(this, OMLogger.Level.WARN);
}
/**
@@ -756,7 +757,7 @@ public abstract class CDOSessionImpl extends Container<CDOView> implements Inter
if (invalidationRunner != null)
{
- invalidationRunner.deactivate();
+ LifecycleUtil.deactivate(invalidationRunner, OMLogger.Level.WARN);
invalidationRunner = null;
}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java
index 9846a856af..09ecb8da8c 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOViewImpl.java
@@ -67,6 +67,8 @@ import org.eclipse.net4j.util.collection.HashBag;
import org.eclipse.net4j.util.concurrent.RWLockManager;
import org.eclipse.net4j.util.event.Notifier;
import org.eclipse.net4j.util.lifecycle.Lifecycle;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.net4j.util.options.OptionsEvent;
import org.eclipse.net4j.util.ref.ReferenceType;
@@ -1415,7 +1417,7 @@ public class CDOViewImpl extends Lifecycle implements InternalCDOView
public void close()
{
- deactivate();
+ LifecycleUtil.deactivate(this, OMLogger.Level.WARN);
}
/**
diff --git a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/ServerSession.java b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/ServerSession.java
index c450684eba..563eda763c 100644
--- a/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/ServerSession.java
+++ b/plugins/org.eclipse.net4j.buddies.server/src/org/eclipse/net4j/buddies/internal/server/ServerSession.java
@@ -4,7 +4,7 @@
* 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
*/
@@ -17,6 +17,8 @@ import org.eclipse.net4j.util.event.IEvent;
import org.eclipse.net4j.util.event.IListener;
import org.eclipse.net4j.util.lifecycle.ILifecycleEvent;
import org.eclipse.net4j.util.lifecycle.Lifecycle;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.PlatformObject;
@@ -56,7 +58,7 @@ public class ServerSession extends Lifecycle implements ISession, IListener
{
protocol.close();
protocol = null;
- deactivate();
+ LifecycleUtil.deactivate(this, OMLogger.Level.WARN);
}
/**
diff --git a/plugins/org.eclipse.net4j.buddies/src/org/eclipse/net4j/internal/buddies/ClientSession.java b/plugins/org.eclipse.net4j.buddies/src/org/eclipse/net4j/internal/buddies/ClientSession.java
index efdfc3440e..52537ac4ea 100644
--- a/plugins/org.eclipse.net4j.buddies/src/org/eclipse/net4j/internal/buddies/ClientSession.java
+++ b/plugins/org.eclipse.net4j.buddies/src/org/eclipse/net4j/internal/buddies/ClientSession.java
@@ -4,7 +4,7 @@
* 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
*/
@@ -24,6 +24,7 @@ import org.eclipse.net4j.util.event.IEvent;
import org.eclipse.net4j.util.event.IListener;
import org.eclipse.net4j.util.lifecycle.ILifecycleEvent;
import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.PlatformObject;
@@ -65,7 +66,7 @@ public class ClientSession extends BuddyContainer implements IBuddySession, ILis
{
protocol.close();
protocol = null;
- deactivate();
+ LifecycleUtil.deactivate(this, OMLogger.Level.WARN);
}
/**
diff --git a/plugins/org.eclipse.net4j.http.server/src/org/eclipse/net4j/http/internal/server/HTTPAcceptor.java b/plugins/org.eclipse.net4j.http.server/src/org/eclipse/net4j/http/internal/server/HTTPAcceptor.java
index 1d2e6a9a56..01ae753959 100644
--- a/plugins/org.eclipse.net4j.http.server/src/org/eclipse/net4j/http/internal/server/HTTPAcceptor.java
+++ b/plugins/org.eclipse.net4j.http.server/src/org/eclipse/net4j/http/internal/server/HTTPAcceptor.java
@@ -4,7 +4,7 @@
* 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
*/
@@ -21,6 +21,8 @@ import org.eclipse.net4j.util.StringUtil;
import org.eclipse.net4j.util.concurrent.Worker;
import org.eclipse.net4j.util.io.ExtendedDataInputStream;
import org.eclipse.net4j.util.io.ExtendedDataOutputStream;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.net4j.util.security.IRandomizer;
@@ -219,7 +221,7 @@ public class HTTPAcceptor extends Acceptor implements IHTTPAcceptor, INet4jTrans
@Override
protected void doDeactivate() throws Exception
{
- cleaner.deactivate();
+ LifecycleUtil.deactivate(cleaner, OMLogger.Level.WARN);
super.doDeactivate();
}
diff --git a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java
index 688d2b0f07..0140e6d1c6 100644
--- a/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java
+++ b/plugins/org.eclipse.net4j.http/src/org/eclipse/net4j/internal/http/HTTPClientConnector.java
@@ -4,7 +4,7 @@
* 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
*/
@@ -17,6 +17,8 @@ import org.eclipse.net4j.util.io.ExtendedDataOutputStream;
import org.eclipse.net4j.util.io.ExtendedIOAdapter;
import org.eclipse.net4j.util.io.ExtendedIOHandler;
import org.eclipse.net4j.util.io.IORuntimeException;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.spi.net4j.InternalChannel;
@@ -61,11 +63,13 @@ public class HTTPClientConnector extends HTTPConnector
{
}
+ @Override
public Location getLocation()
{
return Location.CLIENT;
}
+ @Override
public String getURL()
{
return url;
@@ -130,7 +134,7 @@ public class HTTPClientConnector extends HTTPConnector
protected void doDeactivate() throws Exception
{
doDisconnect();
- poller.deactivate();
+ LifecycleUtil.deactivate(poller, OMLogger.Level.WARN);
httpClient = null;
super.doDeactivate();
}
diff --git a/plugins/org.eclipse.net4j.jms/src/org/eclipse/net4j/internal/jms/SessionImpl.java b/plugins/org.eclipse.net4j.jms/src/org/eclipse/net4j/internal/jms/SessionImpl.java
index 73760b08a9..0649d2b7c2 100644
--- a/plugins/org.eclipse.net4j.jms/src/org/eclipse/net4j/internal/jms/SessionImpl.java
+++ b/plugins/org.eclipse.net4j.jms/src/org/eclipse/net4j/internal/jms/SessionImpl.java
@@ -4,7 +4,7 @@
* 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
*/
@@ -21,6 +21,8 @@ import org.eclipse.net4j.internal.jms.protocol.JMSRollbackRequest;
import org.eclipse.net4j.internal.jms.util.DestinationUtil;
import org.eclipse.net4j.internal.jms.util.MessageUtil;
import org.eclipse.net4j.util.concurrent.QueueWorker;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import javax.jms.BytesMessage;
import javax.jms.Destination;
@@ -318,7 +320,7 @@ public class SessionImpl extends QueueWorker<MessageConsumerImpl> implements Ses
public void close()
{
- deactivate();
+ LifecycleUtil.deactivate(this, OMLogger.Level.WARN);
}
public void run()
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/container/PluginContainer.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/container/PluginContainer.java
index e40652a79f..28e80ec376 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/container/PluginContainer.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/internal/util/container/PluginContainer.java
@@ -4,7 +4,7 @@
* 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
*/
@@ -17,6 +17,8 @@ import org.eclipse.net4j.util.container.IPluginContainer;
import org.eclipse.net4j.util.container.ManagedContainer;
import org.eclipse.net4j.util.factory.IFactory;
import org.eclipse.net4j.util.factory.IFactoryKey;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.net4j.util.registry.IRegistry;
import java.util.List;
@@ -48,7 +50,7 @@ public class PluginContainer extends ManagedContainer implements IPluginContaine
{
if (instance != null)
{
- instance.deactivate();
+ LifecycleUtil.deactivate(instance, OMLogger.Level.WARN);
instance = null;
}
}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/QueueWorkerWorkSerializer.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/QueueWorkerWorkSerializer.java
index 1f5a62de91..2a9e024335 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/QueueWorkerWorkSerializer.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/concurrent/QueueWorkerWorkSerializer.java
@@ -4,12 +4,15 @@
* 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.concurrent;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
+
/**
* @author Eike Stepper
*/
@@ -22,6 +25,6 @@ public class QueueWorkerWorkSerializer extends QueueRunner implements IWorkSeria
public void dispose()
{
- deactivate();
+ LifecycleUtil.deactivate(this, OMLogger.Level.WARN);
}
}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java
index f6390f9005..f113c594e9 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/lifecycle/LifecycleUtil.java
@@ -4,7 +4,7 @@
* 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
*/
@@ -12,6 +12,7 @@ package org.eclipse.net4j.util.lifecycle;
import org.eclipse.net4j.internal.util.bundle.OM;
import org.eclipse.net4j.util.WrappedException;
+import org.eclipse.net4j.util.om.log.OMLogger.Level;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import java.lang.annotation.Annotation;
@@ -186,6 +187,18 @@ public final class LifecycleUtil
return null;
}
+ /**
+ * @since 2.0
+ */
+ public static void deactivate(Object object, Level logLevel)
+ {
+ Exception exception = deactivate(object);
+ if (exception != null)
+ {
+ OM.LOG.log(logLevel, "Problem while deactivating " + object, exception); //$NON-NLS-1$
+ }
+ }
+
public static void deactivateNoisy(Object object) throws LifecycleException
{
deactivateNoisy(object, false);
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/AbstractLogHandler.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/AbstractLogHandler.java
new file mode 100644
index 0000000000..22bcf9ed7e
--- /dev/null
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/AbstractLogHandler.java
@@ -0,0 +1,76 @@
+/**
+ * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) and others.
+ * 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.om.log;
+
+import org.eclipse.net4j.util.om.log.OMLogger.Level;
+
+/**
+ * @author Eike Stepper
+ * @since 2.0
+ */
+public abstract class AbstractLogHandler implements OMLogHandler
+{
+ private Level logLevel;
+
+ public AbstractLogHandler(Level logLevel)
+ {
+ this.logLevel = logLevel;
+ }
+
+ public AbstractLogHandler()
+ {
+ this(Level.DEBUG);
+ }
+
+ public Level getLogLevel()
+ {
+ return logLevel;
+ }
+
+ public void setLogLevel(Level logLevel)
+ {
+ this.logLevel = logLevel;
+ }
+
+ public void logged(OMLogger logger, Level level, String msg, Throwable t)
+ {
+ try
+ {
+ if (level.ordinal() <= logLevel.ordinal())
+ {
+ writeLog(logger, level, msg, t);
+ }
+ }
+ catch (Throwable ignore)
+ {
+ ; // Ignore
+ }
+ }
+
+ protected abstract void writeLog(OMLogger logger, Level level, String msg, Throwable t) throws Throwable;
+
+ public static String toString(Level level)
+ {
+ switch (level)
+ {
+ case ERROR:
+ return "[ERROR]"; //$NON-NLS-1$
+ case WARN:
+ return "[WARN]"; //$NON-NLS-1$
+ case INFO:
+ return "[INFO]"; //$NON-NLS-1$
+ case DEBUG:
+ return "[DEBUG]"; //$NON-NLS-1$
+ default:
+ throw new IllegalArgumentException("Illegal log level: " + level); //$NON-NLS-1$
+ }
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/FileLogHandler.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/FileLogHandler.java
new file mode 100644
index 0000000000..2b26a23f5f
--- /dev/null
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/FileLogHandler.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2004 - 2009 Eike Stepper (Berlin, Germany) and others.
+ * 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.om.log;
+
+import org.eclipse.net4j.util.io.IOUtil;
+import org.eclipse.net4j.util.om.log.OMLogger.Level;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+
+/**
+ * @author Eike Stepper
+ * @since 2.0
+ */
+public class FileLogHandler extends AbstractLogHandler
+{
+ private File logFile;
+
+ public FileLogHandler(File logFile, Level logLevel)
+ {
+ super(logLevel);
+ this.logFile = logFile;
+ }
+
+ public FileLogHandler(File logFile)
+ {
+ this.logFile = logFile;
+ }
+
+ public File getLogFile()
+ {
+ return logFile;
+ }
+
+ @Override
+ protected void writeLog(OMLogger logger, Level level, String msg, Throwable t) throws Throwable
+ {
+ FileOutputStream fos = null;
+
+ try
+ {
+ fos = new FileOutputStream(logFile, true);
+ PrintStream stream = new PrintStream(fos);
+ stream.println(toString(level) + " " + msg); //$NON-NLS-1$
+ if (t != null)
+ {
+ IOUtil.print(t, stream);
+ }
+ }
+ finally
+ {
+ IOUtil.close(fos);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/PrintLogHandler.java b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/PrintLogHandler.java
index 288f26855a..494c746aeb 100644
--- a/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/PrintLogHandler.java
+++ b/plugins/org.eclipse.net4j.util/src/org/eclipse/net4j/util/om/log/PrintLogHandler.java
@@ -4,7 +4,7 @@
* 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
*/
@@ -18,7 +18,7 @@ import java.io.PrintStream;
/**
* @author Eike Stepper
*/
-public class PrintLogHandler implements OMLogHandler
+public class PrintLogHandler extends AbstractLogHandler
{
public static final PrintLogHandler CONSOLE = new PrintLogHandler();
@@ -37,36 +37,14 @@ public class PrintLogHandler implements OMLogHandler
this(IOUtil.OUT(), IOUtil.ERR());
}
- public void logged(OMLogger logger, Level level, String msg, Throwable t)
+ @Override
+ protected void writeLog(OMLogger logger, Level level, String msg, Throwable t) throws Throwable
{
- try
+ PrintStream stream = level == Level.ERROR ? err : out;
+ stream.println(toString(level) + " " + msg); //$NON-NLS-1$
+ if (t != null)
{
- PrintStream stream = level == Level.ERROR ? err : out;
- stream.println(toString(level) + " " + msg); //$NON-NLS-1$
- if (t != null)
- {
- IOUtil.print(t, stream);
- }
- }
- catch (RuntimeException ignore)
- {
- }
- }
-
- public static String toString(Level level)
- {
- switch (level)
- {
- case ERROR:
- return "[ERROR]"; //$NON-NLS-1$
- case WARN:
- return "[WARN]"; //$NON-NLS-1$
- case INFO:
- return "[INFO]"; //$NON-NLS-1$
- case DEBUG:
- return "[DEBUG]"; //$NON-NLS-1$
- default:
- throw new IllegalArgumentException("Illegal log level: " + level); //$NON-NLS-1$
+ IOUtil.print(t, stream);
}
}
}
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java
index ff19b20ec5..075506f72f 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/net4j/signal/SignalProtocol.java
@@ -21,6 +21,8 @@ import org.eclipse.net4j.signal.failover.NOOPFailOverStrategy;
import org.eclipse.net4j.util.io.IORuntimeException;
import org.eclipse.net4j.util.io.IStreamWrapper;
import org.eclipse.net4j.util.io.StreamWrapperChain;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.internal.net4j.bundle.OM;
@@ -171,7 +173,7 @@ public class SignalProtocol<INFRA_STRUCTURE> extends Protocol<INFRA_STRUCTURE> i
*/
public void close()
{
- deactivate();
+ LifecycleUtil.deactivate(this, OMLogger.Level.WARN);
}
public boolean waitForSignals(long timeout)
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Acceptor.java b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Acceptor.java
index 06eadebf38..d592804511 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Acceptor.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Acceptor.java
@@ -4,7 +4,7 @@
* 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
*/
@@ -13,11 +13,12 @@ package org.eclipse.spi.net4j;
import org.eclipse.net4j.ITransportConfig;
import org.eclipse.net4j.Net4jUtil;
import org.eclipse.net4j.connector.IConnector;
-import org.eclipse.net4j.util.WrappedException;
import org.eclipse.net4j.util.container.Container;
import org.eclipse.net4j.util.event.IListener;
import org.eclipse.net4j.util.lifecycle.ILifecycle;
import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.net4j.util.security.INegotiator;
@@ -135,11 +136,7 @@ public abstract class Acceptor extends Container<IConnector> implements Internal
public void close()
{
- Exception exception = deactivate();
- if (exception != null)
- {
- throw WrappedException.wrap(exception);
- }
+ LifecycleUtil.deactivate(this, OMLogger.Level.WARN);
}
public boolean isClosed()
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java
index ea5e56fb31..e36a6f601c 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Channel.java
@@ -4,7 +4,7 @@
* 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
*/
@@ -14,11 +14,12 @@ import org.eclipse.net4j.buffer.BufferState;
import org.eclipse.net4j.buffer.IBuffer;
import org.eclipse.net4j.buffer.IBufferHandler;
import org.eclipse.net4j.channel.IChannelMultiplexer;
-import org.eclipse.net4j.util.WrappedException;
import org.eclipse.net4j.util.concurrent.IWorkSerializer;
import org.eclipse.net4j.util.concurrent.QueueWorkerWorkSerializer;
import org.eclipse.net4j.util.concurrent.SynchronousWorkSerializer;
import org.eclipse.net4j.util.lifecycle.Lifecycle;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.internal.net4j.bundle.OM;
@@ -270,11 +271,7 @@ public class Channel extends Lifecycle implements InternalChannel
public void close()
{
- Exception exception = deactivate();
- if (exception != null)
- {
- throw WrappedException.wrap(exception);
- }
+ LifecycleUtil.deactivate(this, OMLogger.Level.WARN);
}
public boolean isClosed()
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Connector.java b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Connector.java
index a824bc9692..ce6852d016 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Connector.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Connector.java
@@ -17,10 +17,11 @@ import org.eclipse.net4j.connector.ConnectorState;
import org.eclipse.net4j.connector.IConnector;
import org.eclipse.net4j.connector.IConnectorStateEvent;
import org.eclipse.net4j.protocol.IProtocol;
-import org.eclipse.net4j.util.WrappedException;
import org.eclipse.net4j.util.ReflectUtil.ExcludeFromDump;
import org.eclipse.net4j.util.event.Event;
import org.eclipse.net4j.util.event.INotifier;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.net4j.util.security.INegotiationContext;
import org.eclipse.net4j.util.security.INegotiator;
@@ -257,11 +258,7 @@ public abstract class Connector extends ChannelMultiplexer implements InternalCo
public void close()
{
- Exception exception = deactivate();
- if (exception != null)
- {
- throw WrappedException.wrap(exception);
- }
+ LifecycleUtil.deactivate(this, OMLogger.Level.WARN);
}
public boolean isClosed()
diff --git a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Protocol.java b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Protocol.java
index 901052e8b8..9b1c563294 100644
--- a/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Protocol.java
+++ b/plugins/org.eclipse.net4j/src/org/eclipse/spi/net4j/Protocol.java
@@ -18,6 +18,8 @@ import org.eclipse.net4j.util.event.IListener;
import org.eclipse.net4j.util.lifecycle.ILifecycle;
import org.eclipse.net4j.util.lifecycle.Lifecycle;
import org.eclipse.net4j.util.lifecycle.LifecycleEventAdapter;
+import org.eclipse.net4j.util.lifecycle.LifecycleUtil;
+import org.eclipse.net4j.util.om.log.OMLogger;
import java.util.concurrent.ExecutorService;
@@ -154,7 +156,7 @@ public abstract class Protocol<INFRA_STRUCTURE> extends Lifecycle implements IPr
*/
protected void handleChannelDeactivation()
{
- deactivate();
+ LifecycleUtil.deactivate(this, OMLogger.Level.WARN);
}
@Override

Back to the top