static new ThreadLocal softFail_lastMsg; // value is the unformatted or formatted msg static void softFail(S msg, O... args) { softFail_lastMsg.set(args.length == 0 ? msg : new O[] {msg, args}); }