Skip to main content

Notifications

Announcements

No record found.

Dynamics 365 Community / Forums / Finance forum / Abnormal termination w...
Finance forum

Abnormal termination with unhandled exception when building extension with CoC of table

(0) ShareShare
ReportReport
Posted on by 685

Hello everybody!

I'm involved in a extension project that includes the need of extending some table methods (DirNameSequence). I've extended DirPerson an DirPersonName with success, new fields and methods anullated with Chain of commands.

I've extended DirNameSequence table, and added some fields.

At this point the solution (only contains the extension project. No other modules in application) compiles and builds OK, as the entire application with the other modules also does.

Now I need to extend some methods of this table DirNameSequence, via Chain of Commands (nameSequence, fixSeparators, calculateSpaces).
I create new class:

[ExtensionOf(tablestr(DirNameSequence))]final public class FydFD_TableDirNameSequence_Extension{}

At this point building is OK. But, when I add some method existing in base table, i.e:

[ExtensionOf(tablestr(DirNameSequence))]final public class FydFD_TableDirNameSequence_Extension{    private void calculateSpaces()    {                next calculateSpaces();    }}

..and I try to build project, I get:
/Clipboard01.png/

Error        X++ compiler exited unexpectedly with failure code -1.            1   
Error        Compilation failed.            0   
Error        Abnormal termination with unhandled exception. Exception key: 4d13d79e-ffdf-4b2a-9626-4ae4226b5580. System.NullReferenceException: Object reference not set to an instance of an object.
   at IKVM.Reflection.Universe.IsFromModuleBuilder(Type type)
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
   at IKVM.Reflection.Universe.DetermineIfCanonicalizedTypeShouldBePurged(Type type, Func`2 simplePredicate)
   at IKVM.Reflection.Universe.<>c__DisplayClass223_0.<PurgeCanonicalizedTypes>b__0(KeyValuePair`2 p)
   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
   at System.Collections.Concurrent.ConcurrentDictionary`2.InitializeFromCollection(IEnumerable`1 collection)
   at IKVM.Reflection.Universe.PurgeCanonicalizedTypes(Func`2 simplePredicate)
   at IKVM.Reflection.Universe.ClearDynamicAssemblies()
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorMain.UnloadAssemblyFromUniverse()
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorMain.GenerateILImplementation(Parameters parameters, IXppcMetadataProvider metadataProvider, IDiagnosticSink diagnosticsHandler)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorMain.GenerateIL(Parameters parameters, IXppcMetadataProvider metadataProvider, IDiagnosticSink diagnosticsHandler).            0    

If I build the new extension module, I get:


Error        Abnormal termination with unhandled exception. Exception key: 6b5214ac-49de-4119-a428-79d68d38efea. System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorSweeper.VisitNextExpression(Object payload, NextExpression nextExpression)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitor`2.VisitEvaluation(TPayload payload, Evaluation evaluation)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorSweeper.VisitEvaluation(Object payload, Evaluation evaluation)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorSweeper.VisitExpression(Object payload, Expression expression)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitor`2.VisitExpressionStatement(TPayload payload, ExpressionStatement expressionStatement)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorSweeper.VisitExpressionStatement(Object payload, ExpressionStatement statement)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitor`2.VisitStatement(TPayload payload, Statement statement)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorSweeper.VisitStatement(Object payload, Statement statement)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitor`2.VisitStatements(TPayload payload, IEnumerable`1 declarationsAndStatements)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorSweeper.VisitMethod(Object payload, Method method)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitor`2.VisitMethodOrDelegate(TPayload payload, MethodOrDelegate methodOrDelegate)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitorWithDiagnostics`2.VisitMethodOrDelegate(TPayload payload, MethodOrDelegate methodOrDelegate)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorSweeper.VisitMethodOrDelegate(Object payload, MethodOrDelegate methodOrDelegate)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitor`2.VisitMethods(TPayload payload, IEnumerable`1 methodOrDelegates)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorSweeper.VisitMethods(Object payload, IEnumerable`1 methods)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitor`2.VisitMethods(TPayload payload, IDictionary`2 dictionary)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorSweeper.VisitClass(Object payload, Class classInstance)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitor`2.VisitClassOrInterface(TPayload payload, ClassOrInterface classOrInterface)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitorWithDiagnostics`2.VisitClassOrInterface(TPayload payload, ClassOrInterface classOrInterface)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitor`2.VisitModelElement(TPayload payload, ModelElement modelElement)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorSweeper.VisitModelElement(Object payload, ModelElement modelElement)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitor`2.VisitCompilationUnit(TPayload payload, CompilationUnit compilationUnit)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.AstVisitorWithDiagnostics`2.VisitCompilationUnit(TPayload payload, CompilationUnit compilationUnit)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorPass3Worker.GenerateBodiesInNetmodule(Parameters generatorparameters, String netmoduleName, IXppcMetadataProvider metadataProvider, IDiagnosticSink diagnosticsHandler, NetModuleNameByTypeName netModules, ICrossReferenceProvider xRefProvider)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorPass3Worker.GenerateBodiesInNetmodule(Parameters parameters, String netmoduleName, IXppcMetadataProvider metadataProvider, NetModuleNameByTypeName netModules, FileRollbackHandler fileRollbackHandler, IDiagnosticSink diagnosticsHandler, ICrossReferenceProvider xRefProvider)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorPass3Worker.InvokeInNetmodule(Parameters parameters, String netmoduleName, IXppcMetadataProvider metadataProvider, NetModuleNameByTypeName netModules, FileRollbackHandler fileRollbackHandler, IDiagnosticSink diagnosticsHandler, ICrossReferenceProvider xRefProvider)
   at Microsoft.Dynamics.AX.Framework.Xlnt.ILGenerator.ILGeneratorMain.<>c__DisplayClass8_3.<GenerateILImplementation>b__4(String moduleName)
   at Microsoft.Dynamics.AX.Metadata.XppCompiler.ParallelCrashDumpUtil.<>c__DisplayClass1_0`1.<ForEach>b__2(T t)
   at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1()
   at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
   at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object ).    

from file   K://AosService//PackagesLocalDirectory//FydFDExtension//FydFDExtension//AxClass//FydFD_TableDirNameSequence_Extension.xml (line 0).  

The only way of rejecting this error is to delete this method (empty the class), rebuild model, and then rebuild solution. So I can't use methods for this table...


Any ideas?


Thanks in advance

PS: Solution building still gives same error. Only deleting class and recompiling solution + model clears this error. After that, I can recreate the class, but once added some method, errors appear again.

  • Martin Dráb Profile Picture
    Martin Dráb 230,488 Most Valuable Professional on at
    Abnormal termination with unhandled exception when building extension with CoC of table
    It can't work, because private methods can't be extended with CoC.
     
    By the way, this thread is more than six years old...
  • Abnormal termination with unhandled exception when building extension with Chain of Commands of table
    Hello, is the extension in your project? Make sure it is and rebuild the solution. That worked for me!!
     
  • Peyman Profile Picture
    Peyman 75 on at
    RE: Abnormal termination with unhandled exception when building extension with Chain of Commands of table

    Try to get project with "Get specific version" by source control

  • RE: Abnormal termination with unhandled exception when building extension with Chain of Commands of table

    private void calculateSpaces() is the method I want to wrap in my extension class. And in some point that base function (in base table or other augmented instances of that table) should be mandatory called. See docs.microsoft.com/.../method-wrapping-coc

    Let's suppose:

    private void calculateSpaces()

    {        

       next calculateSpaces();

       info("The spaces have been calculated");

    }

  • André Arnaud de Calavon Profile Picture
    André Arnaud de Cal... 291,791 Super User 2024 Season 2 on at
    RE: Abnormal termination with unhandled exception when building extension with Chain of Commands of table

    Hi Raúl,

    Why are you using the statement "next calculateSpaces()"? This doesn't seem correct to me.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

November Spotlight Star - Khushbu Rajvi

Congratulations to a top community star!

Forum Structure Changes Coming on 11/8!

In our never-ending quest to help the Dynamics 365 Community members get answers faster …

Dynamics 365 Community Platform update – Oct 28

Welcome to the next edition of the Community Platform Update. This is a status …

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,791 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,488 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans