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) {