Wrap any fallible libvirt function in a call to
ErrorHandler.processError(..) and remove calls to the deprecated
ErrorHandler.processError(Libvirt) method.
Also correct wrong javadoc comments stating that methods would return
a value in case an error occurs.
Signed-off-by: Claudio Bley <cbley(a)av-test.de>
---
src/main/java/org/libvirt/Connect.java | 69 +++++---------------------------
1 file changed, 11 insertions(+), 58 deletions(-)
diff --git a/src/main/java/org/libvirt/Connect.java
b/src/main/java/org/libvirt/Connect.java
index b3e29be..fedc60e 100644
--- a/src/main/java/org/libvirt/Connect.java
+++ b/src/main/java/org/libvirt/Connect.java
@@ -15,7 +15,10 @@ import org.libvirt.jna.StorageVolPointer;
import org.libvirt.jna.StreamPointer;
import org.libvirt.jna.virConnectAuth;
import org.libvirt.jna.virNodeInfo;
+
import static org.libvirt.Library.libvirt;
+import static org.libvirt.ErrorHandler.processError;
+import static org.libvirt.ErrorHandler.processErrorIfZero;
import com.sun.jna.Memory;
import com.sun.jna.NativeLong;
@@ -79,7 +82,6 @@ public class Connect {
*/
public static void setErrorCallback(Libvirt.VirErrorCallback callback) throws
LibvirtException {
Libvirt.INSTANCE.virSetErrorFunc(null, callback);
- ErrorHandler.processError(Libvirt.INSTANCE);
}
/**
@@ -119,7 +121,6 @@ public class Connect {
VCP = libvirt.virConnectOpen(uri);
// Check for an error
processError(VCP);
- ErrorHandler.processError(Libvirt.INSTANCE);
}
/**
@@ -140,7 +141,6 @@ public class Connect {
}
// Check for an error
processError(VCP);
- ErrorHandler.processError(Libvirt.INSTANCE);
}
/**
@@ -173,7 +173,6 @@ public class Connect {
VCP = libvirt.virConnectOpenAuth(uri, vAuth, flags);
// Check for an error
processError(VCP);
- ErrorHandler.processError(Libvirt.INSTANCE);
}
/**
@@ -220,8 +219,7 @@ public class Connect {
* @throws LibvirtException
*/
public CPUCompareResult compareCPU(String xmlDesc) throws LibvirtException {
- int rawResult = libvirt.virConnectCompareCPU(VCP, xmlDesc, 0);
- processError();
+ int rawResult = processError(libvirt.virConnectCompareCPU(VCP, xmlDesc, 0));
return CPUCompareResult.get(rawResult);
}
@@ -308,13 +306,11 @@ public class Connect {
* Documentation</a>
* @param callbackID
* the callback to deregister
- * @return 0 on success, -1 on failure
+ * @return <em>ignore</em> (always 0)
* @throws LibvirtException
*/
public int domainEventDeregisterAny(int callbackID) throws LibvirtException {
- int returnValue = libvirt.virConnectDomainEventDeregisterAny(VCP, callbackID);
- processError();
- return returnValue;
+ return processError(libvirt.virConnectDomainEventDeregisterAny(VCP,
callbackID));
}
/**
@@ -496,10 +492,7 @@ public class Connect {
* Returns the free memory for the connection
*/
public long getFreeMemory() throws LibvirtException {
- long returnValue = 0;
- returnValue = libvirt.virNodeGetFreeMemory(VCP);
- if (returnValue == 0) processError();
- return returnValue;
+ return processErrorIfZero(libvirt.virNodeGetFreeMemory(VCP));
}
/**
@@ -639,13 +632,11 @@ public class Connect {
* @see <a
*
href="http://www.libvirt.org/html/libvirt-libvirt.html#virConnectIsE...
* Documentation</a>
- * @return 1 if encrypted, 0 if not encrypted, -1 on error
+ * @return 1 if encrypted, 0 if not encrypted
* @throws LibvirtException
*/
public int isEncrypted() throws LibvirtException {
- int returnValue = libvirt.virConnectIsEncrypted(VCP);
- processError();
- return returnValue;
+ return processError(libvirt.virConnectIsEncrypted(VCP));
}
/**
@@ -654,13 +645,11 @@ public class Connect {
* @see <a
*
href="http://www.libvirt.org/html/libvirt-libvirt.html#virConnectIsS...
* Documentation</a>
- * @return 1 if secure, 0 if not secure, -1 on error
+ * @return 1 if secure, 0 if not secure
* @throws LibvirtException
*/
public int isSecure() throws LibvirtException {
- int returnValue = libvirt.virConnectIsSecure(VCP);
- processError();
- return returnValue;
+ return processError(libvirt.virConnectIsSecure(VCP));
}
/**
@@ -1141,41 +1130,6 @@ public class Connect {
}
/**
- * call the error handling logic. Should be called after every libvirt call
- *
- * @throws LibvirtException
- */
- protected void processError() throws LibvirtException {
- ErrorHandler.processError(libvirt);
- }
-
- /**
- * Calls {@link #processError()} when the given libvirt return code
- * indicates an error.
- *
- * @param ret libvirt return code, indicating error if negative.
- * @return {@code ret}
- * @throws LibvirtException
- */
- protected final int processError(int ret) throws LibvirtException {
- if (ret < 0) processError();
- return ret;
- }
-
- /**
- * Calls {@link #processError()} if {@code arg} is null.
- *
- * @param arg An arbitrary object returned by libvirt.
- * @return {@code arg}
- * @throws LibvirtException
- */
- protected final <T> T processError(T arg) throws LibvirtException {
- if (arg == null) processError();
- return arg;
- }
-
-
- /**
* Restores a domain saved to disk by Domain.save().
*
* @param from
@@ -1246,7 +1200,6 @@ public class Connect {
public void setConnectionErrorCallback(Libvirt.VirErrorCallback callback) throws
LibvirtException {
libvirt.virConnSetErrorFunc(VCP, null, callback);
- processError();
}
/**
--
1.7.9.5