From b40cbe28c43f72a8310c1249dc8fbda065ca0e3c Mon Sep 17 00:00:00 2001 From: lordmilko Date: Fri, 16 Jan 2026 14:31:51 +1100 Subject: [PATCH] Fix event handlers added to JavaConversionOptions.WarningEncountered not being removed after each converted file --- JavaToCSharpCli/Program.cs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/JavaToCSharpCli/Program.cs b/JavaToCSharpCli/Program.cs index d74a0fc..072d194 100644 --- a/JavaToCSharpCli/Program.cs +++ b/JavaToCSharpCli/Program.cs @@ -273,7 +273,7 @@ private static void ConvertToCSharpFile(FileSystemInfo inputFile, FileSystemInfo { string javaText = File.ReadAllText(inputFile.FullName); - options.WarningEncountered += (_, eventArgs) => + void warningEncountered(object? sender, ConversionWarningEventArgs eventArgs) { if (outputFile != null) { @@ -283,10 +283,19 @@ private static void ConvertToCSharpFile(FileSystemInfo inputFile, FileSystemInfo OutputFileOrPrint(outputFile != null ? Path.ChangeExtension(outputFile.FullName, ".warning") : null, eventArgs.Message + Environment.NewLine); - }; + } + + options.WarningEncountered += warningEncountered; - string? parsed = JavaToCSharpConverter.ConvertText(javaText, options); - OutputFileOrPrint(outputFile?.FullName, parsed ?? string.Empty); + try + { + string? parsed = JavaToCSharpConverter.ConvertText(javaText, options); + OutputFileOrPrint(outputFile?.FullName, parsed ?? string.Empty); + } + finally + { + options.WarningEncountered -= warningEncountered; + } if (outputFile != null) {