mirror of
https://github.com/vanitasvitae/Smack.git
synced 2024-12-22 10:37:59 +01:00
[core] Add SmackConfiguration.TRUELY_ASYNC_SENDS
This option is meant a quick and dirty hack until XMPPConnection.sendStanza() throws a dedicated Exception in case the connection's outgoing queue is full.
This commit is contained in:
parent
8ebe453363
commit
66370c7ef5
2 changed files with 24 additions and 7 deletions
|
@ -1,6 +1,6 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Copyright 2009 Jive Software, 2018-2020 Florian Schmaus.
|
* Copyright 2009 Jive Software, 2018-2022 Florian Schmaus.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -2000,11 +2000,18 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
||||||
}, timeout, TimeUnit.MILLISECONDS);
|
}, timeout, TimeUnit.MILLISECONDS);
|
||||||
|
|
||||||
addAsyncStanzaListener(stanzaListener, replyFilter);
|
addAsyncStanzaListener(stanzaListener, replyFilter);
|
||||||
try {
|
Runnable sendOperation = () -> {
|
||||||
sendStanza(stanza);
|
try {
|
||||||
}
|
sendStanza(stanza);
|
||||||
catch (NotConnectedException | InterruptedException exception) {
|
}
|
||||||
future.setException(exception);
|
catch (NotConnectedException | InterruptedException exception) {
|
||||||
|
future.setException(exception);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if (SmackConfiguration.TRUELY_ASYNC_SENDS) {
|
||||||
|
Async.go(sendOperation);
|
||||||
|
} else {
|
||||||
|
sendOperation.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
return future;
|
return future;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Copyright 2003-2007 Jive Software, 2018-2020 Florian Schmaus.
|
* Copyright 2003-2007 Jive Software, 2018-2022 Florian Schmaus.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -387,4 +387,14 @@ public final class SmackConfiguration {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If enabled, causes {@link AbstractXMPPConnection} to create a thread for every asynchronous send operation. This
|
||||||
|
* is meant to work-around a shortcoming of Smack 4.4, where certain send operations are not asynchronous even if
|
||||||
|
* they should be. This is an expert setting, do not toggle if you do not understand the consequences or have been
|
||||||
|
* told to do so. Note that it is expected that this will not be needed in future Smack versions.
|
||||||
|
*
|
||||||
|
* @since 4.4.6
|
||||||
|
*/
|
||||||
|
public static boolean TRUELY_ASYNC_SENDS = false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue