4040import java .util .List ;
4141import java .util .Locale ;
4242import java .util .Objects ;
43+ import java .util .UUID ;
4344
4445import io .sentry .Sentry ;
4546
4647public class SynchronizeService extends JobIntentService {
4748 private static final int JOB_ID = 6541259 ; //Random unique Job id
4849 private static final String LOG_TAG = "SYNCSERVICE" ;
50+ private static final String TRACE_TAG = "SYNC_TRACE" ;
4951
5052 private static final String ACTION_UPLOAD_CLAIMS = "SynchronizeService.ACTION_UPLOAD_CLAIMS" ;
5153 private static final String ACTION_EXPORT_CLAIMS = "SynchronizeService.ACTION_EXPORT_CLAIMS" ;
@@ -112,13 +114,31 @@ protected void onHandleWork(@NonNull Intent intent) {
112114 }
113115
114116 private void handleUploadClaims () {
117+ String syncSessionId = UUID .randomUUID ().toString ();
118+ long uploadStartTs = System .currentTimeMillis ();
119+ String uploadThread = Thread .currentThread ().getName () + ":" + Thread .currentThread ().getId ();
115120 if (!global .isNetworkAvailable ()) {
121+ Log .i (TRACE_TAG , String .format (
122+ Locale .US ,
123+ "SYNC_TRACE session=%s event=UPLOAD_ABORT_NO_NETWORK ts=%d thread=%s" ,
124+ syncSessionId , uploadStartTs , uploadThread
125+ ));
116126 broadcastError (getResources ().getString (R .string .CheckInternet ), ACTION_UPLOAD_CLAIMS );
117127 return ;
118128 }
119129
120130 JSONArray claimsArray = sqlHandler .getAllPendingClaims ();
131+ Log .i (TRACE_TAG , String .format (
132+ Locale .US ,
133+ "SYNC_TRACE session=%s event=UPLOAD_START ts=%d thread=%s pendingClaims=%d" ,
134+ syncSessionId , uploadStartTs , uploadThread , claimsArray .length ()
135+ ));
121136 if (claimsArray .length () < 1 ) {
137+ Log .i (TRACE_TAG , String .format (
138+ Locale .US ,
139+ "SYNC_TRACE session=%s event=UPLOAD_ABORT_NO_CLAIM ts=%d thread=%s" ,
140+ syncSessionId , System .currentTimeMillis (), uploadThread
141+ ));
122142 broadcastError (getResources ().getString (R .string .NoClaim ), ACTION_UPLOAD_CLAIMS );
123143 return ;
124144 }
@@ -165,13 +185,32 @@ private void handleUploadClaims() {
165185 } else {
166186 //upload claim
167187 try {
188+ String claimUUID = sqlHandler .getClaimUUIDForCode (claim .getClaimNumber ());
189+ long createStartTs = System .currentTimeMillis ();
190+ Log .i (TRACE_TAG , String .format (
191+ Locale .US ,
192+ "SYNC_TRACE session=%s event=CREATECLAIM_EXECUTE_START ts=%d thread=%s claimCode=%s claimUUID=%s insureeId=%d programId=%d" ,
193+ syncSessionId , createStartTs , uploadThread , claim .getClaimNumber (), claimUUID , insureeId , programId
194+ ));
168195 Integer status = new CreateClaim ().execute (claim , Integer .parseInt (adminId ),Integer .parseInt (hfId ),insureeId ,programId , diagnosisId , programCode );
196+ Log .i (TRACE_TAG , String .format (
197+ Locale .US ,
198+ "SYNC_TRACE session=%s event=CREATECLAIM_EXECUTE_END ts=%d thread=%s claimCode=%s claimUUID=%s status=%s durationMs=%d" ,
199+ syncSessionId , System .currentTimeMillis (), uploadThread , claim .getClaimNumber (), claimUUID ,
200+ status == STATUS_ERROR ? "ERROR" : "SUCCESS" ,
201+ System .currentTimeMillis () - createStartTs
202+ ));
169203 if (status == STATUS_ERROR ){
170204 result = new PostNewClaims .Result (claim .getClaimNumber (), PostNewClaims .Result .Status .ERROR , getResources ().getString (R .string .FailedToCreateClaim ));
171205 }else {
172206 result = new PostNewClaims .Result (claim .getClaimNumber (), PostNewClaims .Result .Status .SUCCESS , null );
173207 }
174208 } catch (HttpException e ){
209+ Log .i (TRACE_TAG , String .format (
210+ Locale .US ,
211+ "SYNC_TRACE session=%s event=CREATECLAIM_EXECUTE_ERROR ts=%d thread=%s claimCode=%s errorClass=%s" ,
212+ syncSessionId , System .currentTimeMillis (), uploadThread , claim .getClaimNumber (), e .getClass ().getSimpleName ()
213+ ));
175214 result = new PostNewClaims .Result (claim .getClaimNumber (), PostNewClaims .Result .Status .ERROR , getResources ().getString (R .string .SomethingWentWrongServer ));
176215 }
177216 results .add (result );
@@ -184,13 +223,32 @@ private void handleUploadClaims() {
184223 } else {
185224 //upload claim
186225 try {
226+ String claimUUID = sqlHandler .getClaimUUIDForCode (claim .getClaimNumber ());
227+ long createStartTs = System .currentTimeMillis ();
228+ Log .i (TRACE_TAG , String .format (
229+ Locale .US ,
230+ "SYNC_TRACE session=%s event=CREATECLAIM_EXECUTE_START ts=%d thread=%s claimCode=%s claimUUID=%s insureeId=%d programId=%d" ,
231+ syncSessionId , createStartTs , uploadThread , claim .getClaimNumber (), claimUUID , insureeId , programId
232+ ));
187233 Integer status = new CreateClaim ().execute (claim , Integer .parseInt (adminId ),Integer .parseInt (hfId ),insureeId ,programId , diagnosisId , programCode );
234+ Log .i (TRACE_TAG , String .format (
235+ Locale .US ,
236+ "SYNC_TRACE session=%s event=CREATECLAIM_EXECUTE_END ts=%d thread=%s claimCode=%s claimUUID=%s status=%s durationMs=%d" ,
237+ syncSessionId , System .currentTimeMillis (), uploadThread , claim .getClaimNumber (), claimUUID ,
238+ status == STATUS_ERROR ? "ERROR" : "SUCCESS" ,
239+ System .currentTimeMillis () - createStartTs
240+ ));
188241 if (status == STATUS_ERROR ){
189242 result = new PostNewClaims .Result (claim .getClaimNumber (), PostNewClaims .Result .Status .ERROR , getResources ().getString (R .string .FailedToCreateClaim ));
190243 }else {
191244 result = new PostNewClaims .Result (claim .getClaimNumber (), PostNewClaims .Result .Status .SUCCESS , null );
192245 }
193246 } catch (HttpException e ){
247+ Log .i (TRACE_TAG , String .format (
248+ Locale .US ,
249+ "SYNC_TRACE session=%s event=CREATECLAIM_EXECUTE_ERROR ts=%d thread=%s claimCode=%s errorClass=%s" ,
250+ syncSessionId , System .currentTimeMillis (), uploadThread , claim .getClaimNumber (), e .getClass ().getSimpleName ()
251+ ));
194252 result = new PostNewClaims .Result (claim .getClaimNumber (), PostNewClaims .Result .Status .ERROR , getResources ().getString (R .string .SomethingWentWrongServer ));
195253 }
196254 results .add (result );
@@ -222,10 +280,20 @@ private void handleUploadClaims() {
222280 }
223281 }
224282 JSONArray claimStatus = processClaimResponse (results );
283+ Log .i (TRACE_TAG , String .format (
284+ Locale .US ,
285+ "SYNC_TRACE session=%s event=UPLOAD_END ts=%d thread=%s durationMs=%d messagesCount=%d" ,
286+ syncSessionId , System .currentTimeMillis (), uploadThread , System .currentTimeMillis () - uploadStartTs , claimStatus .length ()
287+ ));
225288 broadcastSyncSuccess (claimStatus );
226289 } catch (Exception e ) {
227290 e .printStackTrace ();
228291 Sentry .captureException (e );
292+ Log .i (TRACE_TAG , String .format (
293+ Locale .US ,
294+ "SYNC_TRACE session=%s event=UPLOAD_ERROR ts=%d thread=%s durationMs=%d errorClass=%s" ,
295+ syncSessionId , System .currentTimeMillis (), uploadThread , System .currentTimeMillis () - uploadStartTs , e .getClass ().getSimpleName ()
296+ ));
229297 broadcastError (getResources ().getString (R .string .ErrorOccurred ) + ": " + e .getMessage (), ACTION_UPLOAD_CLAIMS );
230298 }
231299 }
@@ -531,4 +599,4 @@ private void broadcastClaimCount(int entered, int accepted, int rejected) {
531599 sendBroadcast (resultIntent );
532600 Log .i (LOG_TAG , String .format (Locale .US , "%s finished with %s, result: p: %d,a: %d,r: %d" , ACTION_CLAIM_COUNT , ACTION_CLAIM_COUNT_RESULT , entered , accepted , rejected ));
533601 }
534- }
602+ }
0 commit comments