Skip to content

Commit

Permalink
Merge pull request #1853 from apache/revert-1845-OAK-11248
Browse files Browse the repository at this point in the history
Revert "OAK-11248 : closing all features in one single loop"
  • Loading branch information
stefan-egli authored Nov 6, 2024
2 parents 9d09f3b + 2ba4dfa commit f54b4cf
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
Expand Down Expand Up @@ -661,8 +660,29 @@ protected void deactivate() {
journalPropertyHandlerFactory.stop();
}

closeFeatures(prefetchFeature, docStoreThrottlingFeature, cancelInvalidationFeature, docStoreFullGCFeature,
docStoreEmbeddedVerificationFeature, prevNoPropCacheFeature);
if (prefetchFeature != null) {
prefetchFeature.close();
}

if (docStoreThrottlingFeature != null) {
docStoreThrottlingFeature.close();
}

if (cancelInvalidationFeature != null) {
cancelInvalidationFeature.close();
}

if (docStoreFullGCFeature != null) {
docStoreFullGCFeature.close();
}

if (docStoreEmbeddedVerificationFeature != null) {
docStoreEmbeddedVerificationFeature.close();
}

if (prevNoPropCacheFeature != null) {
prevNoPropCacheFeature.close();
}

unregisterNodeStore();
}
Expand Down Expand Up @@ -768,19 +788,6 @@ protected void unbindNodeStateCache(DocumentNodeStateCache nodeStateCache) {
}
}

/**
* Closes the given varargs of features.
* <p>
* This method iterates over the provided varargs of features and closes each one
* that is not null.
* </p>
*
* @param features a varargs of {@link Feature} objects to be closed.
*/
private void closeFeatures(@NotNull final Feature... features) {
Arrays.stream(features).filter(Objects::nonNull).forEach(Feature::close);
}

private void unregisterNodeStore() {
deactivationTimestamp = System.currentTimeMillis();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,10 @@

import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Supplier;

import org.apache.commons.lang3.reflect.MethodUtils;
import org.apache.jackrabbit.guava.common.collect.Maps;
import com.mongodb.MongoClient;

Expand All @@ -33,7 +31,6 @@
import org.apache.jackrabbit.oak.plugins.document.spi.JournalPropertyService;
import org.apache.jackrabbit.oak.plugins.document.spi.lease.LeaseFailureHandler;
import org.apache.jackrabbit.oak.spi.state.NodeStore;
import org.apache.jackrabbit.oak.spi.toggle.Feature;
import org.apache.jackrabbit.oak.stats.StatisticsProvider;
import org.apache.sling.testing.mock.osgi.MockOsgi;
import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
Expand All @@ -48,7 +45,6 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.junit.Assume.assumeTrue;
Expand Down Expand Up @@ -360,19 +356,6 @@ public void recoveryDelayMillisMinute() {
doRecoveryDelayMillis(60000);
}

@Test
public void closeFeatures() throws InvocationTargetException, IllegalAccessException, NoSuchMethodException {
Feature feature1 = mock(Feature.class);
Feature feature2 = mock(Feature.class);
Feature feature3 = mock(Feature.class);
Feature feature4 = mock(Feature.class);

// successful invocation would return null
assertNull(MethodUtils.invokeMethod(service, true, "closeFeatures",
new Object[]{feature1, feature2, null, feature3, feature4},
new Class[]{Feature[].class}));
}

private void doRecoveryDelayMillis(long recoveryDelayMillis) {
Map<String, Object> config = newConfig(repoHome);
config.put("recoveryDelayMillis", recoveryDelayMillis);
Expand Down

0 comments on commit f54b4cf

Please sign in to comment.