Duh, I figured out what's going on. I'm using a custom Formatter class, which overrides format(). It's the job of format() to handle this, and ours doesn't!