Skip to content

Publish a new version which is compatible with Neo4j 4.3 #382

Open
@ggrossetie

Description

@ggrossetie

Currently, the latest version 0.28.0-neo4j-4.2.3 published is not compatible with the latest version of Neo4j 4.3:

Here's the exception thrown when Neo4j server is starting:

java.lang.RuntimeException: Error starting Neo4j database server at /data/databases
	at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.startDatabaseServer(DatabaseManagementServiceFactory.java:214) ~[neo4j-4.3.1.jar:4.3.1]
	at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.build(DatabaseManagementServiceFactory.java:170) ~[neo4j-4.3.1.jar:4.3.1]
	at org.neo4j.server.CommunityBootstrapper.createNeo(CommunityBootstrapper.java:36) ~[neo4j-4.3.1.jar:4.3.1]
	at org.neo4j.server.NeoBootstrapper.start(NeoBootstrapper.java:134) [neo4j-4.3.1.jar:4.3.1]
	at org.neo4j.server.NeoBootstrapper.start(NeoBootstrapper.java:90) [neo4j-4.3.1.jar:4.3.1]
	at org.neo4j.server.CommunityEntryPoint.main(CommunityEntryPoint.java:34) [neo4j-4.3.1.jar:4.3.1]
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'apoc.ApocConfig@79f5a6ed' failed to initialize. Please see the attached cause exception "'org.apache.commons.text.lookup.StringLookup org.apache.commons.text.lookup.StringLookupFactory.dnsStringLookup()'".
	at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:424) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:65) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.extension.AbstractExtensions.init(AbstractExtensions.java:76) ~[neo4j-kernel-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:403) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:65) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:101) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.startDatabaseServer(DatabaseManagementServiceFactory.java:205) ~[neo4j-4.3.1.jar:4.3.1]
	... 5 more
Caused by: java.lang.NoSuchMethodError: 'org.apache.commons.text.lookup.StringLookup org.apache.commons.text.lookup.StringLookupFactory.dnsStringLookup()'
	at org.apache.commons.configuration2.interpol.DefaultLookups.<clinit>(DefaultLookups.java:97) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.interpol.ConfigurationInterpolator.<clinit>(ConfigurationInterpolator.java:111) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.convert.DefaultConversionHandler.<clinit>(DefaultConversionHandler.java:72) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.beanutils.DefaultBeanFactory.<init>(DefaultBeanFactory.java:84) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.beanutils.DefaultBeanFactory.<init>(DefaultBeanFactory.java:71) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.beanutils.DefaultBeanFactory.<clinit>(DefaultBeanFactory.java:56) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.beanutils.BeanHelper.<init>(BeanHelper.java:118) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.beanutils.BeanHelper.<init>(BeanHelper.java:106) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.beanutils.BeanHelper.<clinit>(BeanHelper.java:80) ~[apoc.jar:4.3.0.0]
	at java.lang.Class.forName0(Native Method) ~[?:?]
	at java.lang.Class.forName(Class.java:315) ~[?:?]
	at com.sun.proxy.$Proxy46.<clinit>(Unknown Source) ~[?:?]
	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[?:?]
	at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:1022) ~[?:?]
	at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:1008) ~[?:?]
	at org.apache.commons.configuration2.builder.fluent.Parameters.createParametersProxy(Parameters.java:306) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.builder.fluent.Parameters.fileBased(Parameters.java:185) ~[apoc.jar:4.3.0.0]
	at apoc.ApocConfig.loadConfiguration(ApocConfig.java:175) ~[apoc.jar:4.3.0.0]
	at apoc.ApocConfig.init(ApocConfig.java:136) ~[apoc.jar:4.3.0.0]
	at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:403) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:65) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.extension.AbstractExtensions.init(AbstractExtensions.java:76) ~[neo4j-kernel-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:403) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:65) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:101) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.startDatabaseServer(DatabaseManagementServiceFactory.java:205) ~[neo4j-4.3.1.jar:4.3.1]
	... 5 more

You can reproduce this issue using Docker:

Prepare the plugins directory

$ mkdir plugins
$ cd plugins
$ wget -q https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/4.3.0.0/apoc-nlp-dependencies-4.3.0.0.jar
$ wget -q https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/download/4.3.0.0/apoc-4.3.0.0-all.jar -O apoc.jar
$ wget -q https://github.com/neo4j-contrib/spatial/releases/download/0.28.0-neo4j-4.2.3/neo4j-spatial-0.28.0-neo4j-4.2.3-server-plugin.jar -O spatial.jar
$ cd -

Note: You should add both apoc.jar and apoc-nlp-dependencies-4.3.0.0.jar in order to trigger this exception. You should also use the same naming in order to load jar in the same order.

Run neo4j 4.3 using a the local plugins directory

$ docker run --rm -v "$(pwd)/plugins:/plugins" --env NEO4J_ACCEPT_LICENSE_AGREEMENT='yes' neo4j:4.3
2021-06-25 09:49:44.575+0000 INFO  Starting...
2021-06-25 09:49:46.474+0000 INFO  ======== Neo4j 4.3.1 ========
2021-06-25 09:49:46.572+0000 ERROR Failed to start Neo4j on dbms.connector.http.listen_address, a socket address. If missing port or hostname it is acquired from dbms.default_listen_address.
java.lang.RuntimeException: Error starting Neo4j database server at /data/databases
	at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.startDatabaseServer(DatabaseManagementServiceFactory.java:214) ~[neo4j-4.3.1.jar:4.3.1]
	at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.build(DatabaseManagementServiceFactory.java:170) ~[neo4j-4.3.1.jar:4.3.1]
	at org.neo4j.server.CommunityBootstrapper.createNeo(CommunityBootstrapper.java:36) ~[neo4j-4.3.1.jar:4.3.1]
	at org.neo4j.server.NeoBootstrapper.start(NeoBootstrapper.java:134) [neo4j-4.3.1.jar:4.3.1]
	at org.neo4j.server.NeoBootstrapper.start(NeoBootstrapper.java:90) [neo4j-4.3.1.jar:4.3.1]
	at org.neo4j.server.CommunityEntryPoint.main(CommunityEntryPoint.java:34) [neo4j-4.3.1.jar:4.3.1]
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'apoc.ApocConfig@661e279d' failed to initialize. Please see the attached cause exception "'org.apache.commons.text.lookup.StringLookup org.apache.commons.text.lookup.StringLookupFactory.dnsStringLookup()'".
	at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:424) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:65) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.extension.AbstractExtensions.init(AbstractExtensions.java:76) ~[neo4j-kernel-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:403) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:65) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:101) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.startDatabaseServer(DatabaseManagementServiceFactory.java:205) ~[neo4j-4.3.1.jar:4.3.1]
	... 5 more
Caused by: java.lang.NoSuchMethodError: 'org.apache.commons.text.lookup.StringLookup org.apache.commons.text.lookup.StringLookupFactory.dnsStringLookup()'
	at org.apache.commons.configuration2.interpol.DefaultLookups.<clinit>(DefaultLookups.java:97) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.interpol.ConfigurationInterpolator.<clinit>(ConfigurationInterpolator.java:111) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.convert.DefaultConversionHandler.<clinit>(DefaultConversionHandler.java:72) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.beanutils.DefaultBeanFactory.<init>(DefaultBeanFactory.java:84) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.beanutils.DefaultBeanFactory.<init>(DefaultBeanFactory.java:71) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.beanutils.DefaultBeanFactory.<clinit>(DefaultBeanFactory.java:56) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.beanutils.BeanHelper.<init>(BeanHelper.java:118) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.beanutils.BeanHelper.<init>(BeanHelper.java:106) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.beanutils.BeanHelper.<clinit>(BeanHelper.java:80) ~[apoc.jar:4.3.0.0]
	at java.lang.Class.forName0(Native Method) ~[?:?]
	at java.lang.Class.forName(Class.java:315) ~[?:?]
	at com.sun.proxy.$Proxy43.<clinit>(Unknown Source) ~[?:?]
	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:490) ~[?:?]
	at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:1022) ~[?:?]
	at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:1008) ~[?:?]
	at org.apache.commons.configuration2.builder.fluent.Parameters.createParametersProxy(Parameters.java:306) ~[apoc.jar:4.3.0.0]
	at org.apache.commons.configuration2.builder.fluent.Parameters.fileBased(Parameters.java:185) ~[apoc.jar:4.3.0.0]
	at apoc.ApocConfig.loadConfiguration(ApocConfig.java:175) ~[apoc.jar:4.3.0.0]
	at apoc.ApocConfig.init(ApocConfig.java:136) ~[apoc.jar:4.3.0.0]
	at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:403) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:65) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.extension.AbstractExtensions.init(AbstractExtensions.java:76) ~[neo4j-kernel-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:403) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:65) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:101) ~[neo4j-common-4.3.1.jar:4.3.1]
	at org.neo4j.graphdb.facade.DatabaseManagementServiceFactory.startDatabaseServer(DatabaseManagementServiceFactory.java:205) ~[neo4j-4.3.1.jar:4.3.1]
	... 5 more
2021-06-25 09:49:46.574+0000 INFO  Neo4j Server shutdown initiated by request
2021-06-25 09:49:46.574+0000 INFO  Stopped.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions