protected static int parseUpdate(String runtimeVersion) {
        LOGGER.debug(runtimeVersion);
        try {
            String[] parts = runtimeVersion.split("\\.");
            if (parts.length == 4 && isNumeric(parts)) {
                return Integer.parseInt(parts[2]);
            }
            int pos = runtimeVersion.indexOf('_');
            if (pos <= 0) {
                pos = runtimeVersion.lastIndexOf('.');
                if (pos <= 0) {
                    //unexpected java version - return 0
                    return 0;
                }
            }
            int end = runtimeVersion.indexOf('+', pos);
            if (end < 0) {
                end = runtimeVersion.indexOf('-', pos);
            }
            if (end > pos) {
                return Integer.parseInt(runtimeVersion.substring(pos + 1, end));
            }
            return Integer.parseInt(runtimeVersion.substring(pos + 1));
        } catch (NumberFormatException nfe) {
            // If the update version is not available, return 0
            return 0;
        }
    }
@Test
    public void testParseUpdate() {

        String runtimeVersion = "1.8.0_252-8u252-b09-1~deb9u1-b09";
        int expResult = 252;
        int result = Utils.parseUpdate(runtimeVersion);
        assertEquals(expResult, result);

        runtimeVersion = "1.8.0_144";
        expResult = 144;
        result = Utils.parseUpdate(runtimeVersion);
        assertEquals(expResult, result);

        runtimeVersion = "11.0.2+9";
        expResult = 2;
        result = Utils.parseUpdate(runtimeVersion);
        assertEquals(expResult, result);

        runtimeVersion = "11.0.2";
        expResult = 2;
        result = Utils.parseUpdate(runtimeVersion);
        assertEquals(expResult, result);

        runtimeVersion = "17.0.8.1";
        expResult = 8;
        result = Utils.parseUpdate(runtimeVersion);
        assertEquals(expResult, result);
    }