harden copyMessages against failure by copying to/from existing but not listed (listMailboxes) folders

This commit is contained in:
Klaus Leithoff 2014-02-18 15:22:25 +00:00
parent d500e4cc91
commit f04d607e2b
2 changed files with 5 additions and 4 deletions

View File

@ -3062,8 +3062,8 @@ class mail_bo
{ {
$sourceFolder = $this->icServer->getMailbox($sourceFolder); $sourceFolder = $this->icServer->getMailbox($sourceFolder);
$target = emailadmin_account::read($_targetProfileID)->imapServer(); $target = emailadmin_account::read($_targetProfileID)->imapServer();
$_foldername = $target->getMailbox($_foldername); $foldername = $target->getMailbox($_foldername);
//error_log(__METHOD__.__LINE__.' Sourceserver:'.$this->icServer->ImapServerId.' TargetServer:'.$_targetProfileID.' TargetFolderObject:'.array2string($_foldername)); //error_log(__METHOD__.__LINE__.' Sourceserver:'.$this->icServer->ImapServerId.' TargetServer:'.$_targetProfileID.' TargetFolderObject:'.array2string($foldername));
$uidsToFetch = new Horde_Imap_Client_Ids(); $uidsToFetch = new Horde_Imap_Client_Ids();
$uidsToFetch->add($_messageUID); $uidsToFetch->add($_messageUID);
@ -3085,7 +3085,7 @@ class mail_bo
$dataNflags[] = array('data'=>array(array('t'=>'text','v'=>"$body")), 'flags'=>$flags); $dataNflags[] = array('data'=>array(array('t'=>'text','v'=>"$body")), 'flags'=>$flags);
if ($c==5) if ($c==5)
{ {
$ret = $target->append($_foldername,$dataNflags); $ret = $target->append($foldername,$dataNflags);
$retUid->add($ret); $retUid->add($ret);
unset($dataNflags); unset($dataNflags);
time_nanosleep(0,500000);// sleep 500 miliseconds time_nanosleep(0,500000);// sleep 500 miliseconds
@ -3094,7 +3094,7 @@ class mail_bo
} }
if (isset($dataNflags)) if (isset($dataNflags))
{ {
$ret = $target->append($_foldername,$dataNflags); $ret = $target->append($foldername,$dataNflags);
$retUid->add($ret); $retUid->add($ret);
unset($dataNflags); unset($dataNflags);
} }

View File

@ -4245,6 +4245,7 @@ blockquote[type=cite] {
} }
catch (Exception $e) catch (Exception $e)
{ {
//error_log(__METHOD__.__LINE__.function_backtrace());
$response->call('egw_message',$e->getMessage(),"error"); $response->call('egw_message',$e->getMessage(),"error");
} }
} }