From: Robert Varga Date: Thu, 21 Jun 2018 11:04:11 +0000 (+0200) Subject: Fix JDK9 pattern handling X-Git-Tag: v2.0.7~2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=9383f07e7acb9ee8979cb37ecc6b93972914ee55;p=yangtools.git Fix JDK9 pattern handling Java 9's Pattern is reporting different error strings, deal with that. Change-Id: I8f3035530f10a77b23f1531c0ced0b0532795608 Signed-off-by: Robert Varga --- diff --git a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/RegexUtils.java b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/RegexUtils.java index 7aab1eaf94..e9f47a2d56 100644 --- a/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/RegexUtils.java +++ b/yang/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/RegexUtils.java @@ -304,8 +304,10 @@ public final class RegexUtils { return rawPattern; } catch (final PatternSyntaxException ex) { LOG.debug("Invalid regex pattern syntax in: {}", rawPattern, ex); - if (ex.getMessage().contains("Unknown character script name")) { - rawPattern = fixUnknownScripts(ex.getMessage(), rawPattern); + final String msg = ex.getMessage(); + if (msg.startsWith("Unknown character script name") + || msg.startsWith("Unknown character property name")) { + rawPattern = fixUnknownScripts(msg, rawPattern); } else { return rawPattern; } @@ -320,7 +322,12 @@ public final class RegexUtils { StringBuilder result = new StringBuilder(rawPattern); final Matcher matcher = BETWEEN_CURLY_BRACES_PATTERN.matcher(exMessage); if (matcher.find()) { - final String capturedGroup = matcher.group(1); + String capturedGroup = matcher.group(1); + if (capturedGroup.startsWith("In/Is")) { + // Java 9 changed the reporting string + capturedGroup = capturedGroup.substring(5); + } + if (JAVA_UNICODE_BLOCKS.contains(capturedGroup)) { final int idx = rawPattern.indexOf("Is" + capturedGroup); result = result.replace(idx, idx + 2, "In");