Author: tdraier
Date: Wed Sep 26 14:30:42 2007
New Revision: 18668
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18668&repname=
=3Djahia
Log:
do not paste when clipboard is empty (JAHIA-2350)
Modified:
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/beans/Contain=
erListBean.java
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/importexpo=
rt/ClipboardEngine.java
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/beans/C=
ontainerListBean.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/data/beans/ContainerListBean.java&rev=3D186=
68&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/beans/Contain=
erListBean.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/beans/Contain=
erListBean.java Wed Sep 26 14:30:42 2007
@@ -478,7 +478,7 @@
}
=
final ContentObject clipSource =3D ContentObject.getCo=
ntentObjectInstance(ContentObjectKey.getInstance(skey));
- if (clipSource !=3D null && ((ContentContainer) clipSo=
urce).getJahiaContainer(processingContext, processingContext.getEntryLoadRe=
quest()) !=3D null)
+ if (clipSource !=3D null && ((ContentContainer) clipSo=
urce).getJahiaContainer(processingContext, processingContext.getEntryLoadRe=
quest()) !=3D null && !clipSource.isMarkedForDelete())
{
final JahiaContainerDefinition sDef =3D ((ContentC=
ontainer) clipSource).getJahiaContainer(processingContext, processingContex=
t.getEntryLoadRequest()).getDefinition();
final JahiaContainerDefinition dDef =3D jahiaConta=
inerList.getDefinition();
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/impo=
rtexport/ClipboardEngine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/engines/importexport/ClipboardEngine.java&r=
ev=3D18668&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/importexpo=
rt/ClipboardEngine.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/engines/importexpo=
rt/ClipboardEngine.java Wed Sep 26 14:30:42 2007
@@ -33,6 +33,7 @@
import org.jahia.services.scheduler.BackgroundJob;
import org.jahia.services.scheduler.SchedulerService;
import org.jahia.services.sites.JahiaSitesService;
+import org.jahia.services.containers.ContentContainer;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
=
@@ -132,48 +133,52 @@
sessionState.removeAttribute("clipboard_key");
final ContentObject source =3D ContentObject.getContentObj=
ectInstance(ContentObjectKey.getInstance(skey));
=
- final String dkey =3D processingContext.getParameter("key"=
);
- final ContentObject dest =3D ContentObject.getContentObjec=
tInstance(ContentObjectKey.getInstance(dkey));
-
- Class jobClass =3D CopyJob.class;
-
- JobDetail jobDetail =3D BackgroundJob.createJahiaJob("Copy=
"+skey+ " to "+dkey, jobClass, processingContext);
-
- JobDataMap jobDataMap;
- jobDataMap =3D jobDetail.getJobDataMap();
- jobDataMap.put(CopyJob.SOURCE, source.getObjectKey().toStr=
ing());
- jobDataMap.put(CopyJob.DEST, dest.getObjectKey().toString(=
));
- jobDataMap.put(CopyJob.SITESOURCE, siteservice.getSite(sou=
rce.getSiteID()).getSiteKey());
- jobDataMap.put(BackgroundJob.JOB_DESTINATION_SITE, siteser=
vice.getSite(dest.getSiteID()).getSiteKey());
- jobDataMap.put(BackgroundJob.JOB_TYPE, CopyJob.COPYPASTE_T=
YPE);
-
OutputStream os =3D ((ParamBean)processingContext).getResp=
onse().getOutputStream();
Writer w =3D new OutputStreamWriter(os);
=
- synchronized(lockRegistry) {
- boolean acq =3D true;
- // transfer locks to job
- Set locks =3D new HashSet();
- LockKey lock =3D LockKey.composeLockKey(LockKey.EXPORT=
_ACTION + "_" + source.getObjectKey().getType(), source.getID(), source.get=
ID());
- lockRegistry.release(lock, processingContext.getUser()=
, processingContext.getUser().getUserKey());
- lock =3D LockKey.composeLockKey(LockKey.EXPORT_ACTION =
+ "_" + source.getObjectKey().getType(), source.getID(), source.getID());
- locks.add(lock);
- acq &=3D lockRegistry.acquire(lock, processingContext.=
getUser(), jobDetail.getName(), BackgroundJob.getMaxExecutionTime(), false);
- lock =3D LockKey.composeLockKey(LockKey.ADD_ACTION + "=
_" + dest.getObjectKey().getType(), dest.getID(), dest.getID());
- locks.add(lock);
- acq &=3D lockRegistry.acquire(lock, processingContext.=
getUser(), jobDetail.getName(), BackgroundJob.getMaxExecutionTime(), false);
- if (!acq) {
- logger.info("Cannot acquire lock, do not paste");
- w.write("locked");
- w.close();
- return null;
+ if (source !=3D null && ((ContentContainer) source).getJah=
iaContainer(processingContext, processingContext.getEntryLoadRequest()) !=
=3D null && !source.isMarkedForDelete()) {
+ final String dkey =3D processingContext.getParameter("=
key");
+ final ContentObject dest =3D ContentObject.getContentO=
bjectInstance(ContentObjectKey.getInstance(dkey));
+
+ Class jobClass =3D CopyJob.class;
+
+ JobDetail jobDetail =3D BackgroundJob.createJahiaJob("=
Copy "+skey+ " to "+dkey, jobClass, processingContext);
+
+ JobDataMap jobDataMap;
+ jobDataMap =3D jobDetail.getJobDataMap();
+ jobDataMap.put(CopyJob.SOURCE, source.getObjectKey().t=
oString());
+ jobDataMap.put(CopyJob.DEST, dest.getObjectKey().toStr=
ing());
+ jobDataMap.put(CopyJob.SITESOURCE, siteservice.getSite=
(source.getSiteID()).getSiteKey());
+ jobDataMap.put(BackgroundJob.JOB_DESTINATION_SITE, sit=
eservice.getSite(dest.getSiteID()).getSiteKey());
+ jobDataMap.put(BackgroundJob.JOB_TYPE, CopyJob.COPYPAS=
TE_TYPE);
+
+ synchronized(lockRegistry) {
+ boolean acq =3D true;
+ // transfer locks to job
+ Set locks =3D new HashSet();
+ LockKey lock =3D LockKey.composeLockKey(LockKey.EX=
PORT_ACTION + "_" + source.getObjectKey().getType(), source.getID(), source=
.getID());
+ lockRegistry.release(lock, processingContext.getUs=
er(), processingContext.getUser().getUserKey());
+ lock =3D LockKey.composeLockKey(LockKey.EXPORT_ACT=
ION + "_" + source.getObjectKey().getType(), source.getID(), source.getID()=
);
+ locks.add(lock);
+ acq &=3D lockRegistry.acquire(lock, processingCont=
ext.getUser(), jobDetail.getName(), BackgroundJob.getMaxExecutionTime(), fa=
lse);
+ lock =3D LockKey.composeLockKey(LockKey.ADD_ACTION=
+ "_" + dest.getObjectKey().getType(), dest.getID(), dest.getID());
+ locks.add(lock);
+ acq &=3D lockRegistry.acquire(lock, processingCont=
ext.getUser(), jobDetail.getName(), BackgroundJob.getMaxExecutionTime(), fa=
lse);
+ if (!acq) {
+ logger.info("Cannot acquire lock, do not paste=
");
+ w.write("locked");
+ w.close();
+ return null;
+ }
+ jobDataMap.put(BackgroundJob.JOB_LOCKS, locks);
}
- jobDataMap.put(BackgroundJob.JOB_LOCKS, locks);
- }
=
- SchedulerService schedulerServ =3D ServicesRegistry.getIns=
tance().getSchedulerService();
- schedulerServ.scheduleJobNow(jobDetail);
- w.write("pasted");
+ SchedulerService schedulerServ =3D ServicesRegistry.ge=
tInstance().getSchedulerService();
+ schedulerServ.scheduleJobNow(jobDetail);
+ w.write("pasted");
+ } else {
+ w.write("cancelled");
+ }
w.close();
} catch (Exception e) {
logger.error("Cannot write response",e);
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list