* not be assigned to <code>clazz</code>
*/
private <T extends RpcCommand> T readCommand(Class<T> clazz)
throws ClassNotFoundException {
decodeCommand();
RpcCommand value = commands.pop();
assert clazz.isInstance(value) : "Cannot assign a "
+ value.getClass().getName() + " to " + clazz.getName();
return clazz.cast(value);
}