[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Class ControlMessage (0.27.1)\n\nVersion latestkeyboard_arrow_down\n\n- [0.27.1 (latest)](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.27.0](/java/docs/reference/pgadapter/0.27.0/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.26.0](/java/docs/reference/pgadapter/0.26.0/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.25.0](/java/docs/reference/pgadapter/0.25.0/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.24.0](/java/docs/reference/pgadapter/0.24.0/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.23.1](/java/docs/reference/pgadapter/0.23.1/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.22.1](/java/docs/reference/pgadapter/0.22.1/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.21.0](/java/docs/reference/pgadapter/0.21.0/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.20.0](/java/docs/reference/pgadapter/0.20.0/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.19.1](/java/docs/reference/pgadapter/0.19.1/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.18.4](/java/docs/reference/pgadapter/0.18.4/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.17.0](/java/docs/reference/pgadapter/0.17.0/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.16.0](/java/docs/reference/pgadapter/0.16.0/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.15.0](/java/docs/reference/pgadapter/0.15.0/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.14.1](/java/docs/reference/pgadapter/0.14.1/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.9.0](/java/docs/reference/pgadapter/0.9.0/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.8.0](/java/docs/reference/pgadapter/0.8.0/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.7.0](/java/docs/reference/pgadapter/0.7.0/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.6.1](/java/docs/reference/pgadapter/0.6.1/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage)\n- [0.5.1](/java/docs/reference/pgadapter/0.5.1/com.google.cloud.spanner.pgadapter.wireprotocol.ControlMessage) \n\n public abstract class ControlMessage extends WireMessage\n\nGeneric representation for a control wire message: that is, a message which does not handle any\nform of start-up, but reather general communications. \n\nInheritance\n-----------\n\n[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e [WireMessage](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage) \\\u003e ControlMessage \n\nInherited Members\n-----------------\n\n[WireMessage.getHeaderLength()](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage#com_google_cloud_spanner_pgadapter_wireprotocol_WireMessage_getHeaderLength__) \n[WireMessage.getIdentifier()](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage#com_google_cloud_spanner_pgadapter_wireprotocol_WireMessage_getIdentifier__) \n[WireMessage.getMessageName()](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage#com_google_cloud_spanner_pgadapter_wireprotocol_WireMessage_getMessageName__) \n[WireMessage.getParameters(DataInputStream)](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage#com_google_cloud_spanner_pgadapter_wireprotocol_WireMessage_getParameters_java_io_DataInputStream_) \n[WireMessage.getPayloadString()](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage#com_google_cloud_spanner_pgadapter_wireprotocol_WireMessage_getPayloadString__) \n[WireMessage.nextHandler()](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage#com_google_cloud_spanner_pgadapter_wireprotocol_WireMessage_nextHandler__) \n[WireMessage.read(int)](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage#com_google_cloud_spanner_pgadapter_wireprotocol_WireMessage_read_int_) \n[WireMessage.readAll()](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage#com_google_cloud_spanner_pgadapter_wireprotocol_WireMessage_readAll__) \n[WireMessage.readString()](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage#com_google_cloud_spanner_pgadapter_wireprotocol_WireMessage_readString__) \n[WireMessage.send()](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage#com_google_cloud_spanner_pgadapter_wireprotocol_WireMessage_send__) \n[WireMessage.sendPayload()](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage#com_google_cloud_spanner_pgadapter_wireprotocol_WireMessage_sendPayload__) \n[WireMessage.toString()](/java/docs/reference/pgadapter/latest/com.google.cloud.spanner.pgadapter.wireprotocol.WireMessage#com_google_cloud_spanner_pgadapter_wireprotocol_WireMessage_toString__) \n[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) \n[Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) \n[Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) \n[Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) \n[Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) \n[Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) \n[Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) \n[Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) \n[Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) \n[Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)\n\nStatic Methods\n--------------\n\n### create(ConnectionHandler connection)\n\n public static ControlMessage create(ConnectionHandler connection)\n\nFactory method to create the message from the specific command type char.\n\n### getFormatCodes(DataInputStream input)\n\n protected static List\u003cShort\u003e getFormatCodes(DataInputStream input)\n\nExtract format codes from message (useful for both input and output format codes).\n\nConstructors\n------------\n\n### ControlMessage(ConnectionHandler connection)\n\n public ControlMessage(ConnectionHandler connection)\n\n### ControlMessage(ConnectionHandler connection, int length, ControlMessage.ManuallyCreatedToken token)\n\n protected ControlMessage(ConnectionHandler connection, int length, ControlMessage.ManuallyCreatedToken token)\n\nConstructor for manually created Control messages.\n\nMethods\n-------\n\n### handleError(Exception exception)\n\n protected void handleError(Exception exception)\n\nTakes an Exception Object and relates its results to the user within the client.\n\n### isExtendedProtocol()\n\n public boolean isExtendedProtocol()"]]