[libvirt] Re: Release of libvirt-java-0.2.0

Daniel Veillard veillard at redhat.com
Tue Jul 22 08:26:01 UTC 2008


On Mon, Jul 21, 2008 at 09:12:51PM +0200, Tóth István wrote:
> I've finally  hunted down the problem.

  haha :-)

> It stems from the way we (I) handle errors, and is not openAuth 
> specific, it just triggered here.
> 
> When the virConnectOpen* function encounters an error, it calls the 
> error handler we set in the initializer, which in turn handles the 
> error, and sets a java exception, but DOES NOT RETURN to java land.

  okay

> Next, we try to get the error, which seems to have been cleared after 
> calling the handler. (The deleted code was plain broken anyway, because 
> the error struct is allocated by the virCopyLastError, not the caller), 
> Then we call our error handler function with the uninitialized junk 
> error object, which results in interesting errors.

  oh, right copying over uninitialized data

> The solution is quite simple, we simply need to return if we are 
> unsuccessful (get NULL vc), and the previously set exception is 
> magically thrown.

  Okay i see the patch, and applying it makes things work as expected:

wei:~/libvirt-java/src -> java -classpath .:/usr/share/java/libvirt-0.2.0.jar test
exception caught:org.libvirt.LibvirtException: Connection refused
level:VIR_ERR_ERROR
code:VIR_ERR_SYSTEM_ERROR
domain:VIR_FROM_REMOTE
hasConn:false
hasDom:false
hasNet:false
message:Connection refused
str1:%s
str2:Connection refused
str3:null
int1:0
int2:0

virNodeInfo.model:i686
 ....

Now I have to understand why test+tcp URL are not accepted but it's not a 
java binding issue, oh and find the double free you reported yesterday !

> Generally, we should be much more careful with handling errors and 
> exceptions, but 1.0 is a long way. :-)

  I'm commiting the fix, I just re-added the cast to jlong as we got a warning
otherwise, some of those jlong/pointer/int casts are fishy but as you say
1.0 is a long way :-)

  in the meantime, enjoy your vacations !

   thanks again,

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard      | virtualization library  http://libvirt.org/
veillard at redhat.com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/




More information about the libvir-list mailing list