Buggy code:
private static final boolean GETBYTES_NETWORK_SIZE = ( ( SampleResult . GETBYTES_HEADERS_SIZE ) && ( SampleResult . GETBYTES_BODY_REALSIZE ) ) ? true : false ; private SampleSaveConfiguration saveConfig ; private SampleResult parent = null ; public void setSaveConfig ( SampleSaveConfiguration propertiesToSave ) { } public SampleSaveConfiguration getSaveConfig ( ) { } private byte [ ] responseData = SampleResult . EMPTY_BA ; private String responseCode = "" ; private String label = "" ; private String resultFileName = "" ; private String samplerData ; private String threadName = "" ; private String responseMessage = "" ; private String responseHeaders = "" ; private String contentType = "" ; private String requestHeaders = "" ; private long timeStamp = 0 ; private long startTime = 0 ; private long endTime = 0 ; private long idleTime = 0 ; private long pauseTime = 0 ; private List < AssertionResult > assertionResults ; private List < SampleResult > subResults ; private String dataType = "" ; private boolean success ; private final Set < String > files = new HashSet < String > ( ) ; private String dataEncoding ; private long time = 0 ; private long latency = 0 ; private boolean stopThread = false ; private boolean stopTest = false ; private boolean stopTestNow = false ; private boolean isMonitor = false ; private int sampleCount = 1 ; private int bytes = 0 ; private int headersSize = 0 ; private int bodySize = 0 ; private volatile int groupThreads = 0 ; private volatile int allThreads = 0 ; private static final boolean startTimeStamp = JMeterUtils . getPropDefault ( "sampleresult.timestamp.start" , false ) ; static final boolean USENANOTIME = JMeterUtils . getPropDefault ( "sampleresult.useNanoTime" , true ) ; final transient long nanoTimeOffset ; final transient boolean useNanoTime ; private long initOffset ( ) { } public SampleResult ( ) { } SampleResult ( boolean nanoTime ) { } public SampleResult ( SampleResult res ) { } public boolean isStampedAtStart ( ) { } protected SampleResult ( long elapsed , boolean atend ) { } public static SampleResult createTestSample ( long start , long end ) { } public static SampleResult createTestSample ( long elapsed ) { } public SampleResult ( long stamp , long elapsed ) { } private static long sampleNsClockInMs ( ) { } public long currentTimeInMillis ( ) { } private void stampAndTime ( long stamp , long elapsed ) { } public void setStampAndTime ( long stamp , long elapsed ) { } public synchronized boolean markFile ( String filename ) { } public String getResponseCode ( ) { } private static final String OK_CODE = Integer . toString ( HttpURLConnection . HTTP_OK ) ; private static final String OK_MSG = "OK" ; public void setResponseCodeOK ( ) { } public void setResponseCode ( String code ) { } public boolean isResponseCodeOK ( ) { } public String getResponseMessage ( ) { } public void setResponseMessage ( String msg ) { } public void setResponseMessageOK ( ) { } public void setResponseOK ( ) { } public String getThreadName ( ) { } public void setThreadName ( String threadName ) { } public long getTimeStamp ( ) { } public String getSampleLabel ( ) { } public String getSampleLabel ( boolean includeGroup ) { } public void setSampleLabel ( String label ) { } public void addAssertionResult ( AssertionResult assertResult ) { } public AssertionResult [ ] getAssertionResults ( ) { } public void addSubResult ( SampleResult subResult ) { String tn = getThreadName ( ) ; if ( ( tn . length ( ) ) == 0 ) { tn = Thread . currentThread ( ) . getName ( ) ; this . setThreadName ( tn ) ; } subResult . setThreadName ( tn ) ; <START_BUG> setEndTime ( Math . max ( getEndTime ( ) , subResult . getEndTime ( ) ) ) ; <END_BUG> setBytes ( ( ( getBytes ( ) ) + ( subResult . getBytes ( ) ) ) ) ; addRawSubResult ( subResult ) ; } public void addRawSubResult ( SampleResult subResult ) { } public void storeSubResult ( SampleResult subResult ) { } public SampleResult [ ] getSubResults ( ) { } public void setResponseData ( byte [ ] response ) { } @ Deprecated public void setResponseData ( String response ) { } public void setResponseData ( final String response , final String encoding ) { } public byte [ ] getResponseData ( ) { } public String getResponseDataAsString ( ) { } public void setSamplerData ( String s ) { } public String getSamplerData ( ) { } public long getTime ( ) { } public boolean isSuccessful ( ) { } public void setDataType ( String dataType ) { } public String getDataType ( ) { } public void setEncodingAndType ( String ct ) { } private static final String [ ] BINARY_TYPES = new String [ ] { "image//" , "audio//" , "video//" } ; private static boolean isBinaryType ( String ct ) { } public void setSuccessful ( boolean success ) { } @ Override public String toString ( ) { } public String getDataEncodingWithDefault ( ) { } protected String getDataEncodingWithDefault ( String defaultEncoding ) { } public String getDataEncodingNoDefault ( ) { } public void setDataEncoding ( String dataEncoding ) { } public boolean isStopTest ( ) { } public boolean isStopTestNow ( ) { } public boolean isStopThread ( ) { } public void setStopTest ( boolean b ) { } public void setStopTestNow ( boolean b ) { } public void setStopThread ( boolean b ) { } public String getRequestHeaders ( ) { } public String getResponseHeaders ( ) { } public void setRequestHeaders ( String string ) { } public void setResponseHeaders ( String string ) { } public String getContentType ( ) { } public String getMediaType ( ) { } public void setContentType ( String string ) { }

Fix:
setEndTime ( Math . max ( getEndTime ( ) , ( ( ( subResult . getEndTime ( ) ) + ( nanoTimeOffset ) ) - ( subResult . nanoTimeOffset ) ) ) ) ;