From dbe8a5abc9467349c7a55dd6870a8eaf7a1f098a Mon Sep 17 00:00:00 2001 From: David McKnight Date: Wed, 16 Jul 2008 17:28:19 +0000 Subject: [PATCH] [240710] [dstore] DStoreFileService.getFile() fails with NPE for valid root files --- .../services/dstore/files/DStoreFileService.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreFileService.java b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreFileService.java index d271769eda0..e92b4585580 100644 --- a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreFileService.java +++ b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/files/DStoreFileService.java @@ -47,6 +47,7 @@ * Radoslav Gerganov (ProSyst) - [230919] IFileService.delete() should not return a boolean * Martin Oberhuber (Wind River) - [235463][ftp][dstore] Incorrect case sensitivity reported on windows-remote * David McKnight (IBM) - [236039][dstore][efs] DStoreInputStream can report EOF too early - clean up how it waits for the local temp file to be created + * David McKnight (IBM) - [240710] [dstore] DStoreFileService.getFile() fails with NPE for valid root files *******************************************************************************/ package org.eclipse.rse.internal.services.dstore.files; @@ -1120,8 +1121,15 @@ public class DStoreFileService extends AbstractDStoreService implements IFileSer public IHostFile getFile(String remoteParent, String name, IProgressMonitor monitor) { - DataElement de = getSubjectFor(remoteParent, name); - + DataElement de = null; + if (remoteParent != null && remoteParent.length() > 0){ + // this is a root + de = getSubjectFor(remoteParent, name); + } + else { + de = getElementFor(name); + } + // with 207095, it's possible to get here unconnected such that there is no element if (de != null) { dsQueryCommand(de, null, IUniversalDataStoreConstants.C_QUERY_GET_REMOTE_OBJECT, monitor);