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...