Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finalizer fix #951

Merged
merged 7 commits into from
Aug 15, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions Lucene.Net.sln
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
# Visual Studio Version 17
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
Expand All @@ -16,7 +16,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
VisualStudioVersion = 16.0.29806.167
VisualStudioVersion = 17.10.35004.147
MinimumVisualStudioVersion = 15.0.26730.8
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "azure-templates", "azure-templates", "{05CE3A39-40D4-452D-AFE0-E57E536A08C6}"
ProjectSection(SolutionItems) = preProject
Expand All @@ -41,10 +41,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".build", ".build", "{4016BD
build = build
build.bat = build.bat
build.ps1 = build.ps1
.build\runbuild.ps1 = .build\runbuild.ps1
.build\dependencies.props = .build\dependencies.props
.build\nuget.props = .build\nuget.props
.build\release.targets = .build\release.targets
.build\runbuild.ps1 = .build\runbuild.ps1
.build\TestReferences.Common.targets = .build\TestReferences.Common.targets
TestTargetFramework.props = TestTargetFramework.props
EndProjectSection
Expand Down Expand Up @@ -263,7 +263,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lucene.Net.Tests.AllProject
EndProject
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "websites", "websites\", "{8988CDA4-8420-4BEE-869A-66825055EED2}"
ProjectSection(WebsiteProperties) = preProject
TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.6.2"
TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.8"
Debug.AspNetCompiler.VirtualPath = "/localhost_59352"
Debug.AspNetCompiler.PhysicalPath = "websites\"
Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_59352\"
Expand Down
8 changes: 4 additions & 4 deletions NuGet.config
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
stesee marked this conversation as resolved.
Show resolved Hide resolved

<!--
Licensed to the Apache Software Foundation (ASF) under one
Expand All @@ -20,7 +20,7 @@ under the License.
-->

<configuration>
<packageSources>
<add key="NuGet official package source" value="https://api.nuget.org/v3/index.json" />
</packageSources>
<packageSources>
<add key="NuGet official package source" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>
12 changes: 4 additions & 8 deletions src/Lucene.Net/Index/IndexReader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
using Lucene.Net.Support;
using Lucene.Net.Support.Threading;
using Lucene.Net.Util;

#if !FEATURE_CONDITIONALWEAKTABLE_ENUMERATOR
using Lucene.Net.Util.Events;
#endif

using System;
using System.Collections;
using System.Collections.Generic;
Expand Down Expand Up @@ -81,7 +83,7 @@ public abstract partial class IndexReader : IDisposable
private bool closedByChild = false;
private readonly AtomicInt32 refCount = new AtomicInt32(1);

private protected IndexReader() // LUCENENET: Changed from internal to private protected
protected IndexReader() // LUCENENET: Changed from internal to private protected
stesee marked this conversation as resolved.
Show resolved Hide resolved
{
if (!(this is CompositeReader || this is AtomicReader))
{
Expand Down Expand Up @@ -655,12 +657,6 @@ internal void SubscribeToGetCacheKeysEvent(WeakEvents.GetCacheKeysEvent getCache
getCacheKeysEvent.Subscribe(OnGetCacheKeys);
}

// LUCENENET specific: Clean up the weak event handler if this class goes out of scope
~IndexReader()
{
Dispose(false);
}

// LUCENENET specific: Add weak event handler for .NET Standard 2.0 and .NET Framework, since we don't have an enumerator to use
private void OnGetParentReaders(WeakEvents.GetParentReadersEventArgs e)
{
Expand Down Expand Up @@ -781,4 +777,4 @@ public interface IReaderDisposedListener
/// Invoked when the <see cref="IndexReader"/> is disposed. </summary>
void OnDispose(IndexReader reader);
}
}
}
225 changes: 113 additions & 112 deletions src/Lucene.Net/Lucene.Net.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -21,117 +21,118 @@
-->
<Project Sdk="Microsoft.NET.Sdk">

<Import Project="$(SolutionDir).build/nuget.props" />

<PropertyGroup>
<TargetFrameworks>net6.0;netstandard2.1;netstandard2.0;net462</TargetFrameworks>

<AssemblyTitle>Lucene.Net</AssemblyTitle>
<Description>Lucene.Net is a full-text search engine library capable of advanced text analysis, indexing, and searching. It can be used to easily add search capabilities to applications. Lucene.Net is a C# port of the popular Java Lucene search engine framework from The Apache Software Foundation, targeted at .NET Framework and .NET Core users.</Description>
<!-- Since including a readme in the NuGet package makes the info read-only, we are excluding it for now -->
<!--<PackageReadmeFile>readme.md</PackageReadmeFile>-->
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
<NoWarn>$(NoWarn);1591;1573</NoWarn>

<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>



<PropertyGroup Label="NuGet Package File Paths">
<LuceneNetDotNetDir>$(SolutionDir)src\dotnet\</LuceneNetDotNetDir>
<LuceneNetCodeAnalysisToolsDir>$(LuceneNetDotNetDir)Lucene.Net.CodeAnalysis\tools\</LuceneNetCodeAnalysisToolsDir>
<LuceneNetCodeAnalysisCSAssemblyFile>$(LuceneNetDotNetDir)\Lucene.Net.CodeAnalysis.CSharp\bin\$(Configuration)\netstandard1.3\*.dll</LuceneNetCodeAnalysisCSAssemblyFile>
<LuceneNetCodeAnalysisVBAssemblyFile>$(LuceneNetDotNetDir)\Lucene.Net.CodeAnalysis.VisualBasic\bin\$(Configuration)\netstandard1.3\*.dll</LuceneNetCodeAnalysisVBAssemblyFile>
</PropertyGroup>

<ItemGroup Label="NuGet Package Files">
<!-- Since including a readme in the NuGet package makes the info read-only, we are excluding it for now -->
<!--<None Include="readme-nuget.md" Pack="true" PackagePath="\readme.md" />-->
<None Include="$(LuceneNetCodeAnalysisToolsDir)*.ps1" Pack="true" PackagePath="tools" />
<None Include="$(LuceneNetCodeAnalysisCSAssemblyFile)" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
<None Include="$(LuceneNetCodeAnalysisVBAssemblyFile)" Pack="true" PackagePath="analyzers/dotnet/vb" Visible="false" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="J2N" Version="$(J2NPackageVersion)" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="$(MicrosoftExtensionsConfigurationAbstractionsPackageVersion)" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="System.Memory" Version="$(SystemMemoryPackageVersion)" />
<!-- NOTE: This is a transitive dependency only, but we are forcing an upgrade to ensure there are no conflicts with dependencies. -->
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="$(SystemRuntimeCompilerServicesUnsafePackageVersion)" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net462' ">
<PackageReference Include="System.Memory" Version="$(SystemMemoryPackageVersion)" />
<!-- NOTE: This is a transitive dependency only, but we are forcing an upgrade to ensure there are no conflicts with dependencies. -->
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="$(SystemRuntimeCompilerServicesUnsafePackageVersion)" />
</ItemGroup>

<ItemGroup>
<InternalsVisibleTo Include="Lucene.Net.Analysis.Common" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.Kuromoji" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.Morfologik" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.Nori" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.OpenNLP" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.Phonetic" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.SmartCn" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.Stempel" />
<InternalsVisibleTo Include="Lucene.Net.Benchmark" />
<InternalsVisibleTo Include="Lucene.Net.Classification" />
<InternalsVisibleTo Include="Lucene.Net.Codecs" />
<InternalsVisibleTo Include="Lucene.Net.Demo" />
<InternalsVisibleTo Include="Lucene.Net.Expressions" />
<InternalsVisibleTo Include="Lucene.Net.Facet" />
<InternalsVisibleTo Include="Lucene.Net.Grouping" />
<InternalsVisibleTo Include="Lucene.Net.Highlighter" />
<InternalsVisibleTo Include="Lucene.Net.ICU" />
<InternalsVisibleTo Include="Lucene.Net.Join" />
<InternalsVisibleTo Include="Lucene.Net.Memory" />
<InternalsVisibleTo Include="Lucene.Net.Misc" />
<InternalsVisibleTo Include="Lucene.Net.Queries" />
<InternalsVisibleTo Include="Lucene.Net.QueryParser" />
<InternalsVisibleTo Include="Lucene.Net.Replicator" />
<InternalsVisibleTo Include="Lucene.Net.Sandbox" />
<InternalsVisibleTo Include="Lucene.Net.Spatial" />
<InternalsVisibleTo Include="Lucene.Net.Suggest" />

<InternalsVisibleTo Include="Lucene.Net.TestFramework" />

<InternalsVisibleTo Include="Lucene.Net.Tests._A-D" />
<InternalsVisibleTo Include="Lucene.Net.Tests._E-I" />
<InternalsVisibleTo Include="Lucene.Net.Tests._I-J" />
<InternalsVisibleTo Include="Lucene.Net.Tests._J-S" />
<InternalsVisibleTo Include="Lucene.Net.Tests._T-Z" />

<InternalsVisibleTo Include="Lucene.Net.Tests.AllProjects" />

<InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.Common" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.Kuromoji" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.Morfologik" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.Phonetic" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.SmartCn" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.Stempel" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Benchmark" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Classification" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Expressions" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Facet" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Grouping" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Highlighter" />
<InternalsVisibleTo Include="Lucene.Net.Tests.ICU" /> <!-- For Analysis.Util.TestSegmentingTokenizerBase -->
<InternalsVisibleTo Include="Lucene.Net.Tests.Join" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Misc" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Queries" />
<InternalsVisibleTo Include="Lucene.Net.Tests.QueryParser" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Cli" /> <!-- For lucene-cli -->
<InternalsVisibleTo Include="Lucene.Net.Tests.Replicator" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Sandbox" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Spatial" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Suggest" />
<InternalsVisibleTo Include="Lucene.Net.Tests.TestFramework" />
<InternalsVisibleTo Include="Lucene.Net.Tests.TestFramework.DependencyInjection" />
</ItemGroup>
<Import Project="$(SolutionDir).build/nuget.props" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO formatting should be done in a separate PR. But that said, we should have correct indentation settings for more file types in .editorconfig and default settings for unspecified files. 2 spaces for XML/JSON type files seems to be the standard.


<PropertyGroup>
stesee marked this conversation as resolved.
Show resolved Hide resolved
<TargetFrameworks>net6.0;netstandard2.1;netstandard2.0;net462</TargetFrameworks>

<AssemblyTitle>Lucene.Net</AssemblyTitle>
<Description>Lucene.Net is a full-text search engine library capable of advanced text analysis, indexing, and searching. It can be used to easily add search capabilities to applications. Lucene.Net is a C# port of the popular Java Lucene search engine framework from The Apache Software Foundation, targeted at .NET Framework and .NET Core users.</Description>
<!-- Since including a readme in the NuGet package makes the info read-only, we are excluding it for now -->
<!--<PackageReadmeFile>readme.md</PackageReadmeFile>-->
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
<NoWarn>$(NoWarn);1591;1573</NoWarn>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>



<PropertyGroup Label="NuGet Package File Paths">
<LuceneNetDotNetDir>$(SolutionDir)src\dotnet\</LuceneNetDotNetDir>
<LuceneNetCodeAnalysisToolsDir>$(LuceneNetDotNetDir)Lucene.Net.CodeAnalysis\tools\</LuceneNetCodeAnalysisToolsDir>
<LuceneNetCodeAnalysisCSAssemblyFile>$(LuceneNetDotNetDir)\Lucene.Net.CodeAnalysis.CSharp\bin\$(Configuration)\netstandard1.3\*.dll</LuceneNetCodeAnalysisCSAssemblyFile>
<LuceneNetCodeAnalysisVBAssemblyFile>$(LuceneNetDotNetDir)\Lucene.Net.CodeAnalysis.VisualBasic\bin\$(Configuration)\netstandard1.3\*.dll</LuceneNetCodeAnalysisVBAssemblyFile>
</PropertyGroup>

<ItemGroup Label="NuGet Package Files">
<!-- Since including a readme in the NuGet package makes the info read-only, we are excluding it for now -->
<!--<None Include="readme-nuget.md" Pack="true" PackagePath="\readme.md" />-->
<None Include="$(LuceneNetCodeAnalysisToolsDir)*.ps1" Pack="true" PackagePath="tools" />
<None Include="$(LuceneNetCodeAnalysisCSAssemblyFile)" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
<None Include="$(LuceneNetCodeAnalysisVBAssemblyFile)" Pack="true" PackagePath="analyzers/dotnet/vb" Visible="false" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="J2N" Version="$(J2NPackageVersion)" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="$(MicrosoftExtensionsConfigurationAbstractionsPackageVersion)" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="System.Memory" Version="$(SystemMemoryPackageVersion)" />
<!-- NOTE: This is a transitive dependency only, but we are forcing an upgrade to ensure there are no conflicts with dependencies. -->
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="$(SystemRuntimeCompilerServicesUnsafePackageVersion)" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'net462' ">
<PackageReference Include="System.Memory" Version="$(SystemMemoryPackageVersion)" />
<!-- NOTE: This is a transitive dependency only, but we are forcing an upgrade to ensure there are no conflicts with dependencies. -->
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="$(SystemRuntimeCompilerServicesUnsafePackageVersion)" />
</ItemGroup>

<ItemGroup>
<InternalsVisibleTo Include="Lucene.Net.Analysis.Common" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.Kuromoji" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.Morfologik" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.Nori" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.OpenNLP" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.Phonetic" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.SmartCn" />
<InternalsVisibleTo Include="Lucene.Net.Analysis.Stempel" />
<InternalsVisibleTo Include="Lucene.Net.Benchmark" />
<InternalsVisibleTo Include="Lucene.Net.Classification" />
<InternalsVisibleTo Include="Lucene.Net.Codecs" />
<InternalsVisibleTo Include="Lucene.Net.Demo" />
<InternalsVisibleTo Include="Lucene.Net.Expressions" />
<InternalsVisibleTo Include="Lucene.Net.Facet" />
<InternalsVisibleTo Include="Lucene.Net.Grouping" />
<InternalsVisibleTo Include="Lucene.Net.Highlighter" />
<InternalsVisibleTo Include="Lucene.Net.ICU" />
<InternalsVisibleTo Include="Lucene.Net.Join" />
<InternalsVisibleTo Include="Lucene.Net.Memory" />
<InternalsVisibleTo Include="Lucene.Net.Misc" />
<InternalsVisibleTo Include="Lucene.Net.Queries" />
<InternalsVisibleTo Include="Lucene.Net.QueryParser" />
<InternalsVisibleTo Include="Lucene.Net.Replicator" />
<InternalsVisibleTo Include="Lucene.Net.Sandbox" />
<InternalsVisibleTo Include="Lucene.Net.Spatial" />
<InternalsVisibleTo Include="Lucene.Net.Suggest" />

<InternalsVisibleTo Include="Lucene.Net.TestFramework" />

<InternalsVisibleTo Include="Lucene.Net.Tests._A-D" />
<InternalsVisibleTo Include="Lucene.Net.Tests._E-I" />
<InternalsVisibleTo Include="Lucene.Net.Tests._I-J" />
<InternalsVisibleTo Include="Lucene.Net.Tests._J-S" />
<InternalsVisibleTo Include="Lucene.Net.Tests._T-Z" />

<InternalsVisibleTo Include="Lucene.Net.Tests.AllProjects" />

<InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.Common" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.Kuromoji" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.Morfologik" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.Phonetic" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.SmartCn" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Analysis.Stempel" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Benchmark" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Classification" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Expressions" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Facet" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Grouping" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Highlighter" />
<!-- For Analysis.Util.TestSegmentingTokenizerBase -->
<InternalsVisibleTo Include="Lucene.Net.Tests.ICU" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Join" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Misc" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Queries" />
<InternalsVisibleTo Include="Lucene.Net.Tests.QueryParser" />
<!-- For lucene-cli -->
<InternalsVisibleTo Include="Lucene.Net.Tests.Cli" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Replicator" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Sandbox" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Spatial" />
<InternalsVisibleTo Include="Lucene.Net.Tests.Suggest" />
<InternalsVisibleTo Include="Lucene.Net.Tests.TestFramework" />
<InternalsVisibleTo Include="Lucene.Net.Tests.TestFramework.DependencyInjection" />
</ItemGroup>

</Project>
7 changes: 5 additions & 2 deletions src/Lucene.Net/Support/ObsoleteAPI/IndexReader.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public interface IReaderClosedListener
private sealed class ReaderCloseListenerWrapper : IReaderDisposedListener
{
private readonly IReaderClosedListener listener;

public ReaderCloseListenerWrapper(IReaderClosedListener listener)
{
this.listener = listener ?? throw new ArgumentNullException(nameof(listener));
Expand All @@ -47,7 +48,9 @@ public ReaderCloseListenerWrapper(IReaderClosedListener listener)
public void OnDispose(IndexReader reader) => listener.OnClose(reader);

public override bool Equals(object obj) => listener.Equals(obj);

public override int GetHashCode() => listener.GetHashCode();

public override string ToString() => listener.ToString();
}

Expand All @@ -57,7 +60,7 @@ public ReaderCloseListenerWrapper(IReaderClosedListener listener)
/// <para/>
/// @lucene.experimental
/// </summary>
[Obsolete("Use AddReaderDisposedListerner method instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[Obsolete("Use AddReaderDisposedListener method instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public void AddReaderClosedListener(IReaderClosedListener listener)
{
EnsureOpen();
Expand All @@ -69,7 +72,7 @@ public void AddReaderClosedListener(IReaderClosedListener listener)
/// <para/>
/// @lucene.experimental
/// </summary>
[Obsolete("Use RemoveReaderDisposedListerner method instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
[Obsolete("Use RemoveReaderDisposedListener method instead. This method will be removed in 4.8.0 release candidate."), System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public void RemoveReaderClosedListener(IReaderClosedListener listener)
{
EnsureOpen();
Expand Down
Loading