The error handling in libvirt-java is sort of a mess. Each and every class contains a processError() method which just forwards to ErrorHandler.processError(jna.Libvirt). Furthermore, this processError() method is often called unnecessarily after every libvirt call, although its return code did not indicate an error at all. So, this patchset removes the cruft with the added benefit of avoiding calls into native code when possible. Patch #1 starts the refactoring. It adds a few helper methods to the ErrorHandler class which will be removed by patch #15. Patch #2 to #13 are mostly mechanical, just wrapping calls of any libvirt function into a call to processError(int) or processError<T>(T). Patch #14 removes the obsolete processError(Libvirt) method. Patch #15 cleans up patch #1. Claudio Bley (15): Start refactoring of error handling Remove processError from Device class Remove processError from Domain class Remove processError from DomainSnapshot class Remove processError from Interface class Remove processError method from Network class Remove processError method from NetworkFilter class Remove processError method from Secret class Remove processError method from StoragePool class Remove processError method from StorageVol class Remove processError method from Stream class Remove processError method from Connect class Call processError only when virInitialize signalled an error Remove ErrorHandler.processError(Libvirt) method fixup! Start refactoring of error handling src/main/java/org/libvirt/Connect.java | 69 +----- src/main/java/org/libvirt/Device.java | 49 ++-- src/main/java/org/libvirt/Domain.java | 328 +++++++++----------------- src/main/java/org/libvirt/DomainSnapshot.java | 23 +- src/main/java/org/libvirt/ErrorHandler.java | 44 +++- src/main/java/org/libvirt/Interface.java | 43 +--- src/main/java/org/libvirt/Library.java | 4 +- src/main/java/org/libvirt/Network.java | 61 ++--- src/main/java/org/libvirt/NetworkFilter.java | 43 +--- src/main/java/org/libvirt/Secret.java | 61 ++--- src/main/java/org/libvirt/StoragePool.java | 95 +++----- src/main/java/org/libvirt/StorageVol.java | 56 ++--- src/main/java/org/libvirt/Stream.java | 64 ++--- 13 files changed, 297 insertions(+), 643 deletions(-) -- 1.8.5.2.msysgit.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list