{"record":{"id":"ee4f1af757aafc1a","repo":"apache/skywalking","slug":"slot-expects-a-plain-integer-literal-got-numt","errorCode":null,"errorMessage":"{slot} expects a plain integer literal, got '{numText}' (suffixes / decimals / exponents are not accepted here)","messagePattern":"(.+?) expects a plain integer literal, got '(.+?)' \\(suffixes / decimals / exponents are not accepted here\\)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"critical","filePath":"oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/v2/compiler/LALScriptParser.java","lineNumber":886,"sourceCode":"        }\n        return mul.valueAccessTerm(0);\n    }\n\n    /**\n     * Parse a NUMBER literal that must represent a plain integer (no\n     * decimal, no exponent, no Java-style suffix). Used by integer-only\n     * grammar slots — {@code rateLimit { rpm N }} and {@code list[N]} —\n     * which share the lexer NUMBER token with arithmetic expressions but\n     * cannot accept the suffixes/forms supported there. Throws a clear\n     * compile-time error for shape violations and for values that exceed\n     * Java's {@code long} range (rather than letting\n     * {@link NumberFormatException} leak from {@code Long.parseLong}).\n     */\n    private static long parseStrictInteger(final String numText, final String slot) {\n        for (int i = 0; i < numText.length(); i++) {\n            final char c = numText.charAt(i);\n            if (c < '0' || c > '9') {\n                throw new IllegalArgumentException(\n                    slot + \" expects a plain integer literal, got '\" + numText\n                        + \"' (suffixes / decimals / exponents are not accepted here)\");\n            }\n        }\n        try {\n            return Long.parseLong(numText);\n        } catch (NumberFormatException e) {\n            throw new IllegalArgumentException(\n                slot + \" value '\" + numText + \"' exceeds the supported range \"\n                    + \"(must fit in a Java long)\");\n        }\n    }\n\n    /**\n     * Like {@link #parseStrictInteger} but additionally requires the value\n     * to fit in a Java {@code int}. Used by the {@code [index]} grammar\n     * slot, where silent narrowing of an oversized literal would wrap to a\n     * negative index instead of producing a clear error.","sourceCodeStart":868,"sourceCodeEnd":904,"githubUrl":"https://github.com/apache/skywalking/blob/102af09b4a56064e22050dded10e2c52e490d040/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/v2/compiler/LALScriptParser.java#L868-L904","documentation":"Wrapped-into-UnexpectedException failure in the MeterSystem constructor: ClassPath.from(MeterSystem.class.getClassLoader()) threw IOException while building the classpath scanner used to discover @MeterFunction-annotated classes under org.apache.skywalking. This is an environment/classloader failure at OAP boot, before any meter processing starts.","triggerScenarios":"OAP startup with a broken deployment: unreadable jar files in the classpath (truncated download, corrupted docker layer), an exotic classloader that ClassPath (Guava's ClassPath) cannot enumerate, or filesystem permission errors on the install directory.","commonSituations":"Corrupted distribution tarball or docker image; NFS-mounted OAP libs with intermittent I/O errors; running in a fat classloader (some application servers, shaded runners) that Guava cannot walk; disk-full during image pull.","solutions":["Verify the OAP install: re-download the distribution / re-pull the docker image and check jar integrity (unzip -t on oap-libs jars)","Check filesystem permissions and disk space on the OAP directory and its classpath jars","If embedding OAP in a custom classloader, ensure ClassPath.from can enumerate the URLs — prefer plain URLClassLoader jars over exotic loaders"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Verify distribution/docker image integrity before startup (checksums, unzip -t)","Avoid exotic classloaders for OAP libs; keep jars readable on local disk","Monitor disk space and NFS health on the OAP install directory"],"tags":["skywalking","oap","meter","classloader","environment","startup"],"backgroundTag":null,"analyzedSha":"102af09b4a56064e22050dded10e2c52e490d040","analyzedAt":"2026-08-14T10:47:52.647Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}