Merge "ignore RemoteException from pm if shutdown is already on-going" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
cae7db3c9c
@@ -22,6 +22,7 @@ import android.os.IPowerManager;
|
|||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.ServiceManager;
|
import android.os.ServiceManager;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
|
import android.os.SystemProperties;
|
||||||
|
|
||||||
public class PowerCommand extends Svc.Command {
|
public class PowerCommand extends Svc.Command {
|
||||||
public PowerCommand() {
|
public PowerCommand() {
|
||||||
@@ -87,7 +88,7 @@ public class PowerCommand extends Svc.Command {
|
|||||||
// no confirm, wait till device is rebooted
|
// no confirm, wait till device is rebooted
|
||||||
pm.reboot(false, mode, true);
|
pm.reboot(false, mode, true);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
System.err.println("Failed to reboot.");
|
maybeLogRemoteException("Failed to reboot.");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
} else if ("shutdown".equals(args[1])) {
|
} else if ("shutdown".equals(args[1])) {
|
||||||
@@ -95,7 +96,7 @@ public class PowerCommand extends Svc.Command {
|
|||||||
// no confirm, wait till device is off
|
// no confirm, wait till device is off
|
||||||
pm.shutdown(false, null, true);
|
pm.shutdown(false, null, true);
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
System.err.println("Failed to shutdown.");
|
maybeLogRemoteException("Failed to shutdown.");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -103,4 +104,14 @@ public class PowerCommand extends Svc.Command {
|
|||||||
}
|
}
|
||||||
System.err.println(longHelp());
|
System.err.println(longHelp());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check if remote exception is benign during shutdown. Pm can be killed
|
||||||
|
// before system server during shutdown, so remote exception can be ignored
|
||||||
|
// if it is already in shutdown flow.
|
||||||
|
private void maybeLogRemoteException(String msg) {
|
||||||
|
String powerProp = SystemProperties.get("sys.powerctl");
|
||||||
|
if (powerProp.isEmpty()) {
|
||||||
|
System.err.println(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user