cmailleux    2005/11/03 18:23:33 CET

  Modified files:
    core/src/java/org/jahia/hibernate/manager 
                                              JahiaLinkManager.java 
  Log:
  Avoid creating or updating link with negative ID
  
  Revision  Changes    Path
  1.8       +10 -2     
jahia/core/src/java/org/jahia/hibernate/manager/JahiaLinkManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/manager/JahiaLinkManager.java.diff?r1=1.7&r2=1.8&f=h
  
  
  
  Index: JahiaLinkManager.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/manager/JahiaLinkManager.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- JahiaLinkManager.java     20 Sep 2005 17:03:08 -0000      1.7
  +++ JahiaLinkManager.java     3 Nov 2005 17:23:32 -0000       1.8
  @@ -47,6 +47,7 @@
   // -------------------------- OTHER METHODS --------------------------
   
       public void createObjectLink(ObjectLink link) {
  +        if(link.getLeftObjectKey().getIdInType()>0 && 
link.getRightObjectKey().getIdInType()>0) {
           JahiaLink jahiaLink = fillJahiaLink(link);
           dao.save(jahiaLink);
           link.setID(jahiaLink.getId().intValue());
  @@ -55,6 +56,7 @@
               cache.flushGroup(CACHE_KEY_LEFTPREFIX + 
link.getLeftObjectKey().toString());
               cache.flushGroup(CACHE_KEY_RIGHTPREFIX + 
link.getRightObjectKey().toString());
           }
  +        }
       }
   
       public List findByLeftAndRightObjectKeys(ObjectKey leftObjectKey, 
ObjectKey rightObjectKey) {
  @@ -254,9 +256,11 @@
       }
   
       public void updateObjectLink(ObjectLink objectLink) {
  +        int fieldId = objectLink.getID();
  +        if(objectLink.getLeftObjectKey().getIdInType()>0 && 
objectLink.getRightObjectKey().getIdInType()>0) {
           final JahiaLink jahiaLink = fillJahiaLink(objectLink);
  -        if (objectLink.getID() > 0) {
  -            jahiaLink.setId(new Integer(objectLink.getID()));
  +        if (fieldId > 0) {
  +            jahiaLink.setId(new Integer(fieldId));
           }
           dao.save(jahiaLink);
           objectLink.setID(jahiaLink.getId().intValue());
  @@ -265,6 +269,10 @@
               cache.flushGroup(CACHE_KEY_LEFTPREFIX + jahiaLink.getLeftOid());
               cache.flushGroup(CACHE_KEY_RIGHTPREFIX + 
jahiaLink.getRightOid());
           }
  +        } else {
  +            if(fieldId >0)
  +            removeObjectLink(fieldId);
  +        }
       }
   
       private JahiaLink fillJahiaLink(ObjectLink link) {
  

Reply via email to