Thanks for looking into it. I found another logical error in the code segment and had to rework it anyway - I am not sure I will be able to reproduce the situation to test the fix.
On Thu, Jul 30, 2009 at 9:06 PM, Johan Svensson <jo...@neotechnology.com>wrote: > Hi Rob, > > Your problem was caused by a bug in the batch inserter. I just > committed a fix for it so a new b9-SNAPSHOT should be available soon. > > -Johan > > On Tue, Jul 28, 2009 at 11:25 AM, Rob Challen<rjchal...@gmail.com> wrote: > > I'm using the batchinserter to build a graph. I'm not sure if what I am > > seeing here is something I am doing wrong or something in the > batchinserter. > > For one task I need to check whether a relationship already exists to a > > target node and perform a test on the target node, before deciding > whether > > to build a new blank node or not. I'm getting the following exception: > > > > Exception in thread "main" java.lang.IllegalArgumentException: id=697209 > > at > > > org.neo4j.impl.batchinsert.BatchInserterImpl.getRelationshipRecord(BatchInserterImpl.java:508) > > at > > > org.neo4j.impl.batchinsert.BatchInserterImpl.getRelationships(BatchInserterImpl.java:267) > > at > > > uk.co.pointofcare.echobase.snosled.neoimpl.NeoSctNodeBuilder.build(NeoSctNodeBuilder.java:330) > > at > > > uk.co.pointofcare.echobase.snosled.neoimpl.NeoLoadRunner.loadFile(NeoLoadRunner.java:129) > > at > > > uk.co.pointofcare.echobase.snosled.neoimpl.NeoLoadRunner.sequenceLoading(NeoLoadRunner.java:107) > > at > > > uk.co.pointofcare.echobase.snosled.neoimpl.NeoLoadRunner.batchload(NeoLoadRunner.java:63) > > at > > > uk.co.pointofcare.echobase.snosled.neoimpl.NeoLoadRunner.main(NeoLoadRunner.java:41) > > > > From the following code segment: > > > > long subject = <<current working node id - looked up against an index>> > > if (roleGroup == 0) { > > neoId = batchInsert.createRelationship(subject, object, rt, > > neoMap.getMap()); > > } else { > > // insert blank node to represent role groups. First of all find out > whether > > blank node has already been > > // created. > > long roleGroupNode = 0L; > > > > // look for current relationship with HAS_ROLE_GROUP relationship type > > for (SimpleRelationship sr: batchInsert.getRelationships(subject)) { > > //<<stack trace here > > if (sr.getType().equals(SctRelationshipType.HAS_ROLE_GROUP)) { > > > > //look for end node with specific RELATIONSHP_GROUP property equal to > > roleGroup > > int tmp = (Integer) > > > batchInsert.getNodeProperties(sr.getEndNode()).get(SctPropertyName.RELATIONSHIP_GROUP.key()); > > if (tmp == roleGroup) { > > roleGroupNode = sr.getEndNode(); //reference to current blank node > > } > > } > > } > > //If no existing blank node found then create a new one > > if (roleGroupNode == 0) { > > HashMap<String,Object> tmp = new HashMap<String,Object>(); > > roleGroupNode = batchInsert.createNode(tmp); //reference to new blank > node > > tmp.put(SctPropertyName.RELATIONSHIP_GROUP.key(), roleGroup); > > batchInsert.createRelationship(roleGroupNode, object, > > SctRelationshipType.HAS_ROLE_GROUP, tmp); > > } > > //create the relationship > > neoId = batchInsert.createRelationship(subject, roleGroupNode, rt, > > neoMap.getMap()); > > } > > > > Am I misusing the batchinserter here? or is there another issue? > > > > Rob. > _______________________________________________ > Neo mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > _______________________________________________ Neo mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user