1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-23 17:05:26 +02:00

fix the following two problems:

[202668][Supertransfer] Subfolders not copied when doing first copy from dstore to Local
 [202670] [Supertransfer] After doing a copy to a directory that contains folders some folders name's display "deleted"
This commit is contained in:
Xuan Chen 2007-09-12 20:35:59 +00:00
parent a1ad05c362
commit 63a9b0186f
2 changed files with 13 additions and 8 deletions

View file

@ -24,6 +24,8 @@
* David McKnight (IBM) - [191472] should not use super transfer with SSH/FTP Folder Copy and Paste
* Xuan Chen (IBM) - [191367] with supertransfer on, Drag & Drop Folder from DStore to DStore doesn't work
* Xuan Chen (IBM) - [201790] [dnd] Copy and Paste across connections to a Drive doesn't work
* Xuan Chen (IBM) - [202668] [Supertransfer] Subfolders not copied when doing first copy from dstore to Local
* Xuan Chen (IBM) - [202670] [Supertransfer] After doing a copy to a directory that contains folders some folders name's display "deleted"
********************************************************************************/
package org.eclipse.rse.files.ui.resources;
@ -1175,6 +1177,9 @@ public class UniversalFileTransferUtility
}
else
{
//sometimes, IContainer#members does not return the right members under
//this folder. We need to call refreshLocal() first to overcome this problem
directory.refreshLocal(IResource.DEPTH_ONE, monitor);
IResource[] children = directory.members();
SystemWorkspaceResourceSet childSet = new SystemWorkspaceResourceSet(children);
SystemRemoteResourceSet childResults = copyWorkspaceResourcesToRemote(childSet, newTargetFolder, monitor, checkForCollisions);
@ -1487,13 +1492,10 @@ public class UniversalFileTransferUtility
targetFS.copy(compressedFolder, newTargetParent, newTargetFolder.getName(), monitor);
// delete the temp remote archive
//Since this archive file has never been cache before, a default filter DStore Element
//will be created before we send down "delete" commad to dstore server. Since "delete"
//command is not a registered command for a filter
//element, the delete command query will not be sent to dstore server.
//To overcome this problem, we need to do query on it first to cache
//its information so that it could be deleted properly.
targetFS.resolveFilterString(newPath + RemoteFileFilterString.SWITCH_NOSUBDIRS, monitor);
// now, DStoreFileService#getFile() (which is invoked by getRemoteFileObject() call)
// has been updated to also put the query object into the dstore file map,
// we don't need to do the query on the remoteArchive object before the
// delete.
targetFS.delete(remoteArchive, monitor);
monitor.done();

View file

@ -18,6 +18,7 @@
* David McKnight (IBM) - [190803] Canceling a long-running dstore job prints "InterruptedException" to stdout
* David McKnight (IBM) - [196035] Wrapper SystemMessageExceptions for createFile and createFolder with RemoteFileSecurityException
* Kevin Doyle (IBM) - [191548] Deleting Read-Only directory removes it from view and displays no error
* Xuan Chen (IBM) - [202670] [Supertransfer] After doing a copy to a directory that contains folders some folders name's display "deleted"
********************************************************************************/
package org.eclipse.rse.internal.services.dstore.files;
@ -775,7 +776,9 @@ public class DStoreFileService extends AbstractDStoreService implements IFileSer
de = getElementFor(buf.toString());
}
dsQueryCommand(de, IUniversalDataStoreConstants.C_QUERY_GET_REMOTE_OBJECT, monitor);
return new DStoreHostFile(de);
//getFile call should also need to convert this DataElement into a HostFile using
//convertToHostFile() call. This way, this DataElement will be put into _fileMap.
return convertToHostFile(de);
}
/**