Merge "ignore RemoteException from pm if shutdown is already on-going" into oc-dev

am: cae7db3c9c

Change-Id: I181bce3b7e3defd37db9d4ad04f46d41fcd93559
This commit is contained in:
Keun-young Park
2017-04-11 01:56:35 +00:00
committed by android-build-merger

View File

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