Looking further back up the call chain I see that the
org.apache.sling.jcr.jackrabbit.server.SlingServerRepository component
configuration has "" as the values for home and config, and its the
when the File("").getParent() is called ( config ) that the NPE is
called.I guess an earlier version of sling looked for the sling.home environment property which was being set in sling.properties of the old launchpad, and our integration tests? -- Pull me down under... On Fri, Apr 9, 2010 at 12:14 PM, Mark Derricutt <[email protected]> wrote: > Hi all, > > Not really sure how to diagnose this problem I'm having, every time I > attach a debugger it goes away. > > Anyway, after updated the our sling/osgi infrastructure from using > sling 2.0.2-incubation to the current release version, all of our > integration tests started to fail because sling was no longer creating > its content repository ( it sometimes works, but more often doesn't ). > Basically, my integration tests start a Felix instance and deploy all > of slings bundles, I'm now getting the following NPE being logged: > > 09.04.2010 11:53:59.161 *INFO* [SCR Component Actor] > org.apache.sling.jcr.jackrabbit.server Using JNDI context > {java.naming.provider.url=http://sling.apache.org, > java.naming.factory.initial=org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory} > to register repositories > 09.04.2010 11:53:59.163 *INFO* [SCR Component Actor] > org.apache.sling.jcr.jackrabbit.server Using RMI Registry port 1099 > 09.04.2010 11:53:59.176 *INFO* [FelixStartLevel] > org.springframework.osgi.extender.internal.activator.ContextLoaderListener > Starting [org.springframework.bundle.osgi.extender] bundle v.[1.1.1] > 09.04.2010 11:53:59.185 *INFO* [SCR Component Actor] > org.apache.sling.jcr.jackrabbit.server Configuration File > /Users/amrk/IdeaProjects/securemx/smx3/integration/launchpad-tests has > been lost, trying to recreate > 09.04.2010 11:53:59.190 *ERROR* [SCR Component Actor] > org.apache.sling.jcr.jackrabbit.server startRepository: Uncaught > Throwable trying to access Repository, calling stopRepository() > (java.lang.NullPointerException) java.lang.NullPointerException > at > org.apache.sling.jcr.jackrabbit.server.impl.SlingServerRepository.copyFile(SlingServerRepository.java:212) > at > org.apache.sling.jcr.jackrabbit.server.impl.SlingServerRepository.acquireRepository(SlingServerRepository.java:133) > at > org.apache.sling.jcr.base.AbstractSlingRepository.startRepository(AbstractSlingRepository.java:762) > at > org.apache.sling.jcr.base.AbstractSlingRepository.activate(AbstractSlingRepository.java:580) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.felix.scr.impl.helper.BaseMethod.invokeMethod(BaseMethod.java:213) > at > org.apache.felix.scr.impl.helper.BaseMethod.access$500(BaseMethod.java:38) > at > org.apache.felix.scr.impl.helper.BaseMethod$Resolved.invoke(BaseMethod.java:542) > at > org.apache.felix.scr.impl.helper.BaseMethod.invoke(BaseMethod.java:434) > at > org.apache.felix.scr.impl.helper.ActivateMethod.invoke(ActivateMethod.java:138) > at > org.apache.felix.scr.impl.manager.ImmediateComponentManager.createImplementationObject(ImmediateComponentManager.java:226) > at > org.apache.felix.scr.impl.manager.ImmediateComponentManager.createComponent(ImmediateComponentManager.java:118) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager$Unsatisfied.activate(AbstractComponentManager.java:991) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:298) > at > org.apache.felix.scr.impl.manager.AbstractComponentManager$1.doRun(AbstractComponentManager.java:138) > at > org.apache.felix.scr.impl.ComponentActivatorTask.run(ComponentActivatorTask.java:67) > at > org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:96) > at java.lang.Thread.run(Thread.java:637) > DEBUG: WIRE: 14.0 -> org.xml.sax.helpers -> 0 > Apr 9, 2010 11:53:59 AM net.sf.ehcache.config.ConfigurationFactory > parseConfiguration > WARNING: No configuration found. Configuring ehcache from > ehcache-failsafe.xml found in the classpath: > bundle://14.0:11/ehcache-failsafe.xml > DEBUG: WIRE: 14.0 -> javax.xml.parsers -> 0 > 09.04.2010 11:53:59.458 *INFO* [FelixStartLevel] > org.springframework.bundle.osgi.extender Service [74] ServiceEvent > REGISTERED > > > When I start Felix I'm setting the following options: > > configMap.put("sling.home", "/var/smx3/sling"); > configMap.put("sling.context.default", "default"); > configMap.put("felix.cm.dir", "/var/smx3/felix/config"); > configMap.put("ds.factory.enabled", "true"); > configMap.put("org.osgi.service.http.port", "8888"); > > The directory /var/smx3 exists, but is empty, and writable. The > problem seems to occur even if the repository exists ( using the > default embedded database repository ). > > Has anyone seen this behaviour before? Is there some step I may have > missed? What confuses me is when I set a breakpointon > SlingServerRepository#copyFile and attach a debugger, everything runs > fine, which leads to think theres some race condition or something > happening -somewhere-. > > Mark > > > -- > Pull me down under... >
