{"record":{"id":"e22c22a5cba0dc6a","repo":"pinpoint-apm/pinpoint","slug":"syntax-error-expected-token-token-e22c22","errorCode":null,"errorMessage":"Syntax error. Expected token='=' :<token>","messagePattern":"Syntax error\\. Expected token='=' :<token>","errorType":"validation","errorClass":"OracleConnectionStringException","httpStatus":null,"severity":"error","filePath":"agent-module/plugins/oracle-jdbc/src/main/java/com/navercorp/pinpoint/plugin/jdbc/oracle/parser/OracleNetConnectionDescriptorTokenizer.java","lineNumber":198,"sourceCode":"    public void checkStartToken() {\n        Token token = this.nextToken();\n        if (token == null) {\n            throw new OracleConnectionStringException(\"parse error. token is null\");\n        }\n        // We can check by == because the token object is singleton.\n        if (!(token == TOKEN_KEY_START_OBJECT)) {\n            throw new OracleConnectionStringException(\"syntax error. Expected token='(' :\" + token.getToken());\n        }\n    }\n\n    public void checkEqualToken() {\n        Token token = this.nextToken();\n        if (token == null) {\n            throw new OracleConnectionStringException(\"parse error. token is null. Expected token='='\");\n        }\n        // We can check by == because the token object is singleton.\n        if (!(token == TOKEN_EQUAL_OBJECT)) {\n            throw new OracleConnectionStringException(\"Syntax error. Expected token='=' :\" + token.getToken());\n        }\n    }\n\n    public void checkEndToken() {\n        Token token = this.nextToken();\n        if (token == null) {\n            throw new OracleConnectionStringException(\"parse error. token is null. Expected token=')\");\n        }\n        // We can check by == because the token object is singleton.\n        if (!(token == TOKEN_KEY_END_OBJECT)) {\n            throw new OracleConnectionStringException(\"Syntax error. Expected token=')' :\" + token.getToken());\n        }\n    }\n\n    public Token getLiteralToken() {\n        Token token = this.nextToken();\n        if (token == null) {\n            throw new OracleConnectionStringException(\"parse error. token is null. Expected token='LITERAL'\");","sourceCodeStart":180,"sourceCodeEnd":216,"githubUrl":"https://github.com/pinpoint-apm/pinpoint/blob/744c3d3075e595656abb1ae331ad2c0e4c9eb996/agent-module/plugins/oracle-jdbc/src/main/java/com/navercorp/pinpoint/plugin/jdbc/oracle/parser/OracleNetConnectionDescriptorTokenizer.java#L180-L216","documentation":"Parser guard in OracleNetConnectionDescriptorTokenizer.checkEqualToken: after reading the next token from the JDBC URL connection descriptor, it was not the singleton '=' token object — the descriptor's key=value syntax is broken at this point (e.g. a missing '=' between a keyword and its value).","triggerScenarios":"Thrown at agent-module/plugins/oracle-jdbc/src/main/java/com/navercorp/pinpoint/plugin/jdbc/oracle/parser/OracleNetConnectionDescriptorTokenizer.java:198 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Correct the Oracle JDBC URL descriptor syntax, e.g. (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)...)) — every key must be followed by '='","Check for typos, stray quotes, or missing parentheses before the failing token","Validate the connection string in a SQL client before configuring the agent"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"744c3d3075e595656abb1ae331ad2c0e4c9eb996","analyzedAt":"2026-09-07T18:48:45.289Z","contentChangedAt":"2026-09-07T18:48:45.289Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}