diff options
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/app/ActivityThread.java | 2 | ||||
-rw-r--r-- | core/java/android/app/Fragment.java | 9 | ||||
-rw-r--r-- | core/java/android/app/FragmentManager.java | 4 | ||||
-rw-r--r-- | core/java/android/app/FragmentTransaction.java | 2 | ||||
-rw-r--r-- | core/java/android/net/LocalSocket.java | 2 | ||||
-rw-r--r-- | core/java/android/os/Build.java | 3 | ||||
-rw-r--r-- | core/java/android/provider/DocumentsProvider.java | 2 | ||||
-rw-r--r-- | core/java/android/text/Html.java | 2 | ||||
-rw-r--r-- | core/java/android/text/TextUtils.java | 9 | ||||
-rw-r--r-- | core/java/android/view/ViewGroup.java | 8 | ||||
-rw-r--r-- | core/java/android/webkit/WebView.java | 2 | ||||
-rw-r--r-- | core/java/android/widget/AbsListView.java | 4 | ||||
-rw-r--r-- | core/java/com/android/internal/app/ExternalMediaFormatActivity.java | 5 | ||||
-rw-r--r-- | core/java/com/android/internal/os/Zygote.java | 21 | ||||
-rw-r--r-- | core/java/com/android/internal/os/ZygoteConnection.java | 34 | ||||
-rw-r--r-- | core/java/com/android/internal/os/ZygoteInit.java | 70 |
16 files changed, 37 insertions, 142 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index dd49009..17a31f3 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -1943,7 +1943,7 @@ public final class ActivityThread { if (dumpFullInfo) { printRow(pw, HEAP_FULL_COLUMN, "", "Pss", "Pss", "Shared", "Private", "Shared", "Private", "Swapped", "Heap", "Heap", "Heap"); - printRow(pw, HEAP_FULL_COLUMN, "", "Total", "Clean", "Dirty", "", + printRow(pw, HEAP_FULL_COLUMN, "", "Total", "Clean", "Dirty", "Dirty", "Clean", "Clean", "Dirty", "Size", "Alloc", "Free"); printRow(pw, HEAP_FULL_COLUMN, "", "------", "------", "------", "------", "------", "------", "------", "------", "------", "------"); diff --git a/core/java/android/app/Fragment.java b/core/java/android/app/Fragment.java index 5196834..c49012b 100644 --- a/core/java/android/app/Fragment.java +++ b/core/java/android/app/Fragment.java @@ -219,8 +219,8 @@ final class FragmentState implements Parcelable { * state of its view hierarchy has been restored. * <li> {@link #onStart} makes the fragment visible to the user (based on its * containing activity being started). - * <li> {@link #onResume} makes the fragment interacting with the user (based on its - * containing activity being resumed). + * <li> {@link #onResume} makes the fragment begin interacting with the user + * (based on its containing activity being resumed). * </ol> * * <p>As a fragment is no longer being used, it goes through a reverse @@ -564,7 +564,7 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene * and later retrieved by the Fragment with {@link #getArguments}. * * <p>Applications should generally not implement a constructor. The - * first place application code an run where the fragment is ready to + * first place application code can run where the fragment is ready to * be used is in {@link #onAttach(Activity)}, the point where the fragment * is actually associated with its activity. Some applications may also * want to implement {@link #onInflate} to retrieve attributes from a @@ -720,8 +720,7 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene } /** - * Return the arguments supplied when the fragment was instantiated, - * if any. + * Return the arguments supplied to {@link #setArguments}, if any. */ final public Bundle getArguments() { return mArguments; diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java index fc761fe..ccceef4 100644 --- a/core/java/android/app/FragmentManager.java +++ b/core/java/android/app/FragmentManager.java @@ -70,7 +70,7 @@ public abstract class FragmentManager { * with {@link FragmentTransaction#addToBackStack(String) * FragmentTransaction.addToBackStack()}. Entries can later be * retrieved with {@link FragmentManager#getBackStackEntryAt(int) - * FragmentManager.getBackStackEntry()}. + * FragmentManager.getBackStackEntryAt()}. * * <p>Note that you should never hold on to a BackStackEntry object; * the identifier as returned by {@link #getId} is the only thing that @@ -260,7 +260,7 @@ public abstract class FragmentManager { /** * Return the BackStackEntry at index <var>index</var> in the back stack; - * entries start index 0 being the bottom of the stack. + * where the item on the bottom of the stack has index 0. */ public abstract BackStackEntry getBackStackEntryAt(int index); diff --git a/core/java/android/app/FragmentTransaction.java b/core/java/android/app/FragmentTransaction.java index 25cd3cc..dc7075c 100644 --- a/core/java/android/app/FragmentTransaction.java +++ b/core/java/android/app/FragmentTransaction.java @@ -26,7 +26,7 @@ public abstract class FragmentTransaction { /** * Add a fragment to the activity state. This fragment may optionally * also have its view (if {@link Fragment#onCreateView Fragment.onCreateView} - * returns non-null) into a container view of the activity. + * returns non-null) inserted into a container view of the activity. * * @param containerViewId Optional identifier of the container this fragment is * to be placed in. If 0, it will not be placed in a container. diff --git a/core/java/android/net/LocalSocket.java b/core/java/android/net/LocalSocket.java index 31bc20b..a374a86 100644 --- a/core/java/android/net/LocalSocket.java +++ b/core/java/android/net/LocalSocket.java @@ -29,7 +29,7 @@ import java.net.SocketOptions; */ public class LocalSocket implements Closeable { - private LocalSocketImpl impl; + private final LocalSocketImpl impl; private volatile boolean implCreated; private LocalSocketAddress localAddress; private boolean isBound; diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java index 5f95b04..09b0a8b 100644 --- a/core/java/android/os/Build.java +++ b/core/java/android/os/Build.java @@ -515,7 +515,8 @@ public class Build { * <p>Applications targeting this or a later release will get these * new changes in behavior:</p> * <ul> - * <li> The default result of {android.preference.PreferenceActivity#isValidFragment + * <li> The default result of + * {@link android.preference.PreferenceActivity#isValidFragment(String) * PreferenceActivity.isValueFragment} becomes false instead of true.</li> * <li> In {@link android.webkit.WebView}, apps targeting earlier versions will have * JS URLs evaluated directly and any result of the evaluation will not replace diff --git a/core/java/android/provider/DocumentsProvider.java b/core/java/android/provider/DocumentsProvider.java index 270d786..932e873 100644 --- a/core/java/android/provider/DocumentsProvider.java +++ b/core/java/android/provider/DocumentsProvider.java @@ -355,7 +355,7 @@ public abstract class DocumentsProvider extends ContentProvider { } /** - * Return documents that that match the given query under the requested + * Return documents that match the given query under the requested * root. The returned documents should be sorted by relevance in descending * order. How documents are matched against the query string is an * implementation detail left to each provider, but it's suggested that at diff --git a/core/java/android/text/Html.java b/core/java/android/text/Html.java index 2fcc597..dc93bc2 100644 --- a/core/java/android/text/Html.java +++ b/core/java/android/text/Html.java @@ -61,7 +61,7 @@ public class Html { */ public static interface ImageGetter { /** - * This methos is called when the HTML parser encounters an + * This method is called when the HTML parser encounters an * <img> tag. The <code>source</code> argument is the * string from the "src" attribute; the return value should be * a Drawable representation of the image or <code>null</code> diff --git a/core/java/android/text/TextUtils.java b/core/java/android/text/TextUtils.java index 3502b52..8a8c6d8 100644 --- a/core/java/android/text/TextUtils.java +++ b/core/java/android/text/TextUtils.java @@ -63,6 +63,8 @@ import java.util.regex.Pattern; public class TextUtils { private static final String TAG = "TextUtils"; + private static final String ELLIPSIS = new String(Layout.ELLIPSIS_NORMAL); + private static final String ELLIPSIS_TWO_DOTS = new String(Layout.ELLIPSIS_TWO_DOTS); private TextUtils() { /* cannot be instantiated */ } @@ -1081,14 +1083,9 @@ public class TextUtils { float avail, TruncateAt where, boolean preserveLength, EllipsizeCallback callback) { - - final String ellipsis = (where == TruncateAt.END_SMALL) ? - Resources.getSystem().getString(R.string.ellipsis_two_dots) : - Resources.getSystem().getString(R.string.ellipsis); - return ellipsize(text, paint, avail, where, preserveLength, callback, TextDirectionHeuristics.FIRSTSTRONG_LTR, - ellipsis); + (where == TruncateAt.END_SMALL) ? ELLIPSIS_TWO_DOTS : ELLIPSIS); } /** diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index b586caa..d652354 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -6327,8 +6327,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager /** * Information about how wide the view wants to be. Can be one of the - * constants FILL_PARENT (replaced by MATCH_PARENT , - * in API Level 8) or WRAP_CONTENT. or an exact size. + * constants FILL_PARENT (replaced by MATCH_PARENT + * in API Level 8) or WRAP_CONTENT, or an exact size. */ @ViewDebug.ExportedProperty(category = "layout", mapping = { @ViewDebug.IntToString(from = MATCH_PARENT, to = "MATCH_PARENT"), @@ -6338,8 +6338,8 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager /** * Information about how tall the view wants to be. Can be one of the - * constants FILL_PARENT (replaced by MATCH_PARENT , - * in API Level 8) or WRAP_CONTENT. or an exact size. + * constants FILL_PARENT (replaced by MATCH_PARENT + * in API Level 8) or WRAP_CONTENT, or an exact size. */ @ViewDebug.ExportedProperty(category = "layout", mapping = { @ViewDebug.IntToString(from = MATCH_PARENT, to = "MATCH_PARENT"), diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 22ee6be..172a7d9 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -2135,7 +2135,7 @@ public class WebView extends AbsoluteLayout /** * In addition to the FindListener that the user may set via the WebView.setFindListener * API, FindActionModeCallback will register it's own FindListener. We keep them separate - * via this class so that that the two FindListeners can potentially exist at once. + * via this class so that the two FindListeners can potentially exist at once. */ private class FindListenerDistributor implements FindListener { private FindListener mFindDialogFindListener; diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index 0439168..6a34c80 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -2392,7 +2392,9 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te lp.itemId = mAdapter.getItemId(position); } lp.viewType = mAdapter.getItemViewType(position); - child.setLayoutParams(lp); + if (lp != vlp) { + child.setLayoutParams(lp); + } } class ListItemAccessibilityDelegate extends AccessibilityDelegate { diff --git a/core/java/com/android/internal/app/ExternalMediaFormatActivity.java b/core/java/com/android/internal/app/ExternalMediaFormatActivity.java index 6ed3bdc..fc213c5 100644 --- a/core/java/com/android/internal/app/ExternalMediaFormatActivity.java +++ b/core/java/com/android/internal/app/ExternalMediaFormatActivity.java @@ -25,6 +25,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; +import android.os.storage.StorageVolume; import android.util.Log; /** @@ -94,6 +95,10 @@ public class ExternalMediaFormatActivity extends AlertActivity implements Dialog if (which == POSITIVE_BUTTON) { Intent intent = new Intent(ExternalStorageFormatter.FORMAT_ONLY); intent.setComponent(ExternalStorageFormatter.COMPONENT_NAME); + // Transfer the storage volume to the new intent + final StorageVolume storageVolume = getIntent().getParcelableExtra( + StorageVolume.EXTRA_STORAGE_VOLUME); + intent.putExtra(StorageVolume.EXTRA_STORAGE_VOLUME, storageVolume); startService(intent); } diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java index cca340c..fced092 100644 --- a/core/java/com/android/internal/os/Zygote.java +++ b/core/java/com/android/internal/os/Zygote.java @@ -20,12 +20,9 @@ package com.android.internal.os; import dalvik.system.ZygoteHooks; import android.system.ErrnoException; import android.system.Os; -import android.os.SystemClock; -import android.util.Slog; /** @hide */ public final class Zygote { - private static final String TAG = "Zygote"; /* * Bit values for "debugFlags" argument. The definitions are duplicated * in the native code. @@ -87,15 +84,11 @@ public final class Zygote { public static int forkAndSpecialize(int uid, int gid, int[] gids, int debugFlags, int[][] rlimits, int mountExternal, String seInfo, String niceName, int[] fdsToClose, String instructionSet, String appDataDir) { - long startTime = SystemClock.elapsedRealtime(); VM_HOOKS.preFork(); - checkTime(startTime, "Zygote.preFork"); int pid = nativeForkAndSpecialize( uid, gid, gids, debugFlags, rlimits, mountExternal, seInfo, niceName, fdsToClose, instructionSet, appDataDir); - checkTime(startTime, "Zygote.nativeForkAndSpecialize"); VM_HOOKS.postForkCommon(); - checkTime(startTime, "Zygote.postForkCommon"); return pid; } @@ -104,18 +97,6 @@ public final class Zygote { String instructionSet, String appDataDir); /** - * Temporary hack: check time since start time and log if over a fixed threshold. - * - */ - private static void checkTime(long startTime, String where) { - long now = SystemClock.elapsedRealtime(); - if ((now-startTime) > 1000) { - // If we are taking more than a second, log about it. - Slog.w(TAG, "Slow operation: " + (now-startTime) + "ms so far, now at " + where); - } - } - - /** * Special method to start the system server process. In addition to the * common actions performed in forkAndSpecialize, the pid of the child * process is recorded such that the death of the child process will cause @@ -151,9 +132,7 @@ public final class Zygote { int[][] rlimits, long permittedCapabilities, long effectiveCapabilities); private static void callPostForkChildHooks(int debugFlags, String instructionSet) { - long startTime = SystemClock.elapsedRealtime(); VM_HOOKS.postForkChild(debugFlags, instructionSet); - checkTime(startTime, "Zygote.callPostForkChildHooks"); } diff --git a/core/java/com/android/internal/os/ZygoteConnection.java b/core/java/com/android/internal/os/ZygoteConnection.java index 2ef8a20..24820bc 100644 --- a/core/java/com/android/internal/os/ZygoteConnection.java +++ b/core/java/com/android/internal/os/ZygoteConnection.java @@ -37,8 +37,6 @@ import java.io.PrintStream; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import libcore.io.IoUtils; -import android.os.SystemClock; -import android.util.Slog; /** * A connection that can make spawn requests. @@ -93,7 +91,7 @@ class ZygoteConnection { new InputStreamReader(socket.getInputStream()), 256); mSocket.setSoTimeout(CONNECTION_TIMEOUT_MILLIS); - + try { peer = mSocket.getPeerCredentials(); } catch (IOException ex) { @@ -105,23 +103,11 @@ class ZygoteConnection { } /** - * Temporary hack: check time since start time and log if over a fixed threshold. - * - */ - private void checkTime(long startTime, String where) { - long now = SystemClock.elapsedRealtime(); - if ((now-startTime) > 1000) { - // If we are taking more than a second, log about it. - Slog.w(TAG, "Slow operation: " + (now-startTime) + "ms so far, now at " + where); - } - } - - /** * Returns the file descriptor of the associated socket. * * @return null-ok; file descriptor */ - FileDescriptor getFileDescriptor() { + FileDescriptor getFileDesciptor() { return mSocket.getFileDescriptor(); } @@ -145,8 +131,6 @@ class ZygoteConnection { Arguments parsedArgs = null; FileDescriptor[] descriptors; - long startTime = SystemClock.elapsedRealtime(); - try { args = readArgumentList(); descriptors = mSocket.getAncillaryFileDescriptors(); @@ -156,7 +140,6 @@ class ZygoteConnection { return true; } - checkTime(startTime, "zygoteConnection.runOnce: readArgumentList"); if (args == null) { // EOF reached. closeSocket(); @@ -188,19 +171,14 @@ class ZygoteConnection { ", effective=0x" + Long.toHexString(parsedArgs.effectiveCapabilities)); } - applyUidSecurityPolicy(parsedArgs, peer, peerSecurityContext); applyRlimitSecurityPolicy(parsedArgs, peer, peerSecurityContext); applyInvokeWithSecurityPolicy(parsedArgs, peer, peerSecurityContext); applyseInfoSecurityPolicy(parsedArgs, peer, peerSecurityContext); - checkTime(startTime, "zygoteConnection.runOnce: apply security policies"); - applyDebuggerSystemProperty(parsedArgs); applyInvokeWithSystemProperty(parsedArgs); - checkTime(startTime, "zygoteConnection.runOnce: apply security policies"); - int[][] rlimits = null; if (parsedArgs.rlimits != null) { @@ -242,12 +220,10 @@ class ZygoteConnection { fd = null; - checkTime(startTime, "zygoteConnection.runOnce: preForkAndSpecialize"); pid = Zygote.forkAndSpecialize(parsedArgs.uid, parsedArgs.gid, parsedArgs.gids, parsedArgs.debugFlags, rlimits, parsedArgs.mountExternal, parsedArgs.seInfo, parsedArgs.niceName, fdsToClose, parsedArgs.instructionSet, parsedArgs.appDataDir); - checkTime(startTime, "zygoteConnection.runOnce: postForkAndSpecialize"); } catch (IOException ex) { logAndPrintError(newStderr, "Exception creating pipe", ex); } catch (ErrnoException ex) { @@ -620,7 +596,7 @@ class ZygoteConnection { } // See bug 1092107: large argc can be used for a DOS attack - if (argc > MAX_ZYGOTE_ARGC) { + if (argc > MAX_ZYGOTE_ARGC) { throw new IOException("max arg count exceeded"); } @@ -637,7 +613,7 @@ class ZygoteConnection { } /** - * Applies zygote security policy per bugs #875058 and #1082165. + * Applies zygote security policy per bugs #875058 and #1082165. * Based on the credentials of the process issuing a zygote command: * <ol> * <li> uid 0 (root) may specify any uid, gid, and setgroups() list @@ -668,7 +644,7 @@ class ZygoteConnection { /* In normal operation, SYSTEM_UID can only specify a restricted * set of UIDs. In factory test mode, SYSTEM_UID may specify any uid. */ - uidRestricted + uidRestricted = !(factoryTest.equals("1") || factoryTest.equals("2")); if (uidRestricted diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java index 4dde217..46850da 100644 --- a/core/java/com/android/internal/os/ZygoteInit.java +++ b/core/java/com/android/internal/os/ZygoteInit.java @@ -91,12 +91,6 @@ public class ZygoteInit { private static Resources mResources; /** - * The number of times that the main Zygote loop - * should run before calling gc() again. - */ - static final int GC_LOOP_COUNT = 10; - - /** * The name of a resource file that contains classes to preload. */ private static final String PRELOADED_CLASSES = "preloaded-classes"; @@ -301,11 +295,6 @@ public class ZygoteInit { float defaultUtilization = runtime.getTargetHeapUtilization(); runtime.setTargetHeapUtilization(0.8f); - // Start with a clean slate. - System.gc(); - runtime.runFinalizationSync(); - Debug.startAllocCounting(); - try { BufferedReader br = new BufferedReader(new InputStreamReader(is), 256); @@ -324,15 +313,6 @@ public class ZygoteInit { Log.v(TAG, "Preloading " + line + "..."); } Class.forName(line); - if (Debug.getGlobalAllocSize() > PRELOAD_GC_THRESHOLD) { - if (false) { - Log.v(TAG, - " GC at " + Debug.getGlobalAllocSize()); - } - System.gc(); - runtime.runFinalizationSync(); - Debug.resetGlobalAllocSize(); - } count++; } catch (ClassNotFoundException e) { Log.w(TAG, "Class not found for preloading: " + line); @@ -362,8 +342,6 @@ public class ZygoteInit { // Fill in dex caches with classes, fields, and methods brought in by preloading. runtime.preloadDexCaches(); - Debug.stopAllocCounting(); - // Bring back root. We'll need it later. setEffectiveUser(ROOT_UID); setEffectiveGroup(ROOT_GID); @@ -381,10 +359,7 @@ public class ZygoteInit { private static void preloadResources() { final VMRuntime runtime = VMRuntime.getRuntime(); - Debug.startAllocCounting(); try { - System.gc(); - runtime.runFinalizationSync(); mResources = Resources.getSystem(); mResources.startPreloading(); if (PRELOAD_RESOURCES) { @@ -409,22 +384,12 @@ public class ZygoteInit { mResources.finishPreloading(); } catch (RuntimeException e) { Log.w(TAG, "Failure preloading resources", e); - } finally { - Debug.stopAllocCounting(); } } private static int preloadColorStateLists(VMRuntime runtime, TypedArray ar) { int N = ar.length(); for (int i=0; i<N; i++) { - if (Debug.getGlobalAllocSize() > PRELOAD_GC_THRESHOLD) { - if (false) { - Log.v(TAG, " GC at " + Debug.getGlobalAllocSize()); - } - System.gc(); - runtime.runFinalizationSync(); - Debug.resetGlobalAllocSize(); - } int id = ar.getResourceId(i, 0); if (false) { Log.v(TAG, "Preloading resource #" + Integer.toHexString(id)); @@ -445,14 +410,6 @@ public class ZygoteInit { private static int preloadDrawables(VMRuntime runtime, TypedArray ar) { int N = ar.length(); for (int i=0; i<N; i++) { - if (Debug.getGlobalAllocSize() > PRELOAD_GC_THRESHOLD) { - if (false) { - Log.v(TAG, " GC at " + Debug.getGlobalAllocSize()); - } - System.gc(); - runtime.runFinalizationSync(); - Debug.resetGlobalAllocSize(); - } int id = ar.getResourceId(i, 0); if (false) { Log.v(TAG, "Preloading resource #" + Integer.toHexString(id)); @@ -474,7 +431,7 @@ public class ZygoteInit { * softly- and final-reachable objects, along with any other garbage. * This is only useful just before a fork(). */ - /*package*/ static void gc() { + /*package*/ static void gcAndFinalize() { final VMRuntime runtime = VMRuntime.getRuntime(); /* runFinalizationSync() lets finalizers be called in Zygote, @@ -483,9 +440,6 @@ public class ZygoteInit { System.gc(); runtime.runFinalizationSync(); System.gc(); - runtime.runFinalizationSync(); - System.gc(); - runtime.runFinalizationSync(); } /** @@ -676,7 +630,7 @@ public class ZygoteInit { SamplingProfilerIntegration.writeZygoteSnapshot(); // Do an initial gc to clean up after startup - gc(); + gcAndFinalize(); // Disable tracing so that forked processes do not inherit stale tracing tags from // Zygote. @@ -745,27 +699,9 @@ public class ZygoteInit { fds.add(sServerSocket.getFileDescriptor()); peers.add(null); - int loopCount = GC_LOOP_COUNT; while (true) { int index; - /* - * Call gc() before we block in select(). - * It's work that has to be done anyway, and it's better - * to avoid making every child do it. It will also - * madvise() any free memory as a side-effect. - * - * Don't call it every time, because walking the entire - * heap is a lot of overhead to free a few hundred bytes. - */ - if (loopCount <= 0) { - gc(); - loopCount = GC_LOOP_COUNT; - } else { - loopCount--; - } - - try { fdArray = fds.toArray(fdArray); index = selectReadable(fdArray); @@ -778,7 +714,7 @@ public class ZygoteInit { } else if (index == 0) { ZygoteConnection newPeer = acceptCommandPeer(abiList); peers.add(newPeer); - fds.add(newPeer.getFileDescriptor()); + fds.add(newPeer.getFileDesciptor()); } else { boolean done; done = peers.get(index).runOnce(); |