Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 898bfbd8 authored by Steve Block's avatar Steve Block
Browse files

Prevent DumpRenderTree2 from crashing when the host server is not running

Bug: 3010758
Change-Id: I04a01634544d223d225b264827d3cf18be74e1e0
parent 5c23ebad
Loading
Loading
Loading
Loading
+5 −10
Original line number Diff line number Diff line
@@ -40,15 +40,10 @@ public class AdbUtils {
     * remote machine. This can be achieved by calling configureSocket()
     *
     * @return a socket that can be configured to link to remote machine
     * @throws IOException
     */
    public static Socket createSocket() {
        Socket socket = null;
        try {
            socket = new Socket(ADB_HOST, ADB_PORT);
        } catch (IOException e) {
            Log.e(LOG_TAG, "Creation failed.", e);
        }
        return socket;
    public static Socket createSocket() throws IOException{
        return new Socket(ADB_HOST, ADB_PORT);
    }

    /**
@@ -72,7 +67,7 @@ public class AdbUtils {
        outputStream.write(cmd.getBytes());
        int read = inputStream.read(buf);
        if (read != ADB_RESPONSE_SIZE || !ADB_OK.equals(new String(buf))) {
            Log.w(LOG_TAG, "adb cmd faild.");
            Log.w(LOG_TAG, "adb cmd failed.");
            return false;
        }
        return true;
+6 −7
Original line number Diff line number Diff line
@@ -93,7 +93,8 @@ public class ConnectionHandler {

    private OnFinishedCallback mOnFinishedCallback;

    public ConnectionHandler(String remoteMachineIp, int port, Socket fromSocket, Socket toSocket) {
    public ConnectionHandler(String remoteMachineIp, int port, Socket fromSocket, Socket toSocket)
            throws IOException {
        mRemoteMachineIpAddress = remoteMachineIp;
        mPort = port;

@@ -105,14 +106,12 @@ public class ConnectionHandler {
            mToSocketInputStream = mToSocket.getInputStream();
            mFromSocketOutputStream = mFromSocket.getOutputStream();
            mToSocketOutputStream = mToSocket.getOutputStream();
            if (!AdbUtils.configureConnection(mToSocketInputStream, mToSocketOutputStream,
                    mRemoteMachineIpAddress, mPort)) {
                throw new IOException("Configuring socket failed!");
            }
            AdbUtils.configureConnection(mToSocketInputStream, mToSocketOutputStream,
                    mRemoteMachineIpAddress, mPort);
        } catch (IOException e) {
            Log.e(LOG_TAG, "Unable to start ConnectionHandler", e);
            closeStreams();
            return;
            throw e;
        }

        mFromToPipe = new SocketPipeThread(mFromSocketInputStream, mToSocketOutputStream);
+15 −12
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ public class Forwarder extends Thread {
    public void run() {
        while (true) {
            Socket localSocket;
            Socket remoteSocket;
            try {
                localSocket = mServerSocket.accept();
            } catch (IOException e) {
@@ -70,24 +69,28 @@ public class Forwarder extends Thread {
                break;
            }

            Socket remoteSocket = null;
            final ConnectionHandler connectionHandler;
            try {
                remoteSocket = AdbUtils.createSocket();

            if (remoteSocket == null) {
                connectionHandler = new ConnectionHandler(
                        mRemoteMachineIpAddress, mPort, localSocket, remoteSocket);
            } catch (IOException exception) {
                try {
                    localSocket.close();
                } catch (IOException e) {
                    Log.e(LOG_TAG, "mPort=" + mPort, e);
                }

                Log.e(LOG_TAG, "run(): mPort= " + mPort + " Failed to start forwarding from " +
                        localSocket);
                if (remoteSocket != null) {
                    try {
                        remoteSocket.close();
                    } catch (IOException e) {
                        Log.e(LOG_TAG, "mPort=" + mPort, e);
                    }
                }
                continue;
            }

            final ConnectionHandler connectionHandler =
                    new ConnectionHandler(mRemoteMachineIpAddress, mPort, localSocket,
                            remoteSocket);

            /**
             * We have to close the sockets after the ConnectionHandler finishes, so we
             * don't get "Too may open files" exception. We also remove the ConnectionHandler