In the method retrieveTransponderResult, you call wait() on the daoThread object, but you're not in a synchronized method of Thread, nor in a block synchronized on that Thread object. To call wait() or notify(), you have to hold the monitor of the object you're calling them on. This is explained in the Javadoc for those methods.
I can't resist pointing out that
return new Boolean("false").booleanValue();
is exactly equivalent in effect to
except, of course, that it's vastly more expensive computationally.
This is not an advanced Java question, but a beginner's Thread question; I'm moving this to the Threads forum.