Skip to content

Commit 32b9483

Browse files
authored
Merge pull request #16931 from iterate-ch/bugfix/MD-22327-error
Include cause in error message.
2 parents 9cba9fe + ce89029 commit 32b9483

File tree

6 files changed

+15
-8
lines changed

6 files changed

+15
-8
lines changed

core/src/main/java/ch/cyberduck/core/exception/LocalAccessDeniedException.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ public LocalAccessDeniedException(final String detail, final Throwable cause) {
3333
super(detail, cause);
3434
}
3535

36+
public LocalAccessDeniedException(final String message, final String detail, final Throwable cause) {
37+
super(message, detail, cause);
38+
}
39+
3640
@Override
3741
public String getHelp() {
3842
return LocaleFactory.localizedString("Please verify disk permissions", "Support");

core/src/main/java/ch/cyberduck/core/local/DefaultLocalDirectoryFeature.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public void mkdir(final Local file) throws AccessDeniedException {
3535
}
3636
catch(IOException e) {
3737
throw new LocalAccessDeniedException(MessageFormat.format(LocaleFactory.localizedString(
38-
"Cannot create folder {0}", "Error"), file.getName()), e);
38+
"Cannot create folder {0}", "Error"), file.getName()), e.getMessage(), e);
3939
}
4040
}
4141
}

core/src/main/java/ch/cyberduck/core/local/DefaultLocalTouchFeature.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,12 @@ public void touch(final Local file) throws AccessDeniedException {
5151
catch(FileAlreadyExistsException e) {
5252
log.warn("File {} already exists", file);
5353
throw new LocalAccessDeniedException(MessageFormat.format(
54-
LocaleFactory.localizedString("Cannot create {0}", "Error"), file.getAbsolute()), e);
54+
LocaleFactory.localizedString("Cannot create {0}", "Error"), file.getAbsolute()), e.getMessage(), e);
5555
}
5656
}
5757
catch(IOException e) {
5858
throw new LocalAccessDeniedException(MessageFormat.format(
59-
LocaleFactory.localizedString("Cannot create {0}", "Error"), file.getAbsolute()), e);
59+
LocaleFactory.localizedString("Cannot create {0}", "Error"), file.getAbsolute()), e.getMessage(), e);
6060
}
6161
log.debug("Created file {}", file);
6262
}

core/src/main/java/ch/cyberduck/core/local/DefaultLocalTrashFeature.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@
1818
*/
1919

2020
import ch.cyberduck.core.Local;
21+
import ch.cyberduck.core.LocaleFactory;
2122
import ch.cyberduck.core.exception.LocalAccessDeniedException;
2223
import ch.cyberduck.core.local.features.Trash;
2324

2425
import java.io.IOException;
2526
import java.nio.file.Files;
2627
import java.nio.file.Paths;
28+
import java.text.MessageFormat;
2729

2830
public class DefaultLocalTrashFeature implements Trash {
2931

@@ -33,7 +35,8 @@ public void trash(Local file) throws LocalAccessDeniedException {
3335
Files.delete(Paths.get(file.getAbsolute()));
3436
}
3537
catch(IOException e) {
36-
throw new LocalAccessDeniedException(String.format("Failed to move %s to Trash", file.getName()), e);
38+
throw new LocalAccessDeniedException(MessageFormat.format(LocaleFactory.localizedString(
39+
"Cannot delete {0}", "Error"), file.getName()), e.getMessage(), e);
3740
}
3841
}
3942
}

core/src/main/java/ch/cyberduck/core/local/DefaultSymlinkFeature.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.io.IOException;
2424
import java.nio.file.Files;
2525
import java.nio.file.Paths;
26+
import java.text.MessageFormat;
2627

2728
public class DefaultSymlinkFeature implements Symlink {
2829

@@ -32,8 +33,8 @@ public void symlink(final Local link, final String target) throws AccessDeniedEx
3233
Files.createSymbolicLink(Paths.get(link.getAbsolute()), Paths.get(target));
3334
}
3435
catch(IOException | UnsupportedOperationException e) {
35-
throw new AccessDeniedException(String.format("%s %s",
36-
LocaleFactory.localizedString("Cannot create file", "Error"), link.getAbsolute()), e);
36+
throw new AccessDeniedException(MessageFormat.format(LocaleFactory.localizedString(
37+
"Cannot create {0}", "Error"), link.getName()), e.getMessage(), e);
3738
}
3839
}
3940
}

core/src/test/java/ch/cyberduck/core/local/DefaultLocalTouchFeatureTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ public void testFailure() {
3737
}
3838
catch(AccessDeniedException e) {
3939
final String s = l.getName();
40-
assertEquals("Cannot create " + PreferencesFactory.get().getProperty("local.delimiter") + s + ". Please verify disk permissions.", e.getDetail());
41-
assertEquals("Access denied", e.getMessage());
40+
assertEquals(String.format("Cannot create %s%s", PreferencesFactory.get().getProperty("local.delimiter"), s), e.getMessage());
4241
}
4342
}
4443

0 commit comments

Comments
 (0)