Skip to content

Update almost all classes to support IDisposable pattern - #1537

Merged
masesdevelopers merged 16 commits into
masterfrom
1460-on-every-pull-request-copilot-autofix-reports-problems-with-disposable-classes-2
Apr 18, 2026
Merged

masesdevelopers merged 16 commits into
masterfrom
1460-on-every-pull-request-copilot-autofix-reports-problems-with-disposable-classes-2

Conversation

@masesdevelopers

Copy link
Copy Markdown
Contributor

Description

Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

@masesdevelopers masesdevelopers changed the title Update almost all classes to support IDIsposable pattern Update almost all classes to support IDisposable pattern Apr 17, 2026
@masesdevelopers masesdevelopers self-assigned this Apr 17, 2026
@masesdevelopers masesdevelopers added enhancement New feature or request KNet KNet related issue labels Apr 17, 2026
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
if (!_localKeyDes)
{
_keyDeserializer ??= _factory?.BuildKeySerDes<K, TJVMK>();
_localKey = _keyDeserializer.UseHeaders ? _keyDeserializer.DeserializeWithHeaders(Topic, Headers, _record.Key()) : _keyDeserializer.Deserialize(Topic, _record.Key());
if (!_localValueDes)
{
_valueDeserializer ??= _factory?.BuildValueSerDes<V, TJVMV>();
_localValue = _valueDeserializer.UseHeaders ? _valueDeserializer.DeserializeWithHeaders(Topic, Headers, _record.Value()) : _valueDeserializer.Deserialize(Topic, _record.Value());
/// KNet implementation of <see href="https://www.javadoc.io/doc/org.apache.kafka/kafka-streams/4.2.0/org/apache/kafka/streams/kstream/Windowed.html#key()"/>
/// </summary>
/// <returns><typeparamref name="K"/></returns>
public K Key { get { CheckDisposed(); _keySerDes ??= _factory?.BuildKeySerDes<K, TJVMK>(); return _keySerDes.Deserialize(null, _inner.Key()); } }
CheckDisposed();
_valueSerDes ??= _factory?.BuildKeySerDes<V, TJVMV>();
var vv = _valueAndTimestamp.Value();
return _valueSerDes.Deserialize(null, vv);
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
if (!_keyStored)
{
_keySerDes ??= _factory?.BuildKeySerDes<K, TJVMK>();
_key = _keySerDes.Deserialize(null, _inner.Key);
if (!_valueStored)
{
_valueSerDes ??= _factory?.BuildValueSerDes<V, TJVMV>();
_value = _valueSerDes.Deserialize(null, _inner.Value);
if (fromPrefetched)
{
_keySerDes ??= _factory?.BuildKeySerDes<K, TJVMK>();
_key = _keySerDes.Deserialize(null, _inner.Key);
if (!_keyStored)
{
_keySerDes ??= _factory?.BuildKeySerDes<K, TJVMK>();
_key = _keySerDes.Deserialize(null, _inner.Key);
/// <typeparam name="TJVMV">The JVM type of <typeparamref name="V"/></typeparam>
public class TimeWindowedCogroupedKStream<K, V, TJVMK, TJVMV> : IGenericSerDesFactoryApplier, IDisposable
{
Org.Apache.Kafka.Streams.Kstream.TimeWindowedCogroupedKStream<TJVMK, TJVMV> _inner;
/// <typeparam name="TJVMV">The JVM type of <typeparamref name="V"/></typeparam>
public class SessionWindowedCogroupedKStream<K, V, TJVMK, TJVMV> : IGenericSerDesFactoryApplier, IDisposable
{
Org.Apache.Kafka.Streams.Kstream.SessionWindowedCogroupedKStream<TJVMK, TJVMV> _inner;
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
@masesdevelopers
masesdevelopers merged commit ee66554 into master Apr 18, 2026
8 checks passed
@masesdevelopers
masesdevelopers deleted the 1460-on-every-pull-request-copilot-autofix-reports-problems-with-disposable-classes-2 branch April 18, 2026 10:31
masesdevelopers added a commit that referenced this pull request Apr 18, 2026
* Temporary remove class to check its generation

* Removes since it is internal

* Adds IDisposable pattern on many classes with a short live

* Adds Disposable where the objects ends their life

* Review test program to test Dispose behavior

* Updates other classes to implement IDisposable

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

* Update message of ObjectDisposedException

* General review of Dispose to reduce lock contention

* Promote threads to be background in case of failure on their close

* Merge fix

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
masesdevelopers added a commit that referenced this pull request Apr 18, 2026
* Update almost all classes to support IDisposable pattern (#1537)

* Temporary remove class to check its generation

* Removes since it is internal

* Adds IDisposable pattern on many classes with a short live

* Adds Disposable where the objects ends their life

* Review test program to test Dispose behavior

* Updates other classes to implement IDisposable

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

* Update message of ObjectDisposedException

* General review of Dispose to reduce lock contention

* Promote threads to be background in case of failure on their close

* Merge fix

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>

* Update tab with spaces

* Updates to 3.9.2

* Other updates

* Revert change

---------

Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request KNet KNet related issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

On every pull-request Copilot Autofix reports problems with disposable classes

1 participant