@@ -201,11 +201,8 @@ private void initManager(String options, final CallbackContext callbackContext)
201201
202202 int ackDelay = 0 ;
203203 for (UploadEvent ack : uploadEvents ) {
204- long startUploadTime = ack .getOutputData ().getLong ("output_upload_start_time" , 0 );
205- long endUploadTime = ack .getOutputData ().getLong ("output_upload_end_time" , 0 );
206- long uploadDuration = endUploadTime - startUploadTime ;
207204 executorService .schedule (() -> {
208- handleAck (ack .getOutputData (), uploadDuration , endUploadTime );
205+ handleAck (ack .getOutputData ());
209206 }, ackDelay , TimeUnit .MILLISECONDS );
210207 ackDelay += 200 ;
211208 }
@@ -239,10 +236,7 @@ private void initManager(String options, final CallbackContext callbackContext)
239236 // The corresponding ACK is already in the DB, if it not, the task is just a leftover
240237 String id = info .getOutputData ().getString (UploadTask .KEY_OUTPUT_ID );
241238 if (ackDatabase .uploadEventDao ().exists (id )) {
242- long startUploadTime = info .getOutputData ().getLong ("output_upload_start_time" , 0 );
243- long endUploadTime = info .getOutputData ().getLong ("output_upload_end_time" , 0 );
244- long uploadDuration = endUploadTime - startUploadTime ;
245- handleAck (info .getOutputData (), uploadDuration , endUploadTime );
239+ handleAck (info .getOutputData ());
246240 }
247241 }, 0 , TimeUnit .MILLISECONDS );
248242 break ;
@@ -415,7 +409,7 @@ private void acknowledgeEvent(String eventId, CallbackContext context) {
415409 /**
416410 * Handle ACK data and send it to the JS.
417411 */
418- private void handleAck (final Data ackData , final long uploadDuration , final long finishUploadTime ) {
412+ private void handleAck (final Data ackData ) {
419413 // If upload was successful
420414 if (!ackData .getBoolean (UploadTask .KEY_OUTPUT_IS_ERROR , false )) {
421415 // Read response from file if present
@@ -424,12 +418,22 @@ private void handleAck(final Data ackData, final long uploadDuration, final long
424418 response = readFileToStringNoThrow (ackData .getString (UploadTask .KEY_OUTPUT_RESPONSE_FILE ));
425419 }
426420
421+ long startUploadTime = ackData .getLong ("output_upload_start_time" , 0 );
422+ long finishUploadTime = ackData .getLong ("output_upload_finish_time" , 0 );
423+ long uploadDuration = finishUploadTime - startUploadTime ;
424+
427425 HashMap <String , Object > uploadData = new HashMap <>();
428- uploadData .put ("outputId" , ackData .getString (UploadTask .KEY_OUTPUT_ID ));
429- uploadData .put ("response" , response );
430- uploadData .put ("statusCode" , ackData .getInt (UploadTask .KEY_OUTPUT_STATUS_CODE , -1 ));
431- uploadData .put ("uploadDuration" , uploadDuration );
432- uploadData .put ("finishUploadTime" , finishUploadTime );
426+ if (uploadDuration <= 0 ) {
427+ uploadData .put ("outputId" , ackData .getString (UploadTask .KEY_OUTPUT_ID ));
428+ uploadData .put ("response" , response );
429+ uploadData .put ("statusCode" , ackData .getInt (UploadTask .KEY_OUTPUT_STATUS_CODE , -1 ));
430+ } else {
431+ uploadData .put ("outputId" , ackData .getString (UploadTask .KEY_OUTPUT_ID ));
432+ uploadData .put ("response" , response );
433+ uploadData .put ("statusCode" , ackData .getInt (UploadTask .KEY_OUTPUT_STATUS_CODE , -1 ));
434+ uploadData .put ("uploadDuration" , uploadDuration );
435+ uploadData .put ("finishUploadTime" , finishUploadTime );
436+ }
433437
434438 sendSuccess (uploadData );
435439 } else {
0 commit comments