{"record":{"id":"fde479239e2af82e","repo":"apache/shardingsphere","slug":"unknown-common-information-request-type-d","errorCode":null,"errorMessage":"Unknown common information request type %d","messagePattern":"Unknown common information request type (.+?)","errorType":"exception","errorClass":"FirebirdProtocolException","httpStatus":null,"severity":"warning","filePath":"database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/info/type/common/FirebirdCommonInfoPacketType.java","lineNumber":80,"sourceCode":"        Preconditions.checkNotNull(result, \"Cannot find code '%d' in common info type\", code);\n        return result;\n    }\n    \n    /**\n     * Parse and write Firebird common information packet based on the given type.\n     *\n     * @param data payload to write data to\n     * @param type type of common info packet\n     * @throws FirebirdProtocolException if the common info packet type is unknown\n     */\n    public static void parseCommonInfo(final FirebirdPacketPayload data, final FirebirdCommonInfoPacketType type) {\n        // TODO implement other request types handle\n        switch (type) {\n            case END:\n                data.writeInt1(END.getCode());\n                break;\n            default:\n                throw new FirebirdProtocolException(\"Unknown common information request type %d\", type.getCode());\n        }\n    }\n    \n    @Override\n    public boolean isCommon() {\n        return true;\n    }\n}\n","sourceCodeStart":62,"sourceCodeEnd":89,"githubUrl":"https://github.com/apache/shardingsphere/blob/e952770a215630a3659c75d64369168cd3e26b82/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/info/type/common/FirebirdCommonInfoPacketType.java#L62-L89","documentation":"Thrown when parsing a Firebird common information request whose item type is not END. The source carries a 'TODO implement other request types handle' comment: only the END marker is implemented, so every other common info item (implementation, version, etc.) hits the default branch and throws. This is an explicit coverage gap rather than a client error.","triggerScenarios":"Calling FirebirdCommonInfoPacketType.parseCommonInfo(payload, type) with any type other than END — e.g. a client that requests the Firebird implementation string within an op info transaction block.","commonSituations":"Drivers or tools (flamerobin, isql-style clients, Jaybird) that bundle common info items such as isc_info_implementation or isc_info_version into a request; behavior differs across Firebird client versions.","solutions":["Check the item code in the message; if it is a common info item like implementation/version, the proxy simply does not support it yet","Avoid code paths that query common info items beyond END (e.g. skip server version probes at connection time)","Contribute the missing case to parseCommonInfo() upstream — the TODO marks it as unimplemented","If the item is genuinely unknown (not a valid isc_info_* constant), inspect the request bytes for corruption"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// only route END to parseCommonInfo; filter everything else beforehand\nif (type == FirebirdCommonInfoPacketType.END) {\n    FirebirdCommonInfoPacketType.parseCommonInfo(data, type);\n} else {\n    // unimplemented common info item — skip or answer with an error item per Firebird protocol\n    respondUnimplemented(type);\n}","typeGuard":"static boolean isImplementedCommonInfo(final FirebirdCommonInfoPacketType type) {\n    return type == FirebirdCommonInfoPacketType.END;\n}","tryCatchPattern":"try {\n    FirebirdCommonInfoPacketType.parseCommonInfo(data, type);\n} catch (FirebirdProtocolException ex) {\n    // coverage gap (see TODO in source): log the item code and degrade instead of crashing the proxy thread\n    log.warn(\"common info item {} not implemented\", type);\n}","preventionTips":["Remember parseCommonInfo currently implements only END — avoid code paths that request implementation/version strings at the common level","Watch upstream releases; the TODO signals more types will land"],"tags":["firebird","protocol","info-request","unimplemented","todo"],"backgroundTag":null,"analyzedSha":"e952770a215630a3659c75d64369168cd3e26b82","analyzedAt":"2026-08-14T13:54:53.392Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}