Here’s a little tip for you: don’t use ProtectionDomain’s toString() while in a Policy. There’s security checks that go in toString() there, so you’ll get stuck in a recursion if you’re not careful. And, as one of my rules of thumb goes, “be careful to avoid doing things where you have to be careful.”

That might get you into some recursive problems too, just hit that Ctrl-C ’till it stops.