Hi everyone,
I'm getting System.OutOfMemoryException when looping through the following code many times (once every 2 mins for 7 hrs)
public void UpdateTM(string[] tmPaths, string[] sdlxliffPaths)
{
FileBasedTranslationMemory tm;
TranslationMemoryImporter importer;
foreach (string sdlxliffPath in sdlxliffPaths)
{
foreach (string tmPath in tmPaths)
{
try
{
tm = new FileBasedTranslationMemory(tmPath);
importer = new TranslationMemoryImporter(tm.LanguageDirection);
importer.ImportSettings.CheckMatchingSublanguages = true;
importer.ImportSettings.ExistingFieldsUpdateMode = ImportSettings.FieldUpdateMode.Merge;
importer.ImportSettings.ExistingTUsUpdateMode = ImportSettings.TUUpdateMode.Overwrite;
importer.Import(sdlxliffPath);
Logger.Trace("TranslatorPost.UpdateTM", " Successfully merged " + sdlxliffPath + " into " + tmPath);
}
catch(Exception ex)
{
continue;
}
}
}
}
The error is:
07:39:45.4842 ERROR LogManager.Logger.Error : System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at System.Xml.XmlDocument.CreateElement(String prefix, String localName, String namespaceURI)
at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
at System.Xml.XmlLoader.ReadCurrentNode(XmlDocument doc, XmlReader reader)
at System.Xml.XmlDocument.ReadNode(XmlReader reader)
at Sdl.FileTypeSupport.Bilingual.SdlXliff.SdlXliffFeeder.GetXmlElement(XmlReader xmlReader)
at Sdl.FileTypeSupport.Bilingual.SdlXliff.SdlXliffFeeder.<ContinueScanning>b__8(ISdlXliffStreamContentHandler handler)
at System.Collections.Generic.List`1.ForEach(Action`1 action)
at Sdl.FileTypeSupport.Bilingual.SdlXliff.SdlXliffFeeder.ContinueScanning()
at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ContinueParsing()
at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.ParseNext()
at Sdl.FileTypeSupport.Framework.Integration.FileExtractor.ParseNext()
at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.ParseNext()
at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.Parse()
at Sdl.LanguagePlatform.TranslationMemoryApi.TranslationMemoryImporter.ImportBilingualFile(String fileName)
at Sdl.LanguagePlatform.TranslationMemoryApi.TranslationMemoryImporter.Import(String fileName)
at TranslatorPost.TranslatorPost.UpdateTM(String[] tmPaths, String[] sdlxliffPaths) in D:\Visual Studio 2017 Projects\Translator\TranslatorPost\TranslatorPost.cs:line 39