question: private void handleTruncatedInfo ( final StatementInfo info ) throws SQLException { final byte [ ] originalInfo = statement . getStatementInfoRequestItems ( ) ; final byte [ ] newInfoItems = new byte [ originalInfo . length + 2 * 4 ] ; int newIndex = 0 ; for ( final byte infoItem : originalInfo ) { assert newIndex < newInfoItems . length : "newInfoItems size too short" ; switch ( infoItem ) { case ISCConstants . isc_info_sql_select : case ISCConstants . isc_info_sql_bind : final RowDescriptorBuilder currentBuilder = infoItem == ISCConstants . isc_info_sql_select ? info . fieldBuilder : info . parameterBuilder ; final int descriptorIndex = currentBuilder != null ? currentBuilder . getFirstUnprocessedIndex ( ) + 1 : 1 ; newInfoItems [ newIndex ++ ] = ISCConstants . isc_info_sql_sqlda_start ; newInfoItems [ newIndex ++ ] = 2 ; newInfoItems [ newIndex ++ ] = ( byte ) ( descriptorIndex & 0xFF ) ; newInfoItems [ newIndex ++ ] = ( byte ) ( descriptorIndex > > 8 ) ; newInfoItems [ newIndex ++ ] = infoItem ; break ; default : newInfoItems [ newIndex ++ ] = infoItem ; break ; } } assert newIndex == newInfoItems . length : "newInfoItems size too long" ; info . requestBufferSize = Math . min ( 2 * info . requestBufferSize , statement . getMaxSqlInfoSize ( ) ) ; info . buffer = statement . getSqlInfo ( newInfoItems , info . requestBufferSize ) ; info . currentIndex = 0 ; }
target:  Handles info buffer truncation by requesting new information