You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Axel Hanikel (Jira)" <ji...@apache.org> on 2021/01/26 17:40:00 UTC

[jira] [Commented] (OAK-9338) RemotePersistentCacheService throws if both redis and disk cache are disabled

    [ https://issues.apache.org/jira/browse/OAK-9338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17272280#comment-17272280 ] 

Axel Hanikel commented on OAK-9338:
-----------------------------------

Proposed fix:

{noformat}
diff --git a/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java b/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/r\
emote/persistentcache/RemotePersistentCacheService.java
index 4fd074a9d3..b8c4aa38f9 100644
--- a/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java
+++ b/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java
@@ -60,7 +60,9 @@ public class RemotePersistentCacheService {
     public void activate(ComponentContext context, Configuration config) throws IOException {
         osgiWhiteboard = new OsgiWhiteboard(context.getBundleContext());
         persistentCache = createPersistentCache(config, closer);
-        registration = context.getBundleContext().registerService(PersistentCache.class.getName(), persistentCache, new Properties());
+        if (persistentCache != null) {
+            registration = context.getBundleContext().registerService(PersistentCache.class.getName(), persistentCache, new Properties());
+        }
     }

     @Deactivate
{noformat}

[~adulceanu] Could you have a look please? :-)


> RemotePersistentCacheService throws if both redis and disk cache are disabled
> -----------------------------------------------------------------------------
>
>                 Key: OAK-9338
>                 URL: https://issues.apache.org/jira/browse/OAK-9338
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: segment-tar
>    Affects Versions: 1.38.0
>            Reporter: Axel Hanikel
>            Priority: Major
>             Fix For: 1.40.0
>
>
> RemotePersistentCacheService throws if both redis and disk cache are disabled in the configuration:
> {noformat}
> [FelixLogListener] org.apache.jackrabbit.oak.segment.remote.persistentcache.RemotePersistentCacheService bundle org.apache.jackrabbit.oak-segment-remote:1.37.0.R1885266 (135)[org.apache.jackrabbit.oak.segment.remote.persistentcache.RemotePersistentCacheService(224)] : The activate method has thrown an exception (java.lang.IllegalArgumentException: Service object cannot be null.)
> java.lang.IllegalArgumentException: Service object cannot be null.
> 	at org.apache.felix.framework.Felix.registerService(Felix.java:3748)
> 	at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328)
> 	at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:302)
> 	at org.apache.jackrabbit.oak.segment.remote.persistentcache.RemotePersistentCacheService.activate(RemotePersistentCacheService.java:63) [org.apache.jackrabbit.oak-segment-remote:1.37.0.R1885266]
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> 	at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:242) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:678) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:524) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:318) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:308) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:342) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:115) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:984) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:957) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:766) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:667) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:433) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:666) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:353) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:553) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.Activator.access$200(Activator.java:69) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:424) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169) [org.apache.felix.scr:2.1.20]
> 	at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49) [org.apache.felix.scr:2.1.20]
> 	at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488)
> 	at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:420)
> 	at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232)
> 	at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450)
> 	at org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915)
> 	at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834)
> 	at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:516)
> 	at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4817)
> 	at org.apache.felix.framework.Felix.startBundle(Felix.java:2336)
> 	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1539)
> 	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
> 	at java.base/java.lang.Thread.run(Thread.java:834) 
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)