Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb13c764 authored by Jeff Tinker's avatar Jeff Tinker
Browse files

Fix exception on MediaDrm invalid property access

Accessing an invalid MediaDrm property would result in
an IllegalStateException.  This change causes
IllegalArgumentException to be thrown instead, which
is more appropriate.

Test: android.media.cts.ClearKeySystemTest passes
  and it fails prior to this CL.

bug:68765217
Change-Id: I858575dc8fe643a88381da49b543c5cc0d266e02
parent 35c1a5d5
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -994,7 +994,6 @@ public final class MediaDrm {
     * {@link #PROPERTY_VENDOR}, {@link #PROPERTY_VERSION},
     * {@link #PROPERTY_DESCRIPTION}, {@link #PROPERTY_ALGORITHMS}
     */
    /* FIXME this throws IllegalStateException for invalid property names */
    @NonNull
    public native String getPropertyString(@NonNull @StringProperty String propertyName);

@@ -1002,7 +1001,6 @@ public final class MediaDrm {
     * Byte array property name: the device unique identifier is established during
     * device provisioning and provides a means of uniquely identifying each device.
     */
    /* FIXME this throws IllegalStateException for invalid property names */
    public static final String PROPERTY_DEVICE_UNIQUE_ID = "deviceUniqueId";

    /** @hide */
+2 −2
Original line number Diff line number Diff line
@@ -282,7 +282,7 @@ static bool throwExceptionAsNecessary(
        drmMessage = "Decrypt error";
        break;
    case ERROR_DRM_CANNOT_HANDLE:
        drmMessage = "Unsupported scheme or data format";
        drmMessage = "Invalid parameter or data format";
        break;
    case ERROR_DRM_TAMPER_DETECTED:
        drmMessage = "Invalid state";
@@ -297,7 +297,7 @@ static bool throwExceptionAsNecessary(
        drmMessage = vendorMessage.string();
    }

    if (err == BAD_VALUE) {
    if (err == BAD_VALUE || err == ERROR_DRM_CANNOT_HANDLE) {
        jniThrowException(env, "java/lang/IllegalArgumentException", msg);
        return true;
    } else if (err == ERROR_DRM_NOT_PROVISIONED) {