The Unicode standard defines 3 surrogate blocks: HIGH_SURROGATES, HIGH_PRIVATE_USE_SURROGATES, and LOW_SURROGATES. However, the existing UnicodeBlock implementation simply combines char code values from all three areas into a single SURROGATES_AREA block. While not entirely incorrect, this API could be improved to distinguish among the three blocks.
JDK 1.4.x and previous versions had very limited support of surrogate character values...practically none. It is generally thought that few applications actually use this API, although those that do will certainly show regressions. Prior to the upcoming Tiger release, however, the use of surrogates in the public API is extremely rare. This fact, in addition to our need to correctly track the Unicode standard, seems adequate to support the API change to distinguish among the 3 surrogate blocks.