Skip to content

Commit 2cfa431

Browse files
Supply a reason for CDS error reporting.
1 parent fe4068a commit 2cfa431

File tree

2 files changed

+31
-6
lines changed

2 files changed

+31
-6
lines changed

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ dependencies {
8989
compile 'com.google.android.exoplayer:exoplayer-core:2.9.1'
9090
compile 'com.google.android.exoplayer:exoplayer-ui:2.9.1'
9191

92-
compile 'org.whispersystems:signal-service-android:2.12.7'
92+
compile 'org.whispersystems:signal-service-android:2.12.8'
9393
compile 'org.whispersystems:webrtc-android:M72-S2'
9494

9595
compile "me.leolin:ShortcutBadger:1.1.16"
@@ -187,7 +187,7 @@ dependencyVerification {
187187
'com.google.android.gms:play-services-auth:aec9e1c584d442cb9f59481a50b2c66dc191872607c04d97ecb82dd0eb5149ec',
188188
'com.google.android.exoplayer:exoplayer-ui:7a942afcc402ff01e9bf48e8d3942850986710f06562d50a1408aaf04a683151',
189189
'com.google.android.exoplayer:exoplayer-core:b6ab34abac36bc2bc6934b7a50008162feca2c0fde91aaf1e8c1c22f2c16e2c0',
190-
'org.whispersystems:signal-service-android:0afd2cb17ed920611dacc54385f3ed375847c10ecd7839a025d9c61c387f7678',
190+
'org.whispersystems:signal-service-android:68a349a9e05089f33ab5a9b9fc330526f59d31e8385ff9f5b70bc4a88bd0e297',
191191
'org.whispersystems:webrtc-android:6b0a7e11c8d63e9a7ea523cd219247cf23e2919ce3411e7cd51e0f4446031597',
192192
'me.leolin:ShortcutBadger:e3cb3e7625892129b0c92dd5e4bc649faffdd526d5af26d9c45ee31ff8851774',
193193
'se.emilsjolander:stickylistheaders:a08ca948aa6b220f09d82f16bbbac395f6b78897e9eeac6a9f0b0ba755928eeb',
@@ -268,7 +268,7 @@ dependencyVerification {
268268
'com.android.support.constraint:constraint-layout-solver:2cafbe356f71c208013d021f32943904798cd6459e5107f9fe27000eb5bc2aef',
269269
'com.google.guava:listenablefuture:e4ad7607e5c0477c6f890ef26a49cb8d1bb4dffb650bab4502afee64644e3069',
270270
'org.signal:signal-metadata-android:d9d798aab7ee7200373ecff8718baf8aaeb632c123604e8a41b7b4c0c97eeee1',
271-
'org.whispersystems:signal-service-java:9573395fe0b514cff10b8166f44de00a98682e0822a2b8204e9b9e696d53cb90',
271+
'org.whispersystems:signal-service-java:fde1a008fe42ebbf1cd35018b363135cd8fec9e690304f8917b5ffb7080fa2a5',
272272
'com.github.bumptech.glide:disklrucache:c1b1b6f5bbd01e2fcdc9d7f60913c8d338bdb65ed4a93bfa02b56f19daaade4b',
273273
'com.github.bumptech.glide:annotations:bede99ef9f71517a4274bac18fd3e483e9f2b6108d7d6fe8f4949be4aa4d9512',
274274
'com.nineoldandroids:library:68025a14e3e7673d6ad2f95e4b46d78d7d068343aa99256b686fe59de1b3163a',

src/org/thoughtcrime/securesms/util/DirectoryHelper.java

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import android.os.RemoteException;
1313
import android.provider.ContactsContract;
1414
import android.support.annotation.NonNull;
15+
import android.support.annotation.Nullable;
1516
import android.text.TextUtils;
1617
import org.thoughtcrime.securesms.logging.Log;
1718

@@ -53,6 +54,7 @@
5354
import java.security.SignatureException;
5455
import java.security.cert.CertificateException;
5556
import java.util.ArrayList;
57+
import java.util.Arrays;
5658
import java.util.Calendar;
5759
import java.util.Collections;
5860
import java.util.HashSet;
@@ -402,19 +404,19 @@ private static Optional<Set<String>> executeAndMergeContactDiscoveryRequests(@No
402404
}
403405
} catch (InterruptedException e) {
404406
Log.w(TAG, "Contact discovery batch was interrupted.", e);
405-
accountManager.reportContactDiscoveryServiceUnexpectedError();
407+
accountManager.reportContactDiscoveryServiceUnexpectedError(buildErrorReason(e));
406408
return Optional.absent();
407409
} catch (ExecutionException e) {
408410
if (isAttestationError(e.getCause())) {
409411
Log.w(TAG, "Failed during attestation.", e);
410-
accountManager.reportContactDiscoveryServiceAttestationError();
412+
accountManager.reportContactDiscoveryServiceAttestationError(buildErrorReason(e.getCause()));
411413
return Optional.absent();
412414
} else if (e.getCause() instanceof PushNetworkException) {
413415
Log.w(TAG, "Failed due to poor network.", e);
414416
return Optional.absent();
415417
} else {
416418
Log.w(TAG, "Failed for an unknown reason.", e);
417-
accountManager.reportContactDiscoveryServiceUnexpectedError();
419+
accountManager.reportContactDiscoveryServiceUnexpectedError(buildErrorReason(e.getCause()));
418420
return Optional.absent();
419421
}
420422
}
@@ -441,6 +443,29 @@ private static KeyStore getIasKeyStore(@NonNull Context context)
441443
return keyStore;
442444
}
443445

446+
private static String buildErrorReason(@Nullable Throwable t) {
447+
if (t == null) {
448+
return "null";
449+
}
450+
451+
String rawString = android.util.Log.getStackTraceString(t);
452+
List<String> lines = Arrays.asList(rawString.split("\\n"));
453+
454+
String errorString;
455+
456+
if (lines.size() > 1) {
457+
errorString = t.getClass().getName() + "\n" + Util.join(lines.subList(1, lines.size()), "\n");
458+
} else {
459+
errorString = t.getClass().getName();
460+
}
461+
462+
if (errorString.length() > 1000) {
463+
return errorString.substring(0, 1000);
464+
} else {
465+
return errorString;
466+
}
467+
}
468+
444469
private static class DirectoryResult {
445470

446471
private final Set<String> numbers;

0 commit comments

Comments
 (0)