summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2010-06-06 07:10:22 -0400
committerSteve Kondik <shade@chemlab.org>2010-06-06 07:11:19 -0400
commitb17b2987d926fcf31d6072b6264aa739609022dd (patch)
tree3b6da68963403da696e702d2a10d5d05c3999097
parentf44c5efd3185f34a3340b14128e6128244dcf018 (diff)
downloadandroid_frameworks_base-b17b2987d926fcf31d6072b6264aa739609022dd.tar.gz
android_frameworks_base-b17b2987d926fcf31d6072b6264aa739609022dd.tar.bz2
android_frameworks_base-b17b2987d926fcf31d6072b6264aa739609022dd.zip
Avoid running past the end of the tokenizer.
-rw-r--r--services/java/com/android/server/ProcessStats.java29
1 files changed, 16 insertions, 13 deletions
diff --git a/services/java/com/android/server/ProcessStats.java b/services/java/com/android/server/ProcessStats.java
index ac3b7235447..a185d2860e4 100644
--- a/services/java/com/android/server/ProcessStats.java
+++ b/services/java/com/android/server/ProcessStats.java
@@ -514,20 +514,23 @@ public class ProcessStats {
StringTokenizer st = new StringTokenizer(file, "\n ");
while (st.hasMoreElements()) {
String token = st.nextToken();
- try {
- long val = Long.parseLong(token);
- tempSpeeds[speed] = val;
- token = st.nextToken();
- val = Long.parseLong(token);
- tempTimes[speed] = val;
- speed++;
- if (speed == MAX_SPEEDS) break; // No more
- if (localLOGV && out == null) {
- Log.v(TAG, "First time : Speed/Time = " + tempSpeeds[speed - 1]
- + "\t" + tempTimes[speed - 1]);
+ if (st.hasMoreElements()) {
+ try {
+
+ long val = Long.parseLong(token);
+ tempSpeeds[speed] = val;
+ token = st.nextToken();
+ val = Long.parseLong(token);
+ tempTimes[speed] = val;
+ speed++;
+ if (speed == MAX_SPEEDS) break; // No more
+ if (localLOGV && out == null) {
+ Log.v(TAG, "First time : Speed/Time = " + tempSpeeds[speed - 1]
+ + "\t" + tempTimes[speed - 1]);
+ }
+ } catch (NumberFormatException nfe) {
+ Log.i(TAG, "Unable to parse time_in_state");
}
- } catch (NumberFormatException nfe) {
- Log.i(TAG, "Unable to parse time_in_state");
}
}
}