You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2015/05/06 23:25:10 UTC
svn commit: r1678096 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/osgi/ObserverTracker.java
test/java/org/apache/jackrabbit/oak/osgi/ObserverTrackerTest.java
Author: mduerig
Date: Wed May 6 21:25:09 2015
New Revision: 1678096
URL: http://svn.apache.org/r1678096
Log:
OAK-2845: Memory leak in ObserverTracker#removedService
Clear subscription on removeService
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/ObserverTracker.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/osgi/ObserverTrackerTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/ObserverTracker.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/ObserverTracker.java?rev=1678096&r1=1678095&r2=1678096&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/ObserverTracker.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/osgi/ObserverTracker.java Wed May 6 21:25:09 2015
@@ -80,8 +80,9 @@ public class ObserverTracker implements
@Override
public void removedService(ServiceReference reference, Object service) {
- if (subscriptions.containsKey(reference)) {
- Closeables.closeQuietly(subscriptions.get(reference));
+ Closeable subscription = subscriptions.remove(reference);
+ if (subscription != null) {
+ Closeables.closeQuietly(subscription);
bundleContext.ungetService(reference);
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/osgi/ObserverTrackerTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/osgi/ObserverTrackerTest.java?rev=1678096&r1=1678095&r2=1678096&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/osgi/ObserverTrackerTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/osgi/ObserverTrackerTest.java Wed May 6 21:25:09 2015
@@ -34,7 +34,6 @@ import org.apache.jackrabbit.oak.spi.com
import org.apache.jackrabbit.oak.spi.commit.Observer;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
@@ -109,7 +108,6 @@ public class ObserverTrackerTest {
}
@Test
- @Ignore("OAK-2845") // FIXME OAK-2845
public void unregisterTwice() {
tracker.addingService(ref1);
assertEquals(ImmutableSet.of(observer1), observers);