In the interest of transparency (but almost against my better judgement), I am also sharing this full disclosure. There is going to be a slight delay on releasing ESAPI 2.2.3.0. The reasons are explained below. If someone is willing to step up and help, please drop me an email.
First, there was a need for the AntiSamy team to create a new 1.6.1 patch release. Kudos to Dave Wichers for jumping on this so quickly and working with us. That should be published to Maven Central tonight.
But secondly, as of AntiSamy 1.6.0 and later, AntiSamy is now doing XML schema validation of the AntiSamy policy files against its internal XSD. AntiSamy has this XML schema validation
enabled by default, which is a good thing. Unfortunately,
all of the previous ESAPI 2.x releases where AntiSamy was used had an extraneous '<html-entities>' node that
needs to be removed to conform to AntiSamy's XSD. I can and am doing this for the new forthcoming ESAPI release, but there is nothing I can do to force those upgrading to this next ESAPI version to also update their antisamy-esapi.xml files (in part, because they may have been customized). Fortunately, because of that, AntiSamy is supporting a way to disable the schema validation to support backward compatibility mostly for ESAPI's sake. (See
https://github.com/nahsra/antisamy#note-schema-validation-behavior-change-starting-with-antisamy-160 if you are interested.)
Unfortunately, as I attempt to test this disabling of the AntiSamy schema validation, it is causing one of our JUnit tests to pass which I expected to fail (when run as 'mvn test') and to fail when it was expected to pass (when executed as only a single JUnit test). Through it all, we found out that the default parallelism of maven-surefire-plugin reusing JVMs for multiple tests was actually masking a lot of test failures. (I counted 196 of them dating WAY back, like 10 to 12 or so years, dating back to the earliest 2.0 release candidates.) Obviously, we are not going to try to fix all of those for this next release. Many of failing tests have to do with ESAPI's reference implementation classes using singleton patterns and static initializers and then the JUnit tests trying to work around those imposed limitations by changing up values for various ESAPI properties via ESAPI.override() and other similar ill-advised mischief. (Don't try that at home kids!)
So a simple AntiSamy change [which is in fact, an improvement] caused a hidden failure to finally manifest itself. (That is, it was previously there, but unnoticed until now). This is unlikely to cause problems in real life because people are unlikely to be trying to use multiple AntiSamy policy files with ESAPI at once for any given application. But we do anticipate some people not carefully reading the release notes documentation for ESAPI (No! Say it ain't true!) and not updating your antisamy-esapi.xml policy file to remove the invalid '<html-entities>' node (which never was valid, in fact!) and getting a mysterious error message. Or no error message at all because ESAPI swallows it. We need to test to make sure that ESAPI is not hiding the AntiSamy exception messages or messages that it intends to log. So that is what is holding ESAPI 2.2.3.0 up. Lastly, I've been working on this for maybe 30 hours in the past 3 days and am getting really burned out and tomorrow is going to be a really long day at work because I took PTO Friday. Because, yes, I have a day job too.