diff --git a/src/main/assembly/linux-x86.xml b/src/main/assembly/linux-x86.xml index 94fa420..a9b8918 100644 --- a/src/main/assembly/linux-x86.xml +++ b/src/main/assembly/linux-x86.xml @@ -12,7 +12,7 @@ * 644 - unix + keep diff --git a/src/main/assembly/linux-x86_64.xml b/src/main/assembly/linux-x86_64.xml index c7ecd34..44f832d 100644 --- a/src/main/assembly/linux-x86_64.xml +++ b/src/main/assembly/linux-x86_64.xml @@ -12,7 +12,7 @@ * 644 - unix + keep diff --git a/src/main/assembly/macosx-universal.xml b/src/main/assembly/macosx-universal.xml index 3dfac05..5860236 100644 --- a/src/main/assembly/macosx-universal.xml +++ b/src/main/assembly/macosx-universal.xml @@ -12,7 +12,7 @@ * 644 - unix + keep diff --git a/src/main/assembly/windows-x86.xml b/src/main/assembly/windows-x86.xml index 4014c86..ccc9516 100644 --- a/src/main/assembly/windows-x86.xml +++ b/src/main/assembly/windows-x86.xml @@ -12,7 +12,7 @@ * 644 - unix + keep diff --git a/src/main/assembly/windows-x86_64.xml b/src/main/assembly/windows-x86_64.xml index da4f325..16d0e8e 100644 --- a/src/main/assembly/windows-x86_64.xml +++ b/src/main/assembly/windows-x86_64.xml @@ -12,7 +12,7 @@ * 644 - unix + keep diff --git a/src/main/java/de/ailis/usb4java/USB.java b/src/main/java/de/ailis/usb4java/USB.java index 18ee7d1..3f2240c 100644 --- a/src/main/java/de/ailis/usb4java/USB.java +++ b/src/main/java/de/ailis/usb4java/USB.java @@ -615,7 +615,7 @@ public final class USB final ByteBuffer buffer = ByteBuffer .allocateDirect(MAX_DESCRIPTOR_SIZE); final int len = usb_get_descriptor(handle, USB_DT_STRING, 0, buffer); - if (len < 0) return null; + if (len < 2) return null; final short[] languages = new short[(len - 2) / 2]; if (languages.length == 0) return languages; buffer.position(2); diff --git a/src/main/java/de/ailis/usb4java/USB_Bus.java b/src/main/java/de/ailis/usb4java/USB_Bus.java index 25835e7..24d8e11 100644 --- a/src/main/java/de/ailis/usb4java/USB_Bus.java +++ b/src/main/java/de/ailis/usb4java/USB_Bus.java @@ -103,9 +103,9 @@ public final class USB_Bus .filename(); final StringBuilder builder = new StringBuilder(); builder.append(String.format("Bus:%n" + - " dirname %15s%n" + + " dirname %23s%n" + " location %15d%n" + - " root_dev %15s%n", + " root_dev %22s%n", dirname(), location(), rootDev)); USB_Device device = devices(); while (device != null) diff --git a/src/main/java/de/ailis/usb4java/USB_Device.java b/src/main/java/de/ailis/usb4java/USB_Device.java index eb6a22d..e215b5c 100644 --- a/src/main/java/de/ailis/usb4java/USB_Device.java +++ b/src/main/java/de/ailis/usb4java/USB_Device.java @@ -130,8 +130,8 @@ public final class USB_Device { final StringBuilder builder = new StringBuilder(); builder.append(String.format("Device:%n" + - " filename %5s%n" + - " bus %5s%n" + + " filename %20s%n" + + " bus %25s%n" + " num_children %5d%n" + " devnum %5d%n", filename(), bus().dirname(), num_children(), devnum())); @@ -142,6 +142,7 @@ public final class USB_Device " ")); for (final USB_Config_Descriptor descriptor : config()) { + if (descriptor == null) continue; builder.append(descriptor.toString(handle).replaceAll("(?m)^", " ")); } diff --git a/src/main/java/de/ailis/usb4java/tools/Dump.java b/src/main/java/de/ailis/usb4java/tools/Dump.java index dfd5d67..de1a50e 100644 --- a/src/main/java/de/ailis/usb4java/tools/Dump.java +++ b/src/main/java/de/ailis/usb4java/tools/Dump.java @@ -24,7 +24,8 @@ public class Dump { /** * Dumps the device tree. Please note that the displayed tree can only - * display devices to which the user has write access. + * display devices to which the user has write access. On some platforms + * the tree can't be dumped at all. */ private static void dumpDeviceTree() @@ -36,10 +37,11 @@ public class Dump while (bus != null) { final USB_Device root = bus.root_dev(); - if (root == null) continue; - - System.out.format("Bus %s%n", bus.dirname()); - dumpSubDeviceTree(bus.root_dev(), " "); + if (root != null) + { + System.out.format("Bus %s%n", bus.dirname()); + dumpSubDeviceTree(bus.root_dev(), " "); + } bus = bus.next(); } }