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

Reply via email to