When I try to create new nodes in an existing database, I get the following exception:
org.neo4j.kernal.StoreLockException .
The following is a snippet of code - the actual line that causes the exception. Below I have added some details and a full stack trace.
If I create a new folder and use it as DB_PATH , then my code works fine the first time it starts. On the second launch, it will work with the same exception. Something seems to be preventing the castle from being obtained.
I tried to set permissions to read / write for each file in DB_PATH . Bad luck. Is there a parameter in one of the configuration files that should be disabled with respect to locks?
Metadata exception
graphDB = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH );
Details (line 6)
private static GraphDatabaseService graphDB = null; public static final String DB_PATH = "/Users/NtroduceMe/Downloads/neo4j-community-2.0.0-M03/data/ntroduceme"; private static Index<Node> userNodeIndex; private static Index<Node> rememberMeNodeIndex; static { graphDB = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH ); registerShutdownHook(graphDB); userNodeIndex = graphDB.index().forNodes("profile_id"); rememberMeNodeIndex = graphDB.index().forNodes("profile_id"); }
Stack trace
Jun 19, 2013 12:12:50 AM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [ProfileController] in context with path [] threw exception [Servlet execution threw an exception] with root cause org.neo4j.kernel.StoreLockException: Could not create lock file at org.neo4j.kernel.StoreLocker.checkLock(StoreLocker.java:85) at org.neo4j.kernel.StoreLockerLifecycleAdapter.start(StoreLockerLifecycleAdapter.java:40) at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:498) at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:296) at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:100) at org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:92) at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:197) at org.neo4j.graphdb.factory.GraphDatabaseFactory.newEmbeddedDatabase(GraphDatabaseFactory.java:69) at com.NtroduceMe.Utilities.GraphDBManager.<clinit>(GraphDBManager.java:22) at com.NtroduceMe.UserProfile.Profiles.createProfile(Profiles.java:141) at com.NtroduceMe.UserProfile.ProfileController.doPost(ProfileController.java:61) at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722)
Helper class i for storing database instance
public class GraphDBManager { public static final String DB_PATH = "/Users/NtroduceMe/Downloads/neo4j-community-2.0.0-M03/data/ntroduceme"; private static final GraphDatabaseService graphDB = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH ); private static Index<Node> userNodeIndex; private static Index<Node> rememberMeNodeIndex; static { registerShutdownHook(graphDB); userNodeIndex = graphDB.index().forNodes("profile_id"); rememberMeNodeIndex = graphDB.index().forNodes("profile_id"); } public static GraphDatabaseService getGraphDB(){ return graphDB; } public static Index<Node> getUserNodeIndex(){ return userNodeIndex; } public static Index<Node> getRemberMeNodeIndex(){ return rememberMeNodeIndex; } private static void registerShutdownHook(final GraphDatabaseService graphDb ) {
source share