diff --git a/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java b/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java index 0ab0cd29..a6234a70 100644 --- a/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java +++ b/wagon-providers/wagon-ssh-external/src/main/java/org/apache/maven/wagon/providers/ssh/external/ScpExternalWagon.java @@ -229,7 +229,18 @@ private void executeScpCommand(Resource resource, File localFile, boolean put) } Commandline cl = createBaseCommandLine(putty, scpExecutable, privateKey); - cl.setWorkingDirectory(localFile.getParentFile().getAbsolutePath()); + File parentFile = localFile.getParentFile(); + if (null == parentFile) { + try { + File abs = localFile.getAbsoluteFile(); + parentFile = abs.getParentFile(); + } catch (SecurityException e) { + fireTransferError(resource, e, put ? TransferEvent.REQUEST_PUT : TransferEvent.REQUEST_GET); + + throw new TransferFailedException("Error accessing absolute path of " + localFile, e); + } + } + cl.setWorkingDirectory(parentFile.getAbsolutePath()); int port = repository.getPort() == WagonConstants.UNKNOWN_PORT ? ScpHelper.DEFAULT_SSH_PORT : repository.getPort();