I realized that you *must* call base.Initialize(documentInfo); inside of the following override when inheriting from AbstractBilingualContentProcessor
public override void Initialize(IDocumentProperties documentInfo) { base.Initialize(documentInfo); // <--- This MUST be called }
Here is a sample project that produces the bug:SDL Custom Batch Task Plug-in 20151.zip
And here is the bug report:
<SDLErrorDetails time="5/10/2016 12:48:54 PM"> <ErrorMessage>Object reference not set to an instance of an object.</ErrorMessage> <Exception> <Type>System.NullReferenceException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</Type> <HelpLink /> <Source>Sdl.FileTypeSupport.Bilingual.SdlXliff</Source> <HResult>-2147467261</HResult> <StackTrace><![CDATA[ at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffWriter.SetFileProperties(IFileProperties fileInfo) at Sdl.FileTypeSupport.Framework.Integration.AbstractBilingualProcessorContainer.SetFileProperties(IFileProperties fileInfo) at Sdl.FileTypeSupport.Framework.BilingualApi.AbstractBilingualContentProcessor.SetFileProperties(IFileProperties fileInfo) at Sdl.FileTypeSupport.Framework.Core.Utilities.BilingualApi.BilingualContentHandlerAdapter.SetFileProperties(IFileProperties fileInfo) at Sdl.FileTypeSupport.Framework.Integration.AbstractBilingualProcessorContainer.SetFileProperties(IFileProperties fileInfo) at Sdl.FileTypeSupport.Framework.Integration.MultiFileConverter.SetFileProperties(IFileProperties fileInfo) at Sdl.FileTypeSupport.Framework.BilingualApi.AbstractBilingualContentProcessor.SetFileProperties(IFileProperties fileInfo) at Sdl.FileTypeSupport.Framework.Integration.AbstractBilingualProcessorContainer.SetFileProperties(IFileProperties fileInfo) at Sdl.FileTypeSupport.Bilingual.SdlXliff.XliffFileReader.OnEndFileHeader() at Sdl.FileTypeSupport.Bilingual.SdlXliff.SdlXliffFeeder.<ContinueScanning>b__4(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.ProjectApi.Implementation.TaskExecution.ContentProcessingTaskImplementation.TaskFileExecuter.Parse(String targetFilePath)]]></StackTrace> </Exception> <Environment> <ProductName>SDL Trados Studio</ProductName> <ProductVersion>12.0.0.0</ProductVersion> <EntryAssemblyFileVersion>12.2.5099.5</EntryAssemblyFileVersion> <OperatingSystem>Microsoft Windows 7 Professional </OperatingSystem> <ServicePack>Service Pack 1</ServicePack> <OperatingSystemLanguage>1041</OperatingSystemLanguage> <CodePage>932</CodePage> <LoggedOnUser>ITP\jesse_good</LoggedOnUser> <DotNetFrameWork>4.0.30319.42000</DotNetFrameWork> <ComputerName>D6VHN4W1</ComputerName> <ConnectedToNetwork>True</ConnectedToNetwork> <PhysicalMemory>16661036 MB</PhysicalMemory> </Environment> </SDLErrorDetails>
Is this intended behavior? I would not expect you have to call the base implementation for Abstract class.