Mercurial > hg > AnnotationManagerN4J
changeset 81:3be57c18c693
more fixing bugs with transactions thanks to neo4j 2 :-(
author | casties |
---|---|
date | Wed, 23 Jul 2014 15:09:54 +0200 |
parents | 4724fc7b4733 |
children | 0554e29069ec |
files | src/main/java/de/mpiwg/itgroup/annotations/neo4j/AnnotationStore.java |
diffstat | 1 files changed, 41 insertions(+), 35 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/itgroup/annotations/neo4j/AnnotationStore.java Mon Jul 21 17:28:15 2014 +0200 +++ b/src/main/java/de/mpiwg/itgroup/annotations/neo4j/AnnotationStore.java Wed Jul 23 15:09:54 2014 +0200 @@ -313,16 +313,19 @@ */ public List<Group> getGroupsForPersonNode(Node person) { ArrayList<Group> groups = new ArrayList<Group>(); - Iterable<Relationship> rels = person.getRelationships(RelationTypes.MEMBER_OF); - for (Relationship rel : rels) { - Node groupNode = rel.getEndNode(); - Actor group = createActorFromNode(groupNode); - // make sure we're getting a group - if (!(group instanceof Group)) { - logger.severe("target of MEMBER_OF is not GROUP! rel=" + rel); - continue; - } - groups.add((Group) group); + try (Transaction tx = graphDb.beginTx()) { + Iterable<Relationship> rels = person.getRelationships(RelationTypes.MEMBER_OF); + for (Relationship rel : rels) { + Node groupNode = rel.getEndNode(); + Actor group = createActorFromNode(groupNode); + // make sure we're getting a group + if (!(group instanceof Group)) { + logger.severe("target of MEMBER_OF is not GROUP! rel=" + rel); + continue; + } + groups.add((Group) group); + } + tx.success(); } return groups; } @@ -363,16 +366,19 @@ public List<Person> getMembersOfGroup(Group group) { ArrayList<Person> members = new ArrayList<Person>(); Node gn = getActorNode(group); - Iterable<Relationship> rels = gn.getRelationships(RelationTypes.MEMBER_OF); - for (Relationship rel : rels) { - Node memberNode = rel.getStartNode(); - Actor member = createActorFromNode(memberNode); - // make sure we're getting a group - if (!(member instanceof Person)) { - logger.severe("source of MEMBER_OF is not PERSON! rel=" + rel); - continue; - } - members.add((Person) member); + try (Transaction tx = graphDb.beginTx()) { + Iterable<Relationship> rels = gn.getRelationships(RelationTypes.MEMBER_OF); + for (Relationship rel : rels) { + Node memberNode = rel.getStartNode(); + Actor member = createActorFromNode(memberNode); + // make sure we're getting a group + if (!(member instanceof Person)) { + logger.severe("source of MEMBER_OF is not PERSON! rel=" + rel); + continue; + } + members.add((Person) member); + } + tx.success(); } return members; } @@ -403,17 +409,17 @@ public void deleteGroupMember(Group group, Person member) { Node gn = getActorNode(group); Node pn = getActorNode(member); - Iterable<Relationship> rels = gn.getRelationships(RelationTypes.MEMBER_OF); - for (Relationship rel : rels) { - Node mn = rel.getStartNode(); - if (mn.equals(pn)) { - try (Transaction tx = graphDb.beginTx()) { + try (Transaction tx = graphDb.beginTx()) { + Iterable<Relationship> rels = gn.getRelationships(RelationTypes.MEMBER_OF); + for (Relationship rel : rels) { + Node mn = rel.getStartNode(); + if (mn.equals(pn)) { rel.delete(); - tx.success(); } // there should be only one break; } + tx.success(); } } @@ -473,21 +479,21 @@ } else { idx = getNodeIndex(NodeTypes.PERSON); } - Node actorNode = idx.get("uri", uri).getSingle(); - if (actorNode != null) { - // delete relations - try (Transaction tx = graphDb.beginTx()) { - for (Relationship rel : actorNode.getRelationships()) { - rel.delete(); - } - if (!actorNode.hasRelationship()) { + try (Transaction tx = graphDb.beginTx()) { + Node actorNode = idx.get("uri", uri).getSingle(); + if (actorNode != null) { + // delete relations + for (Relationship rel : actorNode.getRelationships()) { + rel.delete(); + } + if (!actorNode.hasRelationship()) { // this shouldn't happen deleteNode(actorNode); } else { logger.severe("deleteActor: unable to delete: Node still has relations."); } - tx.success(); } + tx.success(); } }