On Thu, 18 Jan 2024 18:50:56 GMT, Jim Laskey <jlas...@openjdk.org> wrote:
> Currently String::translateEscapes does not support unicode escapes, reported > as a IllegalArgumentException("Invalid escape sequence: ..."). > String::translateEscapes should translate unicode escape sequences to provide > full coverage, src/java.base/share/classes/java/lang/String.java line 4274: > 4272: break; > 4273: case 'u': > 4274: if (from + 4 <= length) { Avoids a potential overflow Suggestion: if (from <= length - 4) { src/java.base/share/classes/java/lang/String.java line 4281: > 4279: } catch (NumberFormatException ex) { > 4280: throw new IllegalArgumentException("Invalid > unicode sequence: " + hex); > 4281: } Avoids an allocation on a valid sequence, but is perhaps slower. Suggestion: from += 4; try { ch = (char) Integer.parseInt(this, from - 4, from, 16); } catch (NumberFormatException ex) { throw new IllegalArgumentException("Invalid unicode sequence: " + substring(from - 4, from)); } ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/17491#discussion_r1457889653 PR Review Comment: https://git.openjdk.org/jdk/pull/17491#discussion_r1457897030