Smack/smack-core/src/main/java/org/jivesoftware/smack
Florian Schmaus b1a4ccfae8 [core] Do not weakly reference "channel selected" callback
Since d65f2c932 ("Bump Error Prone version to 2.3.4 and fix new bug
patterns") the channel selected callback is no longer a final field of
the connection instance, hence it may be come null even if the
connection instance is still strongly referenced. Also the
ConnectionAttemptState class uses simply a lambda as callback, which
is also not strongly referenced otherwise.

The "channel selected" callback was wrapped in weak reference, so that
connection instances could get gc'ed if they are still connected but
the user lost all references to them. In this case, the weak reference
to the connection instance would become 'null' and
selectionKey.cancel() would be called.

This change means that a socket and its selection key of a "leaked"
connected connection instance continues to be part of the reactor. But
this may not be that bad: first, users are expected to manager their
connection instances, and disconnect them before they are
discarded. And secondly, at some point the connection likely will get
disconnected, and in this case, the socket and its selection key will
be removed from the reactor.
2020-05-30 19:45:59 +02:00
..
bind2 Introduce Smack's Modular Connection Architecture 2020-04-04 13:03:31 +02:00
c2s [core] Rework TLS logic 2020-05-25 15:41:57 +02:00
compress Organize imports everywhere 2019-10-29 21:12:22 +01:00
compression [core] Fix potential NPE in Java7ZlibInputOutputStream 2020-05-21 12:47:55 +02:00
datatypes Fix datatype.Scalar equals() and hashCode() methods 2019-10-17 12:24:30 +02:00
debugger [core] Deprecate AbstractConnectionListener 2020-05-13 22:14:43 +02:00
filter [core] Add StanzaFilter.asPredicate(Class) 2020-05-18 09:15:14 +02:00
fsm Introduce Smack's Modular Connection Architecture 2020-04-04 13:03:31 +02:00
initializer Introduce CloseableUtil 2018-08-15 17:25:22 +02:00
internal [core] Rework TLS logic 2020-05-25 15:41:57 +02:00
iqrequest Use QName instead of XmppStringUtils.generateKey() 2019-06-11 12:47:39 +02:00
isr Introduce Smack's Modular Connection Architecture 2020-04-04 13:03:31 +02:00
packet [disco/caps] Fix DiscoverInfo.asBuilder() 2020-05-22 15:38:16 +02:00
parsing Re-work data form API 2020-05-13 20:14:41 +02:00
provider Implement message stanza <thread/> and <subject/> as ExtensionElement 2020-04-05 18:58:13 +02:00
proxy proxy: modernize code by using (ByteArrayOutput|DataInput)Stream 2020-02-23 19:12:54 +01:00
sasl s/occured/occurred/ 2019-10-30 12:02:36 +01:00
util [core] Rework TLS logic 2020-05-25 15:41:57 +02:00
AbstractConnectionClosedListener.java [core] Deprecate AbstractConnectionListener 2020-05-13 22:14:43 +02:00
AbstractConnectionListener.java [core] Deprecate AbstractConnectionListener 2020-05-13 22:14:43 +02:00
AbstractXMPPConnection.java [core] Rework TLS logic 2020-05-25 15:41:57 +02:00
AsyncButOrdered.java core: improve AsyncButOrdered 2019-11-08 10:14:21 +01:00
ConnectionConfiguration.java [core] Rework TLS logic 2020-05-25 15:41:57 +02:00
ConnectionCreationListener.java Enable trailing whitespace checkstyle check 2018-05-09 23:26:39 +02:00
ConnectionListener.java [core] Deprecate AbstractConnectionListener 2020-05-13 22:14:43 +02:00
ExceptionCallback.java Merge branch '4.2' into master-paul-merged 2017-12-17 11:16:02 +01:00
Manager.java [core] Introduce ScheduledAction.Kind for blocking and non-blocking actions 2020-05-18 09:15:14 +02:00
MessageListener.java Enable javadoc checkstyle 2015-03-29 12:29:32 +02:00
NonzaCallback.java Move SASL logic into AbstractXMPPConnection 2019-09-25 13:49:21 +02:00
PacketListener.java Enable javadoc checkstyle 2015-03-29 12:29:32 +02:00
PresenceListener.java Enable javadoc checkstyle 2015-03-29 12:29:32 +02:00
ReconnectionListener.java Fix minor codestyle issues 2017-12-17 11:03:46 +01:00
ReconnectionManager.java [core] Deprecate AbstractConnectionListener 2020-05-13 22:14:43 +02:00
SASLAuthentication.java s/occured/occurred/ 2019-10-30 12:02:36 +01:00
ScheduledAction.java [core] Introduce ScheduledAction.Kind for blocking and non-blocking actions 2020-05-18 09:15:14 +02:00
SmackConfiguration.java Remove deprecated methods/fields scheduled for removal in Smack 4.4 2020-04-04 13:03:48 +02:00
SmackException.java Remove deprecated methods/fields scheduled for removal in Smack 4.4 2020-04-04 13:03:48 +02:00
SmackFuture.java Introduce Smack's Modular Connection Architecture 2020-04-04 13:03:31 +02:00
SmackInitialization.java core: use addCompressionHandler() instead directly adding to the list 2020-04-09 15:14:09 +02:00
SmackReactor.java [core] Do not weakly reference "channel selected" callback 2020-05-30 19:45:59 +02:00
StanzaCollector.java Enable werror for javadoc and fix javadoc issues 2019-08-30 12:08:30 +02:00
StanzaListener.java Enable werror for javadoc and fix javadoc issues 2019-08-30 12:08:30 +02:00
SynchronizationPoint.java Enable werror for javadoc and fix javadoc issues 2019-08-30 12:08:30 +02:00
UnparseableStanza.java Enable trailing whitespace checkstyle check 2018-05-09 23:26:39 +02:00
XMPPConnection.java Introduce XMPPConnection.add(Message|Presence)Interceptor 2019-10-25 21:41:55 +02:00
XMPPConnectionRegistry.java Enable trailing whitespace checkstyle check 2018-05-09 23:26:39 +02:00
XMPPException.java Enable werror for javadoc and fix javadoc issues 2019-08-30 12:08:30 +02:00
XmppInputOutputFilter.java Introduce Smack's Modular Connection Architecture 2020-04-04 13:03:31 +02:00
package-info.java Add JavadocPackage checkstyle 2015-04-04 17:16:47 +02:00