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());
}