From 144841a29692a11aac12eba01bc04ee3807d1477 Mon Sep 17 00:00:00 2001 From: Lisias Date: Mon, 8 Jan 2018 09:05:30 -0200 Subject: [PATCH] Somewhat better DiskCorruptException handling. Avoiding redundancy. --- .../applecommander/storage/DiskCorruptException.java | 12 ++++++++---- .../storage/os/dos33/DosFormatDisk.java | 2 +- .../storage/os/prodos/ProdosFormatDisk.java | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/webcodepro/applecommander/storage/DiskCorruptException.java b/src/main/java/com/webcodepro/applecommander/storage/DiskCorruptException.java index 6e04bc0..29f7ac4 100644 --- a/src/main/java/com/webcodepro/applecommander/storage/DiskCorruptException.java +++ b/src/main/java/com/webcodepro/applecommander/storage/DiskCorruptException.java @@ -31,13 +31,17 @@ public class DiskCorruptException extends DiskException { private static final long serialVersionUID = 0xFFFFFFFF80000000L; public enum Kind { - RECURSIVE_DIRECTORY_STRUCTURE + RECURSIVE_DIRECTORY_STRUCTURE { + public String toString() { + return "Recursive Directory structure detected."; // FIXME NLS + }; + } } final public Kind kind; final public Object offender; - private DiskCorruptException(String description) { + private DiskCorruptException(final String description) { super(description); this.kind = null; this.offender = null; @@ -46,8 +50,8 @@ public class DiskCorruptException extends DiskException { /** * Constructor for DiskFullException. */ - public DiskCorruptException(String description, Kind kind, Object offender) { - super(description); + public DiskCorruptException(final Kind kind, final Object offender) { + super(kind.toString()); this.kind = kind; this.offender = offender; } diff --git a/src/main/java/com/webcodepro/applecommander/storage/os/dos33/DosFormatDisk.java b/src/main/java/com/webcodepro/applecommander/storage/os/dos33/DosFormatDisk.java index 7f2184d..320b04c 100644 --- a/src/main/java/com/webcodepro/applecommander/storage/os/dos33/DosFormatDisk.java +++ b/src/main/java/com/webcodepro/applecommander/storage/os/dos33/DosFormatDisk.java @@ -152,7 +152,7 @@ public class DosFormatDisk extends FormattedDisk { // Prevents a recursive catalog crawling. final DosSectorAddress address = new DosSectorAddress(track, sector); - if ( visits.contains(address)) throw new DiskCorruptException("Recursive Directory structure detected.", DiskCorruptException.Kind.RECURSIVE_DIRECTORY_STRUCTURE, address); + if ( visits.contains(address)) throw new DiskCorruptException(DiskCorruptException.Kind.RECURSIVE_DIRECTORY_STRUCTURE, address); else visits.add(address); byte[] catalogSector = readSector(track, sector); diff --git a/src/main/java/com/webcodepro/applecommander/storage/os/prodos/ProdosFormatDisk.java b/src/main/java/com/webcodepro/applecommander/storage/os/prodos/ProdosFormatDisk.java index ab30105..0f25555 100644 --- a/src/main/java/com/webcodepro/applecommander/storage/os/prodos/ProdosFormatDisk.java +++ b/src/main/java/com/webcodepro/applecommander/storage/os/prodos/ProdosFormatDisk.java @@ -278,7 +278,7 @@ public class ProdosFormatDisk extends FormattedDisk { final Set visits = new HashSet<>(); while (blockNumber != 0) { // Prevents a recursive catalog crawling. - if ( visits.contains(blockNumber)) throw new DiskCorruptException("Recursive Directory structure detected.", DiskCorruptException.Kind.RECURSIVE_DIRECTORY_STRUCTURE, new ProdosBlockAddress(blockNumber)); + if ( visits.contains(blockNumber)) throw new DiskCorruptException(DiskCorruptException.Kind.RECURSIVE_DIRECTORY_STRUCTURE, new ProdosBlockAddress(blockNumber)); else visits.add(blockNumber); byte[] block = readBlock(blockNumber);