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:
Jeff Tinker
2015-05-27 16:45:36 -07:00
parent 997ea4f447
commit 92bf971ea8
3 changed files with 29 additions and 12 deletions

View File

@@ -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;
}