From e9c505a36595fa573c3096977f205f61ad2e1fc3 Mon Sep 17 00:00:00 2001 From: Claudia Murialdo Date: Wed, 13 Apr 2022 13:14:50 -0300 Subject: [PATCH] Fix System.ArgumentException : Source array was not long enough. when creating concurrent PDF proc instances. --- .../GxPdfReportsCS/PDFReportItext.cs | 3 ++- dotnet/test/DotNetUnitTest/PDF/PDFTests.cs | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/dotnet/src/dotnetframework/GxPdfReportsCS/PDFReportItext.cs b/dotnet/src/dotnetframework/GxPdfReportsCS/PDFReportItext.cs index e8d09e4eb..a189a08bc 100644 --- a/dotnet/src/dotnetframework/GxPdfReportsCS/PDFReportItext.cs +++ b/dotnet/src/dotnetframework/GxPdfReportsCS/PDFReportItext.cs @@ -3139,7 +3139,8 @@ public class Utilities public static void addPredefinedSearchPaths(String [] predefinedPaths) { - predefinedSearchPath.InsertRange(0, predefinedPaths); + lock (predefinedSearchPath) + predefinedSearchPath.InsertRange(0, predefinedPaths); } public static String getPredefinedSearchPaths() diff --git a/dotnet/test/DotNetUnitTest/PDF/PDFTests.cs b/dotnet/test/DotNetUnitTest/PDF/PDFTests.cs index d177ec63f..c5ed71e1f 100644 --- a/dotnet/test/DotNetUnitTest/PDF/PDFTests.cs +++ b/dotnet/test/DotNetUnitTest/PDF/PDFTests.cs @@ -2,6 +2,8 @@ using System.IO; using System.Linq; using System.Reflection; +using System.Threading.Tasks; +using com.genexus.reports; using GeneXus.Programs; using GeneXus.Utils; using Xunit; @@ -10,6 +12,21 @@ namespace UnitTesting { public class PDFTests { + [Fact] + public void ConcurrencyPDFSearchPaths() + { + Parallel.For(0, 50, i => + { + apdfbasictest test = new apdfbasictest(); + test.execute(); + }); + Parallel.For(0, 300, i => + { + //System.ArgumentException : Source array was not long enough. Check srcIndex and length, and the array's lower bounds. + Utilities.addPredefinedSearchPaths(new String[] { "A", "B", "C" }); + }); + + } [Fact] public void ExtractTextFromPDF() {