Check if error occurs when waiting for completion.

The implementation of the method does'nt take into account the case when an error occurs. The consequence is that after a while I get several threads blocked in this state:
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:503)
        at org.globus.ftp.vanilla.TransferState.waitForEnd(TransferState.java:85)
        - locked <0x0000000720abd5f8> (a org.globus.ftp.vanilla.TransferState)
        at org.globus.io.streams.FTPOutputStream.close(FTPOutputStream.java:86)

This patch should fix it.