private boolean resetWriteBuffers ( ) { int stop = getPendingStop ( ) ; WsByteBuffer [ ] list = getPendingBuffers ( ) ; // verify we can actually attempt the re-write if ( null == this . positionList || null == list ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "Error in resetBuffers: posList: " + this . positionList + " list: " + list ) ; } getTSC ( ) . getWriteInterface ( ) . setBuffer ( null ) ; return false ; } // reset positions in each of the buffers for ( int i = 0 ; i < stop ; i ++ ) { list [ i ] . position ( this . positionList [ i ] ) ; } getTSC ( ) . getWriteInterface ( ) . setBuffers ( list ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { Tr . debug ( tc , "Reset positions on (" + stop + ") write buffers" ) ; } return true ; }
Reset the position on all of the existing write buffers back so we can resend them all as we don t know what actually made it out before the error occurred .