Fix possible infinite loop in test code
Also handle ResourceBusyException merge of http://go/wvgerrit/14470 from widevine repo bug: 21172957 Change-Id: I6815786eb7a678725cf2632f1009c7f566ba7499
This commit is contained in:
@@ -244,22 +244,25 @@ public class MediaDrmAPITest extends Activity {
|
||||
|
||||
private byte[] openSession(MediaDrm drm) {
|
||||
byte[] sessionId = null;
|
||||
boolean retryOpen;
|
||||
do {
|
||||
int retryCount = 3;
|
||||
while (--retryCount > 0) {
|
||||
try {
|
||||
retryOpen = false;
|
||||
sessionId = drm.openSession();
|
||||
break;
|
||||
} catch (NotProvisionedException e) {
|
||||
Log.i(TAG, "Missing certificate, provisioning");
|
||||
ProvisionRequester provisionRequester = new ProvisionRequester();
|
||||
provisionRequester.doTransact(drm);
|
||||
retryOpen = true;
|
||||
} catch (ResourceBusyException e) {
|
||||
Log.w(TAG, "Resource busy in openSession, retrying...");
|
||||
retryOpen = true;
|
||||
sleep(1000);
|
||||
}
|
||||
} while (retryOpen);
|
||||
}
|
||||
|
||||
if (retryCount == 0) {
|
||||
Log.e(TAG, "Failed to provision device");
|
||||
mTestFailed = true;
|
||||
}
|
||||
return sessionId;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user