I have had this problem on and off from 11.x to now 11.6 when replacing a data table.
It is most annoying as the dxp loads fine, I can replace the table successfully and all calcs, data functions, visualisations work perfectly but I cannot save the updated dxp and receive the error below.
If you can provide some insight/guidance as to the cause of the error, then I might be able to resolve it. Appreciate your review of this.
Error message: Unable to save the file EAW_20__SF11.6__21.12.22__Lib20.06.04.9011_DI_API14.dxp.
SerializationException at Spotfire.Dxp.Framework:
Attempt to read from a node that is in state 'Disposed': Spotfire.Dxp.Framework.DocumentModel.State.DisposedUndoablePropertyNodeState`1[[spotfire.Dxp.Data.DataColumnImpl, Spotfire.Dxp.Data, Version=53.0.16605.3360, Culture=neutral, PublicKeyToken=789861576bd64dc5]].
Object reference chain leading to the fault (closest reference first):
Spotfire.Dxp.Application.CustomNodeStandIn.ActiveColumn
Spotfire.Dxp.Application.CustomNodes.Nodes[1]
Spotfire.Dxp.Application.Document.CustomNodes
(HRESULT: 8013150C)
Stack Trace:
at Spotfire.Dxp.Framework.Persistence.Xml.SerializationFormatter.Serialize(Object graph)
at Spotfire.Dxp.Framework.Persistence.PersistenceManager.SerializeForPersistence(Stream serializationStream, Object graph, IServiceProvider serviceProvider, PersistenceVersionAttribute compatibilityVersion, SerializationContext oldContext, SystemTypeSerializationSettings systemTypeSerializationSettings)
at Spotfire.Dxp.Framework.Persistence.PersistenceManager.c__DisplayClass20_0.b__0()
at Spotfire.Dxp.Framework.ApplicationModel.Progress.ExecuteSubtask(String title, ProgressOperation operation)
at Spotfire.Dxp.Framework.Persistence.PersistenceManager.Save(DocumentTypes documentType, DocumentNode doc, IDocumentSaveSettings settings, Stream targetStream)
at Spotfire.Dxp.Framework.Persistence.PersistenceManager.SaveToTempFile(DocumentTypes documentType, DocumentNode doc, IDocumentSaveSettings settings, Disposables cleanup, FileMetadata& fileMetadata)
at Spotfire.Dxp.Framework.Persistence.PersistenceManager.Save(DocumentTypes documentType, DocumentNode doc, IDocumentSaveSettings settings, String fileName)
at Spotfire.Dxp.Framework.DocumentModel.DocumentManager`1.c__DisplayClass63_0.b__0()
at Spotfire.Dxp.Framework.ApplicationModel.Progress.c__DisplayClass22_0.b__0()
at Spotfire.Dxp.Framework.ApplicationModel.MonitorableProgress.Start[T](Func`1 action)
at Spotfire.Dxp.Forms.Application.FormsProgressService.ProgressThread.DoOperationLoop()
InvalidOperationException at Spotfire.Dxp.Framework:
Attempt to read from a node that is in state 'Disposed': Spotfire.Dxp.Framework.DocumentModel.State.DisposedUndoablePropertyNodeState`1[[spotfire.Dxp.Data.DataColumnImpl, Spotfire.Dxp.Data, Version=53.0.16605.3360, Culture=neutral, PublicKeyToken=789861576bd64dc5]]. (HRESULT: 80131509)
Stack Trace:
at Spotfire.Dxp.Framework.DocumentModel.State.DisposedUndoableNodeState.LimitGenerationUsedByRuntimeProperty()
at Spotfire.Dxp.Framework.DocumentModel.UndoableProperty`1.get_Value()
at Spotfire.Dxp.Framework.DocumentModel.DocumentNode.SerializeProperty[T](SerializationInfo info, StreamingContext context, UndoableProperty`1 property, String fieldNameOverride)
at Spotfire.Dxp.Data.DataColumn.GetObjectData(SerializationInfo info, StreamingContext context)
at Spotfire.Dxp.Framework.DocumentModel.Node.System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
at Spotfire.Dxp.Framework.Persistence.PersistenceManager.GetObjectData(Object obj, SerializationInfo info, PrunerBase pruner, StreamingContext context)
at Spotfire.Dxp.Framework.Persistence.PersistenceManager.GetSerializationInfo(Object obj, Type objType, PrunerBase pruner, StreamingContext context)
at Spotfire.Dxp.Framework.Persistence.Xml.SerializationFormatter.SerializeObject(Int64 id, Object obj, Type objType)
at Spotfire.Dxp.Framework.Persistence.Xml.SerializationFormatter.SerializeDocumentNodeWhileSaving(Node node, ReferenceInfo referenceInfo)
at Spotfire.Dxp.Framework.Persistence.Xml.SerializationFormatter.SerializeField(String name, Object obj, Type declaredFieldType, String containingObjTypeName)