/** * Instantiates the given Filter class and performs any required resource injection into the new * Filter instance before returning it. */ @Override @SuppressWarnings("unchecked") // doPrivileged() returns the correct type public <T extends Filter> T createFilter(Class<T> clazz) throws ServletException { if (SecurityUtil.isPackageProtectionEnabled()) { return (T) doPrivileged("createFilter", new Object[] {clazz}); } else { return context.createFilter(clazz); } }