@@ -647,14 +647,19 @@ public Object call() throws Exception {
647647 };
648648 }
649649
650- private GreetingPacket receiveGreeting () throws IOException {
651- byte [] initialHandshakePacket = channel .read ();
652- if (initialHandshakePacket [0 ] == (byte ) 0xFF /* error */ ) {
653- byte [] bytes = Arrays .copyOfRange (initialHandshakePacket , 1 , initialHandshakePacket .length );
650+ private void checkError (byte [] packet ) throws IOException {
651+ if (packet [0 ] == (byte ) 0xFF /* error */ ) {
652+ byte [] bytes = Arrays .copyOfRange (packet , 1 , packet .length );
654653 ErrorPacket errorPacket = new ErrorPacket (bytes );
655654 throw new ServerException (errorPacket .getErrorMessage (), errorPacket .getErrorCode (),
656- errorPacket .getSqlState ());
655+ errorPacket .getSqlState ());
657656 }
657+ }
658+
659+ private GreetingPacket receiveGreeting () throws IOException {
660+ byte [] initialHandshakePacket = channel .read ();
661+ checkError (initialHandshakePacket );
662+
658663 return new GreetingPacket (initialHandshakePacket );
659664 }
660665
@@ -690,12 +695,7 @@ private boolean tryUpgradeToSSL(GreetingPacket greetingPacket) throws IOExceptio
690695 private void enableHeartbeat () throws IOException {
691696 channel .write (new QueryCommand ("set @master_heartbeat_period=" + heartbeatInterval * 1000000 ));
692697 byte [] statementResult = channel .read ();
693- if (statementResult [0 ] == (byte ) 0xFF /* error */ ) {
694- byte [] bytes = Arrays .copyOfRange (statementResult , 1 , statementResult .length );
695- ErrorPacket errorPacket = new ErrorPacket (bytes );
696- throw new ServerException (errorPacket .getErrorMessage (), errorPacket .getErrorCode (),
697- errorPacket .getSqlState ());
698- }
698+ checkError (statementResult );
699699 }
700700
701701 private void setMasterServerId () throws IOException {
@@ -904,12 +904,7 @@ private ChecksumType fetchBinlogChecksum() throws IOException {
904904 private void confirmSupportOfChecksum (ChecksumType checksumType ) throws IOException {
905905 channel .write (new QueryCommand ("set @master_binlog_checksum= @@global.binlog_checksum" ));
906906 byte [] statementResult = channel .read ();
907- if (statementResult [0 ] == (byte ) 0xFF /* error */ ) {
908- byte [] bytes = Arrays .copyOfRange (statementResult , 1 , statementResult .length );
909- ErrorPacket errorPacket = new ErrorPacket (bytes );
910- throw new ServerException (errorPacket .getErrorMessage (), errorPacket .getErrorCode (),
911- errorPacket .getSqlState ());
912- }
907+ checkError (statementResult );
913908 eventDeserializer .setChecksumType (checksumType );
914909 }
915910
@@ -1051,16 +1046,13 @@ private void commitGtid() {
10511046 }
10521047
10531048 private ResultSetRowPacket [] readResultSet () throws IOException {
1054- List <ResultSetRowPacket > resultSet = new LinkedList <ResultSetRowPacket >();
1049+ List <ResultSetRowPacket > resultSet = new LinkedList <>();
10551050 byte [] statementResult = channel .read ();
1056- if (statementResult [0 ] == (byte ) 0xFF /* error */ ) {
1057- byte [] bytes = Arrays .copyOfRange (statementResult , 1 , statementResult .length );
1058- ErrorPacket errorPacket = new ErrorPacket (bytes );
1059- throw new ServerException (errorPacket .getErrorMessage (), errorPacket .getErrorCode (),
1060- errorPacket .getSqlState ());
1061- }
1051+ checkError (statementResult );
1052+
10621053 while ((channel .read ())[0 ] != (byte ) 0xFE /* eof */ ) { /* skip */ }
10631054 for (byte [] bytes ; (bytes = channel .read ())[0 ] != (byte ) 0xFE /* eof */ ; ) {
1055+ checkError (bytes );
10641056 resultSet .add (new ResultSetRowPacket (bytes ));
10651057 }
10661058 return resultSet .toArray (new ResultSetRowPacket [resultSet .size ()]);
0 commit comments