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;
}

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 ; }
handles info buffer truncation by requesting new information
