Changeset 81:3be57c18c693 in AnnotationManagerN4J for src


Ignore:
Timestamp:
Jul 23, 2014, 1:09:54 PM (10 years ago)
Author:
casties
Branch:
default
Message:

more fixing bugs with transactions thanks to neo4j 2 :-(

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/de/mpiwg/itgroup/annotations/neo4j/AnnotationStore.java

    r76 r81  
    314314    public List<Group> getGroupsForPersonNode(Node person) {
    315315        ArrayList<Group> groups = new ArrayList<Group>();
    316         Iterable<Relationship> rels = person.getRelationships(RelationTypes.MEMBER_OF);
    317         for (Relationship rel : rels) {
    318             Node groupNode = rel.getEndNode();
    319             Actor group = createActorFromNode(groupNode);
    320             // make sure we're getting a group
    321             if (!(group instanceof Group)) {
    322                 logger.severe("target of MEMBER_OF is not GROUP! rel=" + rel);
    323                 continue;
    324             }
    325             groups.add((Group) group);
     316        try (Transaction tx = graphDb.beginTx()) {
     317                Iterable<Relationship> rels = person.getRelationships(RelationTypes.MEMBER_OF);
     318                for (Relationship rel : rels) {
     319                        Node groupNode = rel.getEndNode();
     320                        Actor group = createActorFromNode(groupNode);
     321                        // make sure we're getting a group
     322                        if (!(group instanceof Group)) {
     323                                logger.severe("target of MEMBER_OF is not GROUP! rel=" + rel);
     324                                continue;
     325                        }
     326                        groups.add((Group) group);
     327                }
     328                tx.success();
    326329        }
    327330        return groups;
     
    364367        ArrayList<Person> members = new ArrayList<Person>();
    365368        Node gn = getActorNode(group);
    366         Iterable<Relationship> rels = gn.getRelationships(RelationTypes.MEMBER_OF);
    367         for (Relationship rel : rels) {
    368             Node memberNode = rel.getStartNode();
    369             Actor member = createActorFromNode(memberNode);
    370             // make sure we're getting a group
    371             if (!(member instanceof Person)) {
    372                 logger.severe("source of MEMBER_OF is not PERSON! rel=" + rel);
    373                 continue;
    374             }
    375             members.add((Person) member);
     369        try (Transaction tx = graphDb.beginTx()) {
     370                Iterable<Relationship> rels = gn.getRelationships(RelationTypes.MEMBER_OF);
     371                for (Relationship rel : rels) {
     372                        Node memberNode = rel.getStartNode();
     373                        Actor member = createActorFromNode(memberNode);
     374                        // make sure we're getting a group
     375                        if (!(member instanceof Person)) {
     376                                logger.severe("source of MEMBER_OF is not PERSON! rel=" + rel);
     377                                continue;
     378                        }
     379                        members.add((Person) member);
     380                }
     381                tx.success();
    376382        }
    377383        return members;
     
    404410        Node gn = getActorNode(group);
    405411        Node pn = getActorNode(member);
    406         Iterable<Relationship> rels = gn.getRelationships(RelationTypes.MEMBER_OF);
    407         for (Relationship rel : rels) {
    408             Node mn = rel.getStartNode();
    409             if (mn.equals(pn)) {
    410                 try (Transaction tx = graphDb.beginTx()) {
     412        try (Transaction tx = graphDb.beginTx()) {
     413                Iterable<Relationship> rels = gn.getRelationships(RelationTypes.MEMBER_OF);
     414                for (Relationship rel : rels) {
     415                        Node mn = rel.getStartNode();
     416                        if (mn.equals(pn)) {
    411417                    rel.delete();
    412                     tx.success();
    413418                }
    414419                // there should be only one
    415420                break;
    416421            }
     422            tx.success();
    417423        }
    418424    }
     
    474480            idx = getNodeIndex(NodeTypes.PERSON);
    475481        }
    476         Node actorNode = idx.get("uri", uri).getSingle();
    477         if (actorNode != null) {
    478             // delete relations
    479             try (Transaction tx = graphDb.beginTx()) {
    480                 for (Relationship rel : actorNode.getRelationships()) {
    481                     rel.delete();
    482                 }
    483                 if (!actorNode.hasRelationship()) {
     482        try (Transaction tx = graphDb.beginTx()) {
     483                Node actorNode = idx.get("uri", uri).getSingle();
     484                if (actorNode != null) {
     485                        // delete relations
     486                for (Relationship rel : actorNode.getRelationships()) {
     487                        rel.delete();
     488                }
     489                if (!actorNode.hasRelationship()) {
    484490                    // this shouldn't happen
    485491                    deleteNode(actorNode);
     
    487493                    logger.severe("deleteActor: unable to delete: Node still has relations.");
    488494                }
    489                 tx.success();
    490             }
     495            }
     496            tx.success();
    491497        }
    492498    }
Note: See TracChangeset for help on using the changeset viewer.