From 275aabf0325cecf1d26aade4b722d9ca00e506b5 Mon Sep 17 00:00:00 2001 From: lordmilko Date: Fri, 16 Jan 2026 14:31:51 +1100 Subject: [PATCH 1/2] 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) { From aadc7155d4ff6ff607b063852075bfc68a62e488 Mon Sep 17 00:00:00 2001 From: Paul Irwin Date: Fri, 14 Aug 2026 10:28:16 -0600 Subject: [PATCH 2/2] Move local function to end of block --- JavaToCSharpCli/Program.cs | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/JavaToCSharpCli/Program.cs b/JavaToCSharpCli/Program.cs index 072d194..bf02bec 100644 --- a/JavaToCSharpCli/Program.cs +++ b/JavaToCSharpCli/Program.cs @@ -273,19 +273,7 @@ private static void ConvertToCSharpFile(FileSystemInfo inputFile, FileSystemInfo { string javaText = File.ReadAllText(inputFile.FullName); - void warningEncountered(object? sender, ConversionWarningEventArgs eventArgs) - { - if (outputFile != null) - { - _logger.LogWarning("Line {JavaLineNumber}: {Message}", eventArgs.JavaLineNumber, - eventArgs.Message); - } - - OutputFileOrPrint(outputFile != null ? Path.ChangeExtension(outputFile.FullName, ".warning") : null, - eventArgs.Message + Environment.NewLine); - } - - options.WarningEncountered += warningEncountered; + options.WarningEncountered += WarningEncountered; try { @@ -294,13 +282,25 @@ void warningEncountered(object? sender, ConversionWarningEventArgs eventArgs) } finally { - options.WarningEncountered -= warningEncountered; + options.WarningEncountered -= WarningEncountered; } if (outputFile != null) { _logger.LogInformation("{filePath} converted!", inputFile.Name); } + + void WarningEncountered(object? sender, ConversionWarningEventArgs eventArgs) + { + if (outputFile != null) + { + _logger.LogWarning("Line {JavaLineNumber}: {Message}", eventArgs.JavaLineNumber, + eventArgs.Message); + } + + OutputFileOrPrint(outputFile != null ? Path.ChangeExtension(outputFile.FullName, ".warning") : null, + eventArgs.Message + Environment.NewLine); + } } catch (Exception ex) {