In JDBC249 I used a WeakHashMap for the mcfInstances in FBManagedConnectionFactory. This creates a memory leak as a strong reference is maintained to itself. Something similar happens in FBDriver. This needs to be fixed.
Replaced cache key with (clone) of connection properties, replaced WeakHashMap with a ConcurrentHashMap where the value is a SoftReference. Included cleanup routine to remove stale (null-ed) references from the map.
In general this will behave the same, but under memory pressure the cache will actually be cleaned.
Submitted by: @mrotteveel
In JDBC249 I used a WeakHashMap for the mcfInstances in FBManagedConnectionFactory. This creates a memory leak as a strong reference is maintained to itself. Something similar happens in FBDriver. This needs to be fixed.
Commits: a37c40e 0dddd3d 9231722 fbcced3 FirebirdSQL/fbt-repository@6ef4f5a FirebirdSQL/fbt-repository@9abaccd FirebirdSQL/fbt-repository@e798fe1 FirebirdSQL/fbt-repository@db52633
The text was updated successfully, but these errors were encountered: