From e00d3e51827d604bfbd16c11c4708c3ba3d016d9 Mon Sep 17 00:00:00 2001 From: Martin Oberhuber < martin.oberhuber@windriver.com> Date: Wed, 7 May 2008 06:40:17 +0000 Subject: [PATCH] [199854] Fix regressions in unit tests --- .../local/files/LocalFileService.java | 25 ++++++++-------- .../archiveutils/SystemZipHandler.java | 29 +++++++++++++++---- 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/files/LocalFileService.java b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/files/LocalFileService.java index 79537e56abe..1eb53531b43 100644 --- a/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/files/LocalFileService.java +++ b/rse/plugins/org.eclipse.rse.services.local/src/org/eclipse/rse/internal/services/local/files/LocalFileService.java @@ -875,23 +875,20 @@ public class LocalFileService extends AbstractFileService implements ILocalServi try { fileToCreate.createNewFile(); - if (ArchiveHandlerManager.getInstance().isArchive(fileToCreate)) - { - try { - ArchiveHandlerManager.getInstance().createEmptyArchive(fileToCreate); - } catch (SystemMessageException e) { - SystemMessage msg = new SimpleSystemMessage(Activator.PLUGIN_ID, - ILocalMessageIds.FILEMSG_ARCHIVE_CORRUPTED, - IStatus.ERROR, - LocalServiceResources.FILEMSG_ARCHIVE_CORRUPTED, e); - throw new SystemMessageException(msg); - } - } } - catch (Exception e) + catch (IOException e) { throw new RemoteFileSecurityException(e); } + if (ArchiveHandlerManager.getInstance().isArchive(fileToCreate)) { + try { + ArchiveHandlerManager.getInstance().createEmptyArchive(fileToCreate); + } catch (SystemMessageException e) { + SystemMessage msg = new SimpleSystemMessage(Activator.PLUGIN_ID, ILocalMessageIds.FILEMSG_ARCHIVE_CORRUPTED, IStatus.ERROR, + LocalServiceResources.FILEMSG_ARCHIVE_CORRUPTED, e); + throw new SystemMessageException(msg); + } + } } } else @@ -1195,6 +1192,7 @@ public class LocalFileService extends AbstractFileService implements ILocalServi // for 192705, we need to throw an exception when rename fails String msgTxt = NLS.bind(LocalServiceResources.FILEMSG_RENAME_FILE_FAILED, child.fullName); //String msgDetails = LocalServiceResources.FILEMSG_RENAME_FILE_FAILED_DETAILS; + e.printStackTrace(); throw new SystemMessageException(new SimpleSystemMessage(Activator.PLUGIN_ID, ILocalMessageIds.FILEMSG_RENAME_FILE_FAILED, IStatus.ERROR, @@ -1413,6 +1411,7 @@ public class LocalFileService extends AbstractFileService implements ILocalServi IStatus.ERROR, msgTxt, e)); } + return true; } if (null != monitor) diff --git a/rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/archiveutils/SystemZipHandler.java b/rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/archiveutils/SystemZipHandler.java index 1a9fca89305..d51de5e420a 100644 --- a/rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/archiveutils/SystemZipHandler.java +++ b/rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/archiveutils/SystemZipHandler.java @@ -124,7 +124,19 @@ public class SystemZipHandler implements ISystemArchiveHandler { _file = file; _vfsLastModified = _file.lastModified(); - if (openZipFile()) + + //ignore error opening non-existing zipfile in constructor, + //because we might want to be creating the zipfile + boolean zipFileOpen = false; + if (_file.exists()) { + try { + openZipFile(); + zipFileOpen = true; + } catch (IOException e) { + // ignore + } + } + if (zipFileOpen) { buildTree(); closeZipFile(); @@ -1678,8 +1690,12 @@ public class SystemZipHandler implements ISystemArchiveHandler String oldName = _file.getAbsolutePath(); _zipfile.close(); File oldFile = new File(oldName + "old"); //$NON-NLS-1$ - System.out.println(_file.renameTo(oldFile)); - System.out.println(outputTempFile.renameTo(_file)); + if (!_file.renameTo(oldFile)) { + throw new IOException("Failed to rename " + oldFile); //$NON-NLS-1$ + } + if (!outputTempFile.renameTo(_file)) { + throw new IOException("Failed to rename " + _file); //$NON-NLS-1$ + } _vfsLastModified = _file.lastModified(); _zipfile = new ZipFile(_file); oldFile.delete(); @@ -2114,10 +2130,11 @@ public class SystemZipHandler implements ISystemArchiveHandler if (i == -1) { fullRename(fullVirtualName, newName, archiveOperationMonitor); + } else { + String fullNewName = fullVirtualName.substring(0, i+1) + newName; + fullRename(fullVirtualName, fullNewName, archiveOperationMonitor); + setArchiveOperationMonitorStatusDone(archiveOperationMonitor); } - String fullNewName = fullVirtualName.substring(0, i+1) + newName; - fullRename(fullVirtualName, fullNewName, archiveOperationMonitor); - setArchiveOperationMonitorStatusDone(archiveOperationMonitor); }