This commit is contained in:
vanitasvitae 2017-06-23 23:41:40 +02:00
parent 136af25342
commit c4ef2c9552
Signed by: vanitasvitae
GPG Key ID: 62BEE9264BF17311
6 changed files with 19 additions and 30 deletions

View File

@ -42,7 +42,7 @@ import org.jxmpp.jid.FullJid;
public class IncomingJingleFileOffer extends JingleFileTransferSession implements IncomingFileOfferCallback {
private static final Logger LOGGER = Logger.getLogger(IncomingJingleFileOffer.class.getName());
private Jingle pendingSessionInitiate = null;
private ReceivingThread receivingThread;
private ReceiveTask receivingThread;
public enum State {
fresh,
@ -143,8 +143,8 @@ public class IncomingJingleFileOffer extends JingleFileTransferSession implement
transportSession.initiateIncomingSession(new JingleTransportInitiationCallback() {
@Override
public void onSessionInitiated(BytestreamSession bytestreamSession) {
receivingThread = new ReceivingThread(bytestreamSession, file, target);
receivingThread.start();
receivingThread = new ReceiveTask(bytestreamSession, file, target);
queued.add(threadPool.submit(receivingThread));
}
@Override

View File

@ -51,7 +51,7 @@ public class OutgoingJingleFileOffer extends JingleFileTransferSession {
terminated
}
private Thread sendingThread;
private Runnable sendingThread;
private File source;
private State state;
@ -110,8 +110,8 @@ public class OutgoingJingleFileOffer extends JingleFileTransferSession {
@Override
public void onSessionInitiated(final BytestreamSession session) {
LOGGER.log(Level.INFO, "BytestreamSession initiated. Start transfer.");
sendingThread = new SendingThread(session, source);
sendingThread.start();
sendingThread = new SendTask(session, source);
queued.add(threadPool.submit(sendingThread));
}
@Override
@ -129,11 +129,6 @@ public class OutgoingJingleFileOffer extends JingleFileTransferSession {
public IQ handleSessionTerminate(Jingle sessionTerminate) {
LOGGER.log(Level.INFO, "Received session-terminate: " + sessionTerminate.getReason().asEnum());
if (sendingThread != null && !sendingThread.isInterrupted()) {
LOGGER.log(Level.INFO, "Interrupt sending thread.");
sendingThread.interrupt();
}
state = State.terminated;
return jutil.createAck(sessionTerminate);
}

View File

@ -30,14 +30,14 @@ import org.jivesoftware.smackx.jingle_filetransfer.element.JingleFileTransferChi
/**
* Thread for receiving data.
*/
public class ReceivingThread extends Thread {
private static final Logger LOGGER = Logger.getLogger(ReceivingThread.class.getName());
public class ReceiveTask implements Runnable {
private static final Logger LOGGER = Logger.getLogger(ReceiveTask.class.getName());
private final BytestreamSession session;
private final JingleFileTransfer fileTransfer;
private final File target;
public ReceivingThread(BytestreamSession session, JingleFileTransfer fileTransfer, File target) {
public ReceiveTask(BytestreamSession session, JingleFileTransfer fileTransfer, File target) {
this.session = session;
this.fileTransfer = fileTransfer;
this.target = target;

View File

@ -29,13 +29,13 @@ import org.jivesoftware.smackx.bytestreams.BytestreamSession;
/**
* Created by vanitas on 21.06.17.
*/
public class SendingThread extends Thread {
private static final Logger LOGGER = Logger.getLogger(SendingThread.class.getName());
public class SendTask implements Runnable {
private static final Logger LOGGER = Logger.getLogger(SendTask.class.getName());
private final BytestreamSession session;
private final File source;
public SendingThread(BytestreamSession session, File source) {
public SendTask(BytestreamSession session, File source) {
this.session = session;
this.source = source;
}
@ -69,14 +69,4 @@ public class SendingThread extends Thread {
}
}
}
@Override
public void interrupt() {
try {
session.close();
} catch (IOException e) {
LOGGER.log(Level.SEVERE, "Could not close session.", e);
}
super.interrupt();
}
}

View File

@ -34,7 +34,6 @@ import org.jivesoftware.smackx.jingle.element.JingleAction;
import org.jivesoftware.smackx.jingle.element.JingleContent;
import org.jivesoftware.smackx.jingle.element.JingleContentDescription;
import org.jivesoftware.smackx.jingle.transports.jingle_ibb.JingleIBBTransportManager;
import org.jivesoftware.smackx.jingle.transports.jingle_s5b.JingleS5BTransportManager;
import org.jxmpp.jid.FullJid;
@ -103,7 +102,7 @@ public final class JingleManager extends Manager {
//Register transports.
JingleTransportMethodManager transportMethodManager = JingleTransportMethodManager.getInstanceFor(connection);
transportMethodManager.registerTransportManager(JingleIBBTransportManager.getInstanceFor(connection));
transportMethodManager.registerTransportManager(JingleS5BTransportManager.getInstanceFor(connection));
//transportMethodManager.registerTransportManager(JingleS5BTransportManager.getInstanceFor(connection));
}
public JingleHandler registerDescriptionHandler(String namespace, JingleHandler handler) {

View File

@ -16,6 +16,9 @@
*/
package org.jivesoftware.smackx.jingle.transports.jingle_ibb;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jivesoftware.smack.SmackException;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.IQ;
@ -31,6 +34,7 @@ import org.jivesoftware.smackx.jingle.transports.JingleTransportSession;
import org.jivesoftware.smackx.jingle.transports.jingle_ibb.element.JingleIBBTransport;
public class JingleIBBTransportSession extends JingleTransportSession<JingleIBBTransport> {
private static final Logger LOGGER = Logger.getLogger(JingleIBBTransportSession.class.getName());
private final JingleIBBTransportManager transportManager;
@ -53,6 +57,7 @@ public class JingleIBBTransportSession extends JingleTransportSession<JingleIBBT
@Override
public void initiateOutgoingSession(JingleTransportInitiationCallback callback) {
LOGGER.log(Level.INFO, "Initiate Jingle InBandBytestream session.");
if (jingleSession.get() == null) {
callback.onException(new NullPointerException("Lost reference to JingleSession."));
return;
@ -72,7 +77,7 @@ public class JingleIBBTransportSession extends JingleTransportSession<JingleIBBT
@Override
public void initiateIncomingSession(final JingleTransportInitiationCallback callback) {
LOGGER.log(Level.INFO, "Await Jingle InBandBytestream session.");
if (jingleSession.get() == null) {
callback.onException(new NullPointerException("Lost reference to JingleSession."));
}