### Eclipse Workspace Patch 1.0 #P org.eclipse.rse.files.ui Index: src/org/eclipse/rse/files/ui/resources/UniversalFileTransferUtility.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/files/ui/resources/UniversalFileTransferUtility.java,v retrieving revision 1.55 diff -u -r1.55 UniversalFileTransferUtility.java --- src/org/eclipse/rse/files/ui/resources/UniversalFileTransferUtility.java 6 Sep 2007 19:21:25 -0000 1.55 +++ src/org/eclipse/rse/files/ui/resources/UniversalFileTransferUtility.java 12 Sep 2007 20:28:27 -0000 @@ -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 @@ } 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 @@ 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(); #P org.eclipse.rse.services.dstore Index: src/org/eclipse/rse/internal/services/dstore/files/DStoreFileService.java =================================================================== RCS file: /cvsroot/dsdp/org.eclipse.tm.rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreFileService.java,v retrieving revision 1.18 diff -u -r1.18 DStoreFileService.java --- src/org/eclipse/rse/internal/services/dstore/files/DStoreFileService.java 12 Sep 2007 20:20:31 -0000 1.18 +++ src/org/eclipse/rse/internal/services/dstore/files/DStoreFileService.java 12 Sep 2007 20:28:27 -0000 @@ -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 @@ 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); } /**