OSDN Git Service

batteryservice: Avoid exception if device doesn't support HVDCP
authorMichael Bestas <mikeioannina@cyanogenmod.org>
Fri, 22 Jan 2016 18:53:09 +0000 (20:53 +0200)
committerSteve Kondik <shade@chemlab.org>
Wed, 5 Oct 2016 09:22:34 +0000 (02:22 -0700)
E BatteryService: Failure in reading charger type
E BatteryService: java.io.FileNotFoundException: /sys/class/power_supply/usb/type: open failed: ENOENT (No such file or directory)
E BatteryService:  at libcore.io.IoBridge.open(IoBridge.java:452)
E BatteryService:  at java.io.FileInputStream.<init>(FileInputStream.java:76)
E BatteryService:  at java.io.FileReader.<init>(FileReader.java:42)
E BatteryService:  at com.android.server.BatteryService$Led.isHvdcpPresent(BatteryService.java:792)
E BatteryService:  at com.android.server.BatteryService$Led.updateLightsLocked(BatteryService.java:849)
E BatteryService:  at com.android.server.BatteryService.processValuesLocked(BatteryService.java:501)
E BatteryService:  at com.android.server.BatteryService.update(BatteryService.java:330)
E BatteryService:  at com.android.server.BatteryService.-wrap4(BatteryService.java)
E BatteryService:  at com.android.server.BatteryService$BatteryListener.batteryPropertiesChanged(BatteryService.java:870)
E BatteryService:  at android.os.IBatteryPropertiesListener$Stub.onTransact(IBatteryPropertiesListener.java:58)
E BatteryService:  at android.os.Binder.execTransact(Binder.java:453)
E BatteryService: Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
E BatteryService:  at libcore.io.Posix.open(Native Method)
E BatteryService:  at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
E BatteryService:  at libcore.io.IoBridge.open(IoBridge.java:438)
E BatteryService:  ... 10 more

Change-Id: I3ed4d8959a7e492e483fab365cf09612b5302908
(cherry picked from commit 64deb448b8ac50587bc90e3506e639e4e1a066ed)

services/core/java/com/android/server/BatteryService.java

index e660425..2bcd708 100644 (file)
@@ -53,7 +53,6 @@ import android.os.UserHandle;
 import android.provider.Settings;
 import android.util.EventLog;
 import android.util.Slog;
-import cyanogenmod.providers.CMSettings;
 
 import java.io.File;
 import java.io.FileDescriptor;
@@ -62,7 +61,6 @@ import java.io.FileReader;
 import java.io.BufferedInputStream;
 import java.io.BufferedReader;
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.PrintWriter;
 
@@ -974,7 +972,12 @@ public final class BatteryService extends SystemService {
             FileReader fileReader;
             BufferedReader br;
             String type;
-            boolean ret;
+            boolean ret = false;
+
+            if (!mChargerTypeFile.exists()) {
+                // Device does not support HVDCP
+                return ret;
+            }
 
             try {
                 fileReader = new FileReader(mChargerTypeFile);
@@ -982,15 +985,9 @@ public final class BatteryService extends SystemService {
                 type =  br.readLine();
                 if (type.regionMatches(true, 0, "USB_HVDCP", 0, 9))
                     ret = true;
-                else
-                    ret = false;
                 br.close();
                 fileReader.close();
-            } catch (FileNotFoundException e) {
-                ret = false;
-                Slog.e(TAG, "Failure in reading charger type", e);
             } catch (IOException e) {
-                ret = false;
                 Slog.e(TAG, "Failure in reading charger type", e);
             }