Neo4J JSONL import allows NULL on node but not on relationship properties (original) (raw)
ArcadeDB Version:
24.11.2, Docker
Expected behavior
I am using the test data reference here: https://github.com/ArcadeData/arcadedb/blob/59dc7789dc25512a67bc49eb8d9f3b9884af7f2b/integration/src/test/resources/neo4j-export-mini.jsonl#L5-L4
This imports successfully{"type":"node","id":"0","labels":["User"],"properties":{"born":"2015-07-04T19:32:24","name":"Adam","place":{"crs":"wgs-84","latitude":33.46789,"longitude":13.1,"height":null},"age":42,"male":true,"kids":["Sam","Anna","Grace"]}} {"type":"node","id":"1","labels":["User"],"properties":{"name":"Jim","age":42}} {"type":"node","id":"2","labels":["User"],"properties":{"age":12}} {"id":"0","type":"relationship","label":"KNOWS","properties":{"since":1993,"bffSince":"P5M1DT12H"},"start":{"id":"0","labels":["User"]},"end":{"id":"1","labels":["User"]}}
I add "bffStatus":null to the relationship property and I get an error{"type":"node","id":"0","labels":["User"],"properties":{"born":"2015-07-04T19:32:24","name":"Adam","place":{"crs":"wgs-84","latitude":33.46789,"longitude":13.1,"height":null},"age":42,"male":true,"kids":["Sam","Anna","Grace"]}} {"type":"node","id":"1","labels":["User"],"properties":{"name":"Jim","age":42}} {"type":"node","id":"2","labels":["User"],"properties":{"age":12}} {"id":"0","type":"relationship","label":"KNOWS","properties":{"since":1993,"bffSince":"P5M1DT12H","bffStatus":null},"start":{"id":"0","labels":["User"]},"end":{"id":"1","labels":["User"]}}
Stack Error Trace
Problem: Caused by: java.lang.NullPointerException: Cannot invoke "Object.equals(Object)" because "propValue" is nullERROR: com.arcadedb.exception.CommandExecutionException: Error on importing database at com.arcadedb.query.sql.parser.ImportDatabaseStatement.executeSimple(ImportDatabaseStatement.java:73) at com.arcadedb.query.sql.executor.SingleOpExecutionPlan.executeInternal(SingleOpExecutionPlan.java:92) at com.arcadedb.query.sql.parser.SimpleExecStatement.execute(SimpleExecStatement.java:52) at com.arcadedb.query.sql.parser.Statement.execute(Statement.java:65) at com.arcadedb.query.sql.SQLQueryEngine.command(SQLQueryEngine.java:116) at com.arcadedb.database.LocalDatabase.command(LocalDatabase.java:1322) at com.arcadedb.console.Console.executeSQL(Console.java:630) at com.arcadedb.console.Console.execute(Console.java:292) at com.arcadedb.console.Console.parse(Console.java:783) at com.arcadedb.console.Console.interactiveMode(Console.java:149) at com.arcadedb.console.Console.execute(Console.java:205) at com.arcadedb.console.Console.main(Console.java:166) Caused by: com.arcadedb.integration.importer.ImportException: Error on parsing source 'file:///inteltrak/neo4j-export-mini.jsonl (compressed=false size=564)' at com.arcadedb.integration.importer.Importer.load(Importer.java:68) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:569) at com.arcadedb.query.sql.parser.ImportDatabaseStatement.executeSimple(ImportDatabaseStatement.java:62) ... 11 more Caused by: java.lang.NullPointerException: Cannot invoke "Object.equals(Object)" because "propValue" is null at com.arcadedb.integration.importer.Neo4jImporter.inferPropertyType(Neo4jImporter.java:247) at com.arcadedb.integration.importer.Neo4jImporter.lambda$syncSchema$0(Neo4jImporter.java:226) at com.arcadedb.integration.importer.Neo4jImporter.executeCallback(Neo4jImporter.java:543) at com.arcadedb.integration.importer.Neo4jImporter.readFile(Neo4jImporter.java:488) at com.arcadedb.integration.importer.Neo4jImporter.syncSchema(Neo4jImporter.java:197) at com.arcadedb.integration.importer.Neo4jImporter.run(Neo4jImporter.java:137) at com.arcadedb.integration.importer.format.Neo4jImporterFormat.load(Neo4jImporterFormat.java:47) at com.arcadedb.integration.importer.Importer.loadFromSource(Importer.java:107) at com.arcadedb.integration.importer.Importer.load(Importer.java:53) ... 16 more