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();
}
}