Neo4j Traversal Framework

96 views
Skip to first unread message

Radheshyam Verma

unread,
Jan 25, 2016, 2:31:37 AM1/25/16
to Neo4j
Hi,
I am using traversal framework to traverse graph which returns nodes.
Can we somehow specify a limit on number of nodes which the traversal returns like we do in Query using "LIMIT" and "SKIP".
Thanks.

Mattias Persson

unread,
Jan 27, 2016, 3:54:15 AM1/27/16
to Neo4j
With the traversal framework, the actual work of traversing happens lazily on every call on hasNext/next on the returned Traverser (in the end Iterator<Path>). You can simply stop pulling more paths after a certain number of paths have been extracted.

Radheshyam Verma

unread,
Jan 27, 2016, 7:20:13 AM1/27/16
to ne...@googlegroups.com
Thanks for the reply,
So you mean that for each iteration of following 'FOR' loop, a query is sent to get next node from database if it exists.
and that not all the nodes are returned in one go before 'FOR' loop even starts.

for(Node currentNode : database.traversalDescription()
                .depthFirst()
                .uniqueness(Uniqueness.NODE_GLOBAL)
                .order(BranchOrderingPolicies.PREORDER_BREADTH_FIRST)
                .relationships(<RelationshipType>, Direction.BOTH)
                .evaluator(Evaluators.excludeStartPosition())
                .traverse(node)
                .nodes())
        {
              
        }

Thanks for the response again.


--
You received this message because you are subscribed to a topic in the Google Groups "Neo4j" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/neo4j/2A1QiEOwofU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to neo4j+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Mattias Persson

unread,
Jan 27, 2016, 10:51:01 AM1/27/16
to Neo4j Development
You're correct in principle, but it's not a new "query" as such that is sent every time. The traversal state is kept between calls to hasNext/next, but that's just a detail.
--
Mattias Persson
Neo4j Hacker at Neo Technology

Radheshyam Verma

unread,
Mar 14, 2016, 3:32:58 AM3/14/16
to ne...@googlegroups.com
Hi Mattias Persson,
I need help regarding an error I get when I start server. Can you help me find the cause? Here is the stacktrace:-

 ERROR [org.neo4j]: Exception when stopping org.neo4j.index.impl.lucene.LuceneDataSource@2aad7c69 org.neo4j.index.impl.lucene.LuceneDataSource.unbindLogicalLog()V
java.lang.NoSuchMethodError: org.neo4j.index.impl.lucene.LuceneDataSource.unbindLogicalLog()V
        at org.neo4j.index.impl.lucene.LuceneDataSource.stop(LuceneDataSource.java:343)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.stop(LifeSupport.java:527)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.shutdown(LifeSupport.java:547)
        at org.neo4j.kernel.lifecycle.LifeSupport.remove(LifeSupport.java:339)
        at org.neo4j.kernel.impl.transaction.XaDataSourceManager.unregisterDataSource(XaDataSourceManager.java:272)
        at org.neo4j.index.lucene.LuceneKernelExtension.stop(LuceneKernelExtension.java:92)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.stop(LifeSupport.java:527)
        at org.neo4j.kernel.lifecycle.LifeSupport.stop(LifeSupport.java:155)
        at org.neo4j.kernel.extension.KernelExtensions.stop(KernelExtensions.java:125)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.stop(LifeSupport.java:527)
        at org.neo4j.kernel.lifecycle.LifeSupport.stop(LifeSupport.java:155)
        at org.neo4j.kernel.lifecycle.LifeSupport.shutdown(LifeSupport.java:185)
        at org.neo4j.kernel.InternalAbstractGraphDatabase.shutdown(InternalAbstractGraphDatabase.java:809)
        at org.springframework.data.neo4j.support.DelegatingGraphDatabase.shutdown(DelegatingGraphDatabase.java:283)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:353)
        at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:276)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:925)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:932)
        at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:997)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:547)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4760)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5184)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:919)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1704)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        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:745)
2016-03-14 07:10:41.034+0000 ERROR [org.neo4j]: Exception when stopping org.neo4j.index.lucene.LuceneKernelExtension@7addfa02 Component 'org.neo4j.index.impl.lucene.LuceneDataSource@2aad7c69' failed to stop. Please see attached cause exception.
org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.index.impl.lucene.LuceneDataSource@2aad7c69' failed to stop. Please see attached cause exception.
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.stop(LifeSupport.java:532)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.shutdown(LifeSupport.java:547)
        at org.neo4j.kernel.lifecycle.LifeSupport.remove(LifeSupport.java:339)
        at org.neo4j.kernel.impl.transaction.XaDataSourceManager.unregisterDataSource(XaDataSourceManager.java:272)
        at org.neo4j.index.lucene.LuceneKernelExtension.stop(LuceneKernelExtension.java:92)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.stop(LifeSupport.java:527)
        at org.neo4j.kernel.lifecycle.LifeSupport.stop(LifeSupport.java:155)
        at org.neo4j.kernel.extension.KernelExtensions.stop(KernelExtensions.java:125)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.stop(LifeSupport.java:527)
        at org.neo4j.kernel.lifecycle.LifeSupport.stop(LifeSupport.java:155)
        at org.neo4j.kernel.lifecycle.LifeSupport.shutdown(LifeSupport.java:185)
        at org.neo4j.kernel.InternalAbstractGraphDatabase.shutdown(InternalAbstractGraphDatabase.java:809)
        at org.springframework.data.neo4j.support.DelegatingGraphDatabase.shutdown(DelegatingGraphDatabase.java:283)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:353)
        at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:276)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:925)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:932)
        at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:997)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:547)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4760)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5184)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:919)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1704)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        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:745)
Caused by: java.lang.NoSuchMethodError: org.neo4j.index.impl.lucene.LuceneDataSource.unbindLogicalLog()V
        at org.neo4j.index.impl.lucene.LuceneDataSource.stop(LuceneDataSource.java:343)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.stop(LifeSupport.java:527)
        ... 41 more
2016-03-14 07:10:41.037+0000 ERROR [org.neo4j]: Exception when stopping org.neo4j.kernel.extension.KernelExtensions@237232d4 Component 'org.neo4j.index.lucene.LuceneKernelExtension@7addfa02' failed to stop. Please see attached cause exception.
org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.index.lucene.LuceneKernelExtension@7addfa02' failed to stop. Please see attached cause exception.
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.stop(LifeSupport.java:532)
        at org.neo4j.kernel.lifecycle.LifeSupport.stop(LifeSupport.java:155)
        at org.neo4j.kernel.extension.KernelExtensions.stop(KernelExtensions.java:125)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.stop(LifeSupport.java:527)
        at org.neo4j.kernel.lifecycle.LifeSupport.stop(LifeSupport.java:155)
        at org.neo4j.kernel.lifecycle.LifeSupport.shutdown(LifeSupport.java:185)
        at org.neo4j.kernel.InternalAbstractGraphDatabase.shutdown(InternalAbstractGraphDatabase.java:809)
        at org.springframework.data.neo4j.support.DelegatingGraphDatabase.shutdown(DelegatingGraphDatabase.java:283)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.springframework.beans.factory.support.DisposableBeanAdapter.invokeCustomDestroyMethod(DisposableBeanAdapter.java:353)
        at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:276)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:925)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:932)
        at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:997)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:547)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:446)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:328)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4760)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5184)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:724)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:700)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:919)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1704)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        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:745)
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.index.impl.lucene.LuceneDataSource@2aad7c69' failed to stop. Please see attached cause exception.
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.stop(LifeSupport.java:532)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.shutdown(LifeSupport.java:547)
        at org.neo4j.kernel.lifecycle.LifeSupport.remove(LifeSupport.java:339)
        at org.neo4j.kernel.impl.transaction.XaDataSourceManager.unregisterDataSource(XaDataSourceManager.java:272)
        at org.neo4j.index.lucene.LuceneKernelExtension.stop(LuceneKernelExtension.java:92)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.stop(LifeSupport.java:527)
        ... 36 more
Caused by: java.lang.NoSuchMethodError: org.neo4j.index.impl.lucene.LuceneDataSource.unbindLogicalLog()V
        at org.neo4j.index.impl.lucene.LuceneDataSource.stop(LuceneDataSource.java:343)
        at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.stop(LifeSupport.java:527)
        ... 41 more


I am running neo4j on unix machine. The server runs fine on my local machine though its  just that when i deploy it in server it produces error.

Mattias Persson

unread,
Mar 14, 2016, 4:48:51 AM3/14/16
to Neo4j Development
That looks like a classpath issue. How are you running neo4j, using a downloaded server and the provided scripts or embedded and packaging the dependencies manually? Can you list the classpath in use here?

Radheshyam Verma

unread,
Mar 14, 2016, 5:39:59 AM3/14/16
to ne...@googlegroups.com
Thanks for response,

It is amazon EC2-unix instance. I run tomcat-8 in the machine with Java-spring.

Server was running fine for so many days then it suddenly started showing above error.
I did not change anything like classpath etc. Even that same war file is running without errors in my windows system, but not in remote system.

Can It be caused by mismatch in "NEO4J SDN" version in spring and "NEO4J" installer version.

* I am attaching .classpath file here with email.

* Packaging is ".war".

* I put war in "/webapps" folder of tomcat and run tomcat.

If you need any more information Please let me know.

Thanks again.

.classpath

Michael Hunger

unread,
Mar 14, 2016, 6:34:24 AM3/14/16
to ne...@googlegroups.com
What does your pom.xml look like?

--
You received this message because you are subscribed to the Google Groups "Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email to neo4j+un...@googlegroups.com.

Radheshyam Verma

unread,
Mar 14, 2016, 6:41:28 AM3/14/16
to ne...@googlegroups.com
<properties>
<springframework.version>4.2.1.RELEASE</springframework.version>
<hibernate.version>4.3.6.Final</hibernate.version>
<mysql.connector.version>5.1.31</mysql.connector.version>
<joda-time.version>2.8.2</joda-time.version>
<springsecurity.version>4.0.3.RELEASE</springsecurity.version>
</properties>

<dependencies>

<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20150729</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>

<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${springframework.version}</version>
</dependency>

<!-- SPRING SECURITY -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>4.0.3.RELEASE</version>
</dependency>

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.0.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.0.3.RELEASE</version>
</dependency>



<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>

<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
</dependency>

<!-- Joda-Time -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.2</version>
</dependency>

<!-- Mail Dependencies -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>

<!-- To map JodaTime with database type -->
<dependency>
<groupId>org.jadira.usertype</groupId>
<artifactId>usertype.core</artifactId>
<version>3.0.0.CR1</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.hibernate.common</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>4.0.4.Final</version>
</dependency>

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>

<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.1.Final</version>
</dependency>

<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>geocalc</groupId>
<artifactId>geocalc</artifactId>
<version>0.5.1</version>
</dependency>

<dependency>
<groupId>com.googlecode.genericdao</groupId>
<artifactId>dao-hibernate</artifactId>
<version>1.2.0</version>
</dependency>

<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-neo4j</artifactId>
<version>3.3.2.RELEASE</version>
</dependency>

<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-kernel</artifactId>
<version>2.1.2</version>
</dependency>

<dependency>
<groupId> javax.transaction </groupId>
<artifactId> jta </artifactId>
<version> 1.1 </version>
</dependency>

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>

<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>

<!-- HTTP CLIENT -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>

<!-- JSON JACKSON -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.7.1</version>
</dependency>

<!-- IOUTILS -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>





</dependencies>
<repositories>
<repository>
<id>in-project</id>
<name>in-project</name>
<url>file://${project.basedir}/lib</url>

</repository>
</repositories>

Radheshyam Verma

unread,
Mar 14, 2016, 6:41:55 AM3/14/16
to ne...@googlegroups.com
I am using Neo4j 2.1.8 

Michael Hunger

unread,
Mar 14, 2016, 7:25:26 AM3/14/16
to ne...@googlegroups.com
If you run mvn dependency:tree

You'll see that sdn pulls in neo 2.2 you should use the same version throughout 

Von meinem iPhone gesendet

Radheshyam Verma

unread,
Mar 14, 2016, 11:41:17 AM3/14/16
to ne...@googlegroups.com
Thanks for the response,

For me "SDN 3.3.2.RELEASE" pulls "neo4j 2.1.7" and some other dependencies.

By "neo 2.2" do you mean that I should install "Neo4j 2.2" version.

PS: I removed all the jars from my machine and rebuilt project then also it worked on my local machine, however not on the unix server.
Should I do a clean reInstall of neo4j2.2?

Thanks again.

Radheshyam Verma

unread,
Mar 21, 2016, 7:27:27 AM3/21/16
to ne...@googlegroups.com
Hi,
Thanks for your help.
I Resolved The Issue. It was not Neo4j Error, it was Some other component producing error which was causing neo4j to crash.

Now Server is starting normally.

Now I am getting Error while writing data to the database.
Code structure is as follow:

@Transactional                   //Imported From SpringFrameWork
@Service
public class NeoService
{
    public User saveObj(User user)
    {
        //Some code to read database
        //which works fine

        user=neo4jTemplate.save(node);   ////Works Fine till here
        return user;    //produces Error 'org.neo4j.graphdb.TransactionFailureException: commit threw exception'
    }
}

Can You help me find the Error

Michael Hunger

unread,
Mar 21, 2016, 7:29:19 AM3/21/16
to ne...@googlegroups.com
Best if you can share a minimal example project that reproduces the issue.

I presume that your spring config is not correct.

Cheers, Michael

Radheshyam Verma

unread,
Mar 21, 2016, 7:46:06 AM3/21/16
to ne...@googlegroups.com
The basic structure of the code is as above though.

Here is the code that is not working

@Service
@Transactional
public class Neo4jService
{
       @Autowired
       private Neo4jTemplate template;

       public User addUser(User user)
       {
              template.save(user);             //No Error Till here
              return user;                     //After This step Error occurs
       }
}


Can it be because improper neo4j version and Spring data version

Radheshyam Verma

unread,
Mar 21, 2016, 7:46:50 AM3/21/16
to ne...@googlegroups.com
PS: Thanks For the Quick response. I wasn't ready for this.

Radheshyam Verma

unread,
Mar 21, 2016, 10:45:03 AM3/21/16
to ne...@googlegroups.com
Is it possible that Neo4j is not installed properly.
Because I probably Uninstalled neo4j and still server starts properly.
But server shows TransactionFailureException when saving object.


* I already have graph.db file, And I have some entries in it.
* When I run neo4jTemplate.count() it returns count of the objects.
* but when I save an object it shows TransactionFailureException and count still remains same.
* code structure is as above

Can you check what problem this might be?
How do i check if Neo4j is installed properly?

OS Version:- Linux ip-172-30-1-76 4.1.10-17.31.amzn1.x86_64 #1 SMP Sat Oct 24 01:31:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Michael Hunger

unread,
Mar 21, 2016, 11:12:25 AM3/21/16
to ne...@googlegroups.com
What does your configuration look like? And how do you get the Neo4jService instance?

Radheshyam Verma

unread,
Mar 21, 2016, 11:18:10 AM3/21/16
to ne...@googlegroups.com
Neo4jService is a class created by me


--
You received this message because you are subscribed to a topic in the Google Groups "Neo4j" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/neo4j/2A1QiEOwofU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to neo4j+un...@googlegroups.com.

Radheshyam Verma

unread,
Mar 21, 2016, 11:18:59 AM3/21/16
to ne...@googlegroups.com
and Neo4jService is an Autowired field

Radheshyam Verma

unread,
Mar 21, 2016, 11:21:37 AM3/21/16
to ne...@googlegroups.com
I dont know why but same configuration works on my local.
But not on remote server.

I even uninstalled Neo4j on my local still it was working on local server.
I deploy same '.war' file on server and it wont save objects.

Radheshyam Verma

unread,
Mar 21, 2016, 11:24:26 AM3/21/16
to ne...@googlegroups.com
THIS IS THE STACK TRACE OF THE ERROR ON REMOTE SERVER

threw exception [Request processing failed; nested exception is org.neo4j.graphdb.TransactionFailureException: commit threw exception] with root cause
 java.lang.NoSuchMethodError: org.neo4j.kernel.impl.api.index.UniquePropertyIndexUpdater: method <init>()V not found
        at org.neo4j.kernel.api.impl.index.UniqueLuceneIndexAccessor$LuceneUniquePropertyIndexUpdater.<init>(UniqueLuceneIndexAccessor.java:88)
        at org.neo4j.kernel.api.impl.index.UniqueLuceneIndexAccessor.newUpdater(UniqueLuceneIndexAccessor.java:45)
        at org.neo4j.kernel.impl.api.index.OnlineIndexProxy.newUpdater(OnlineIndexProxy.java:59)
        at org.neo4j.kernel.impl.api.index.AbstractDelegatingIndexProxy.newUpdater(AbstractDelegatingIndexProxy.java:50)
        at org.neo4j.kernel.impl.api.index.ContractCheckingIndexProxy.newUpdater(ContractCheckingIndexProxy.java:98)
        at org.neo4j.kernel.impl.api.index.IndexUpdaterMap.getUpdater(IndexUpdaterMap.java:68)
        at org.neo4j.kernel.impl.api.index.IndexingService.storeUpdateIfIndexExists(IndexingService.java:645)
        at org.neo4j.kernel.impl.api.index.IndexingService.groupUpdatesByIndexDescriptor(IndexingService.java:595)
        at org.neo4j.kernel.impl.api.index.IndexingService.validate(IndexingService.java:377)
        at org.neo4j.kernel.impl.nioneo.xa.NeoStoreTransaction.validateIndexUpdates(NeoStoreTransaction.java:342)
        at org.neo4j.kernel.impl.nioneo.xa.NeoStoreTransaction.doPrepare(NeoStoreTransaction.java:325)
        at org.neo4j.kernel.impl.transaction.xaframework.XaTransaction.prepare(XaTransaction.java:307)
        at org.neo4j.kernel.impl.transaction.xaframework.XaResourceManager.commitWriteTx(XaResourceManager.java:588)
        at org.neo4j.kernel.impl.transaction.xaframework.XaResourceManager.commit(XaResourceManager.java:533)
        at org.neo4j.kernel.impl.transaction.xaframework.XaResourceHelpImpl.commit(XaResourceHelpImpl.java:64)
        at org.neo4j.kernel.impl.transaction.TransactionImpl.doCommit(TransactionImpl.java:548)
        at org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:448)
        at org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:385)
        at org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:123)
        at org.neo4j.kernel.impl.transaction.BaseSpringTransactionImpl.commit(BaseSpringTransactionImpl.java:66)
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1021)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:485)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
        at com.sun.proxy.$Proxy94.addFriends(Unknown Source)
        at com.accolite.carpool.controllers.UserController.createAccount(UserController.java:324)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:111)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:806)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:729)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:644)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:526)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1078)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:655)
        at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1566)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1523)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)

Michael Hunger

unread,
Mar 21, 2016, 11:44:06 AM3/21/16
to ne...@googlegroups.com
Looks like a version issue.

You have two different versions of Neo4j that are pulled in.

you should run mvn dependency:tree and check that the neo4j-version that's pulled in is consistent across

SDN 3.4.x uses: <neo4j.version>2.2.5</neo4j.version>
SDN 3.5.x uses: <neo4j.version>2.3.2</neo4j.version>

Radheshyam Verma

unread,
Mar 21, 2016, 11:57:14 AM3/21/16
to ne...@googlegroups.com
I am using SDN 3.3.2 with neo4j version 2.1.8

Michael Hunger

unread,
Mar 21, 2016, 12:08:25 PM3/21/16
to ne...@googlegroups.com
Why? Why not a more recent version?

Also did you run mvn dependency:tree ?

Radheshyam Verma

unread,
Mar 21, 2016, 12:29:22 PM3/21/16
to ne...@googlegroups.com
I dont remember How I ended up using neo4j 2.1.8

In maven dependency tree it pulls SDN 3.3.2 and neo4j kernel 2.1.2
and pulls in neo4j 2.1.7, lucene-index-2.1.7 and some other such jars

Radheshyam Verma

unread,
Mar 21, 2016, 12:35:26 PM3/21/16
to ne...@googlegroups.com
So is it not Installation Error? Or it is mismatch in the dependencies

Michael Hunger

unread,
Mar 21, 2016, 4:13:20 PM3/21/16
to ne...@googlegroups.com
All the neo4j-dependencies should be the same, i.e. 2.1.8

so you might have to add some excludes to your code or pull org.neo4j:neo4j:2.1.8 yourself in your project so it is not pulled again as transitive dependency.

Michael

Radheshyam Verma

unread,
Mar 22, 2016, 4:06:09 AM3/22/16
to ne...@googlegroups.com
Hi, You were right. Maven is packing everything.
When I generate 'war' file using maven install All the jars including neo4j2.1.8, neo4j2.1.2, neo4j2.1.2 etc. are being packed in the war file
which seems to be causing problem.

However Resolved dependency only shows Neo4j2.1.8.jar buut while packing war file it puts all the jars in the war.
I will put excludes and let you know.
Thanks for the help. You da real MVP.
Reply all
Reply to author
Forward
0 new messages