tdraier     2005/12/21 17:41:08 CET

  Modified files:
    core/src/java/org/jahia/hibernate/manager 
                                              JahiaContainerListManager.java 
  Log:
  fixed npe in no workflow
  
  Revision  Changes    Path
  1.17      +39 -24    
jahia/core/src/java/org/jahia/hibernate/manager/JahiaContainerListManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/manager/JahiaContainerListManager.java.diff?r1=1.16&r2=1.17&f=h
  
  
  
  Index: JahiaContainerListManager.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/manager/JahiaContainerListManager.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- JahiaContainerListManager.java    20 Dec 2005 11:26:04 -0000      1.16
  +++ JahiaContainerListManager.java    21 Dec 2005 16:41:08 -0000      1.17
  @@ -526,41 +526,56 @@
           } catch (ObjectRetrievalFailureException e) {
           }
           if (container != null) {
  -            // We have something to validate
  -            if (saveVersion.isVersioned()) {
  -                dao.backupContainer(new Integer(containerId),new 
Long(saveVersion.getVersionID()));
  -            }
  -            // Is it a delete
  +            JahiaContainerList publishedContainer = 
dao.loadPublishedContainerList(new Integer(containerId));
  +
               int versionID = saveVersion.getVersionID();
  -            if (container.getComp_id().getVersionId().intValue() == -1) {
  +            boolean isDeleted = 
(container.getComp_id().getVersionId().intValue() == -1);
  +
  +            if ((publishedContainer != null) && 
((int)publishedContainer.getComp_id().getVersionId().longValue() == 
saveVersion.getVersionID()) && !isDeleted) {
  +                try {
  +                    JahiaContainerList jahiaContainer = (JahiaContainerList) 
container.clone();
  +                    jahiaContainer.getComp_id().setVersionId(new 
Long(versionID));
  +                    jahiaContainer.getComp_id().setWorkflowState(new 
Integer(1));
  +                    dao.save(jahiaContainer);
  +                } catch (CloneNotSupportedException e) {
  +                    log.error("Could not clone 
org.jahia.hibernate.model.JahiaContainer");
  +                }
  +            } else {
  +                // We have something to validate
                   if (saveVersion.isVersioned()) {
  +                    dao.backupContainer(new Integer(containerId),new 
Long(saveVersion.getVersionID()));
  +                }
  +
  +                // Is it a delete
  +                if (isDeleted) {
  +                    if (saveVersion.isVersioned()) {
  +                        try {
  +                            JahiaContainerList jahiaContainer = 
(JahiaContainerList) container.clone();
  +                            jahiaContainer.getComp_id().setVersionId(new 
Long(versionID));
  +                            jahiaContainer.getComp_id().setWorkflowState(new 
Integer(-1));
  +                            dao.save(jahiaContainer);
  +                        } catch (CloneNotSupportedException e) {
  +                            log.error("Could not clone 
org.jahia.hibernate.model.JahiaContainer");
  +                        }
  +                    }
  +                } else {
  +                    if (publishedContainer != null) {
  +                        dao.deleteContainerList(publishedContainer);
  +                    }
                       try {
                           JahiaContainerList jahiaContainer = 
(JahiaContainerList) container.clone();
                           jahiaContainer.getComp_id().setVersionId(new 
Long(versionID));
  -                        jahiaContainer.getComp_id().setWorkflowState(new 
Integer(-1));
  +                        jahiaContainer.getComp_id().setWorkflowState(new 
Integer(1));
                           dao.save(jahiaContainer);
                       } catch (CloneNotSupportedException e) {
                           log.error("Could not clone 
org.jahia.hibernate.model.JahiaContainer");
                       }
                   }
  -                dao.deleteContainerLists(dao.loadStagingContainerLists(new 
Integer(containerId)));
  -            } else {
  -                JahiaContainerList publishedContainer = 
dao.loadPublishedContainerList(new Integer(containerId));
  -                if (publishedContainer != null) {
  -                    dao.deleteContainerList(publishedContainer);
  -                }
  -                try {
  -                    JahiaContainerList jahiaContainer = (JahiaContainerList) 
container.clone();
  -                    jahiaContainer.getComp_id().setVersionId(new 
Long(versionID));
  -                    jahiaContainer.getComp_id().setWorkflowState(new 
Integer(1));
  -                    dao.save(jahiaContainer);
  -                } catch (CloneNotSupportedException e) {
  -                    log.error("Could not clone 
org.jahia.hibernate.model.JahiaContainer");
  -                }
  -                List stagedContainers = dao.loadStagedContainerLists(new 
Integer(containerId));
  -                if (stagedContainers != null && stagedContainers.size() > 0)
  -                    dao.deleteContainerLists(stagedContainers);
               }
  +            List stagedContainers = dao.loadStagedContainerLists(new 
Integer(containerId));
  +            if (stagedContainers != null && stagedContainers.size() > 0)
  +                dao.deleteContainerLists(stagedContainers);
  +
               flushCache(containerId, 
container.getContainerDefinition().getJahiaSite().getId().intValue(),
                      container.getContainerDefinition().getName());
           }
  

Reply via email to