Сначала вам нужно спросить себя, что вас здесь действительно беспокоит. Конечно - если кто-то действительно хочет, они могут подорвать ваш стек трассировщик. Но почему тебя это действительно волнует? И если вам действительно все равно, почему вы вообще готовы запускать их код?
Если вам действительно нужно это сделать, вам нужно создать изолированную программную среду безопасности, в которой будет выполняться код, который может подорвать трассировщик стека. В частности, вам нужно создать менеджер безопасности, для которого
securityManager.checkPermission(ReflectPermission("suppressAccessChecks"))
выдаст SecurityException
для ненадежного кода. Затем вы создаете новый загрузчик классов с помощью менеджера безопасности.
К сожалению, похоже, нет способа ограничить setAccessible(...)
для определенных target полей, методов или классов.