It appears that the exception handling is different depending on whether the
method is invoked as a passed parameter to a velocimacro or just in a template.
The first #doTextLink macro will throw an exception, but it will be logged and
ignored. However, the second invocation will throw the exception properly.
I have a patch that should fix this behavior. The exception just needs to be
rethrown up the call stack. A small signature change to a couple of methods.