Compiler Error after moving processes/timers to different espace

Compiler Error after moving processes/timers to different espace

  

I am refactoring some modules and one of the refactors is to move processes and timers to a different espace.

The destination espace (e2) publishes without issue, but the espace where the processes and timers were cut from (e1), now throws an internal error during the compile step. Older versions of the espace (e1) publish fine.

We are hosting in our own cloud. Platform server version 10.0.828.0. IDE version 10.0.830.0

The error is:


Internal Error

Invalid compiler output.
Object reference not set to an instance of an object.

Exception Details:
[1] System.NullReferenceException: Object reference not set to an instance of an object.
   at OutSystems.HubEdition.Compiler.QueryInstance.GetIdentifierFromOutputVar(AbstractVariable var)
   at OutSystems.HubEdition.Compiler.Nodes.AbstractQuery.OutSystems.HubEdition.Compiler.Interfaces.IQuery.get_OutputListIdentifier()
   at OutSystems.HubEdition.Compiler.Optimizer.OptimizerGraphs.OptimizerNodes.OptimizerQueryNode..ctor(IQuery node)
   at OutSystems.HubEdition.Compiler.Optimizer.OptimizerGraphs.ActionFlowGraph.CreateNode(AbstractNode actionNode)
   at OutSystems.HubEdition.Compiler.Optimizer.OptimizerGraphs.ActionFlowGraph..ctor(IActionFlow action, Boolean expandRefreshWidgets)
   at OutSystems.HubEdition.Compiler.Interfaces.ActionWithPrivateOptimizationExtensions.GetOptimizationData(IActionWithPrivateOptimization action, ActionFlowGraph& actionGraph)
   at OutSystems.HubEdition.Compiler.Flows.AbstractActionFlow.OptimizeUsingOptimizationData(Func`1 optimizationDataGetter)
   at OutSystems.HubEdition.Compiler.Flows.AbstractActionFlow.InitDumpDecl()
   at OutSystems.HubEdition.Compiler.Flows.AbstractActionFlow.DumpStructuredCode(TextWriter code, Boolean webservicedecl)
   at OutSystems.HubEdition.Compiler.Flows.AbstractStandaloneActionFlow.DumpDecl(TextWriter writer)
   at OutSystems.HubEdition.Compiler.Flows.AbstractStandaloneActionFlow.DumpClassDecl(TextWriter writer)
   at OutSystems.HubEdition.Compiler.ESpace.DumpCSharpAction(IAction action, Action`1 dumpSourceCode, Action`1 dumpQueueSmsNodesSourceCode)
   at OutSystems.HubEdition.Compiler.ESpace.DumpCSharpUserActions()
   at OutSystems.HubEdition.Compiler.ESpace.DumpCSharpActions()
   at OutSystems.HubEdition.Compiler.ESpace.DumpActions()
   at OutSystems.HubEdition.Compiler.ESpace.Dump()
   at OutSystems.HubEdition.Compiler.Compiler.InnerCompile(CompilationContext context)
   at OutSystems.HubEdition.Compiler.Compiler.Compile(CompilationContext context)


Hoping someone can help me out here...

Hanno

try to, on commandline, a "<path>/servicestudio.exe -recover <path>yourmodule.oml"...

This hopefully fixes the compile error afterwards

Thank you, J. I will try it out.

Unfortunately, this did not resolve my issue...

I ran into another compiler error:

Exception Details:

[1] System.NullReferenceException: Object reference not set to an instance of an object.
at OutSystems.HubEdition.Compiler.ESpace.DumpStructuresCSharp()
at OutSystems.HubEdition.Compiler.ESpace.Dump()
at OutSystems.HubEdition.Compiler.Compiler.InnerCompile(CompilationContext context)
at OutSystems.HubEdition.Compiler.Compiler.Compile(CompilationContext context)


Hi Hanno,

Any reason you don't contact OS Support? If you haven't already, I'd advise you to do so.

Solution

I managed to get around the compilation errors by taking a very slow and cumbersome approach.

I proceeded to copy across all the functionality I wanted to move to the new espace and published that espace. This includes timers, processes, structures, and actions.

Then one by one I would remove the items (timer, process, structure, action) from the original espace and publish after each delete action I performed. Eventually, all copied logic was removed from the original espace. 


Solution

Seems like a bug though. Couldn't hurt to inform OS Support. That said, be aware that all the "old" Processes that aren't Closed yet will no longer function.

Kilian Hekhuis wrote:

Seems like a bug though. Couldn't hurt to inform OS Support. That said, be aware that all the "old" Processes that aren't Closed yet will no longer function.

Thank you, Kilian. We are aware of the processes that will no longer function, thanks for the reminder.

I will definitely compile a "report" and submit to OutSystems support. 

The reason I did not contact support yet was to try and establish what causes the compiler error before submitting a support ticket. 


Thanks for the feedback!