Unexpected exception when initializing task 'Analyse':

 Hey guys,

 

Iam working on a a project that is including Trados 2017 and its API.

ProjectFile[] files = this.sdlProject.GetTargetLanguageFiles();
AutomaticTask anaylzeTask = this.sdlProject.RunAutomaticTask(files.GetIds(), AutomaticTaskTemplateIds.AnalyzeFiles);

 

Iam able to create new FilebasesProjects and create the actual project but i can't run an analysis on the project files. Everytime i try to run the task, it says this:

 

"Unexpected exception when initializing task 'Analyse': Die Sprachressourcendatei kann nicht gefunden werden..\r\nStacktrace:\r\n   bei Sdl.ProjectApi.Implementation.TaskExecution.ContentProcessingTaskImplementation.InitializeTaskImplementations()\r\n   bei Sdl.ProjectApi.Implementation.TaskExecution.ContentProcessingTaskImplementation.Execute()\r\n   bei Sdl.ProjectApi.Implementation.AutomaticTaskExecuter.Execute()"

 

Any idea what i forgot? It's all working fine except analysis.

Parents
  • Hi C.V.

    It sounds like this is a standalone application running outside the Studio installation folder?
    If you deploy the app to the Studio installation folder, it will work since it can find the language resource file I believe.
    I think you *might* be able to work around this by copying the necessary DLLs to the folder where the app is running, but I haven't tested this myself.
  • It has something todo with the TM that is used. I added a Groupshare TM to the project. My Standalone App is published in the Studio folder --> No difference. If i remove the TM, the analysis runs smoothly.
  • Hi C.V.

    It looks like my guess was wrong :).
    If possible could you post the entire stack trace including the inner exception?

    The inner exception is very important, as this is where the real problem is happening.
  • Hi,

    this is the JSON dump from my AutomaticTask object. This is where the exception happens.

    {
    "TemplateIds":[
    "Sdl.ProjectApi.AutomaticTasks.Analysis"
    ],
    "OutputFiles":[

    ],
    "Messages":[
    {
    "ProjectFileId":null,
    "Source":"AutomaticTaskExecuter",
    "Message":"Unexpected exception when initializing task 'Analyse': Die Sprachressourcendatei kann nicht gefunden werden..",
    "Level":2,
    "Exception":{
    "ClassName":"Sdl.ProjectAutomation.Core.ProjectAutomationException",
    "Message":"Unexpected exception when initializing task 'Analyse': Die Sprachressourcendatei kann nicht gefunden werden..\r\nStacktrace:\r\n bei Sdl.ProjectApi.Implementation.TaskExecution.ContentProcessingTaskImplementation.InitializeTaskImplementations()\r\n bei Sdl.ProjectApi.Implementation.TaskExecution.ContentProcessingTaskImplementation.Execute()\r\n bei Sdl.ProjectApi.Implementation.AutomaticTaskExecuter.Execute()",
    "Data":null,
    "InnerException":{
    "ClassName":"Sdl.ProjectApi.ProjectApiException",
    "Message":"Unexpected exception when initializing task 'Analyse': Die Sprachressourcendatei kann nicht gefunden werden..\r\nStacktrace:\r\n bei Sdl.ProjectApi.Implementation.TaskExecution.ContentProcessingTaskImplementation.InitializeTaskImplementations()\r\n bei Sdl.ProjectApi.Implementation.TaskExecution.ContentProcessingTaskImplementation.Execute()\r\n bei Sdl.ProjectApi.Implementation.AutomaticTaskExecuter.Execute()",
    "Data":null,
    "InnerException":{
    "ClassName":"Sdl.ProjectApi.ProjectApiException",
    "Message":"Exception of type LanguageProcessingException occurred: Die Sprachressourcendatei kann nicht gefunden werden.\r\nStacktrace:\r\n bei Sdl.Core.LanguageProcessing.Resources.ResourceFileResourceAccessor..ctor()\r\n bei Sdl.Core.LanguageProcessing.Resources.Configuration.Load()\r\n bei Sdl.Core.LanguageProcessing.Resources.LanguageResources..ctor(CultureInfo culture, IResourceDataAccessor accessor)\r\n bei Sdl.ProjectApi.Helpers.LanguageObjectsCache.GetLanguageTools(ILanguageDirection languageDirection)\r\n bei Sdl.ProjectApi.AutomaticTasks.Analysis.AnalysisDataCollectorX.CreateAnalysisDataStorage(ILanguageDirection languageDirection, AnalysisTaskSettings analysisSettings, TranslationMemorySettings translationMemorySettings, ILanguageObjectsCache objectsCache)\r\n bei Sdl.ProjectApi.AutomaticTasks.Analysis.AnalysisDataCollectorX.Initialize(IList`1 files)\r\n bei Sdl.ProjectApi.AutomaticTasks.Analysis.AnalysisTask.CreateAnalysisDataCollectors()\r\n bei Sdl.ProjectApi.AutomaticTasks.Analysis.AnalysisTask.InitializeTask(IExecutingAutomaticTask task)\r\n bei Sdl.ProjectApi.Implementation.TaskExecution.ContentProcessingTaskImplementation.InitializeTaskImplementations()",
    "Data":null,
    "InnerException":null,
    "HelpURL":null,
    "StackTraceString":null,
    "RemoteStackTraceString":null,
    "RemoteStackIndex":0,
    "ExceptionMethod":null,
    "HResult":-2146233088,
    "Source":null,
    "WatsonBuckets":null
    },
    "HelpURL":null,
    "StackTraceString":null,
    "RemoteStackTraceString":null,
    "RemoteStackIndex":0,
    "ExceptionMethod":null,
    "HResult":-2146233088,
    "Source":null,
    "WatsonBuckets":null
    },
    "HelpURL":null,
    "StackTraceString":null,
    "RemoteStackTraceString":null,
    "RemoteStackIndex":0,
    "ExceptionMethod":null,
    "HResult":-2146233088,
    "Source":null,
    "WatsonBuckets":null
    }
    }
    ],
    "Reports":[

    ],
    "Id":"62efd936-c8d1-493b-bda3-18876d0be5bd",
    "InputFiles":[
    {
    "TaskId":"62efd936-c8d1-493b-bda3-18876d0be5bd",
    "ProjectFileId":"edc1b8b9-11f5-4359-992f-92e934558753",
    "Completed":false,
    "ReadOnly":false
    },
    {
    "TaskId":"62efd936-c8d1-493b-bda3-18876d0be5bd",
    "ProjectFileId":"2e490bbd-87ba-4179-8fed-1cfc9d1480e3",
    "Completed":false,
    "ReadOnly":false
    }
    ],
    "Status":5,
    "Name":"Analyse"
    }
  • I got it!

    The file Sdl.LanguagePlatform.NLP.resources was missing in the executing path of my application.

    I found it by disassembling the dll's.

    static ResourceFileResourceAccessor()
    {
    ResourceFileResourceAccessor._cacheLock = new object();
    ResourceFileResourceAccessor.DefaultResourceFileName = "Sdl.LanguagePlatform.NLP.resources";
    ResourceFileResourceAccessor._Cache = new Dictionary<string, ResourceFileResourceAccessor.ResourceFileData>();
    }

    Thanks for help ;)
Reply Children