/*
- * Copyright (C) 2015-2016 EfficiOS Inc., Alexandre Montplaisir <alexmonthy@efficios.com>
- * Copyright (C) 2013 - David Goulet <dgoulet@efficios.com>
+ * SPDX-License-Identifier: LGPL-2.1-only
*
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License, version 2.1 only,
- * as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Copyright (C) 2015-2016 EfficiOS Inc.
+ * Copyright (C) 2015-2016 Alexandre Montplaisir <alexmonthy@efficios.com>
+ * Copyright (C) 2013 David Goulet <dgoulet@efficios.com>
*/
package org.lttng.ust.agent.client;
handleSessiondCmd();
} catch (UnknownHostException uhe) {
uhe.printStackTrace();
+ /*
+ * Terminate agent thread.
+ */
+ close();
} catch (IOException ioe) {
+ /*
+ * I/O exception may have been triggered by a session daemon
+ * closing the socket. Close our own socket and
+ * retry connecting after a delay.
+ */
try {
+ if (this.sessiondSock != null) {
+ this.sessiondSock.close();
+ }
Thread.sleep(3000);
} catch (InterruptedException e) {
- e.printStackTrace();
+ /*
+ * Retry immediately if sleep is interrupted.
+ */
+ } catch (IOException closeioe) {
+ closeioe.printStackTrace();
+ /*
+ * Terminate agent thread.
+ */
+ close();
}
}
}
int bytesLeft = data.length;
int bytesOffset = 0;
- while (bytesLeft != 0) {
+ while (bytesLeft > 0) {
int bytesRead = this.inFromSessiond.read(data, bytesOffset, bytesLeft);
if (bytesRead < 0) {
return null;
}
- while (bytesLeft != 0) {
+ while (bytesLeft > 0) {
int bytesRead = inFromSessiond.read(payload, bytesOffset, bytesLeft);
if (bytesRead < 0) {