midspace / SEToolbox

This is a comprehensive 'world' Save Editor for the 'Space Engineers' Game.
143 stars 61 forks source link

Exception - Cannot access a closed Stream. While performing drag-drop of asteroids from world to world. #23

Closed EngineerBean closed 8 years ago

EngineerBean commented 8 years ago

I realise you have a lot on your plate and may not get to this issue soon, but thought I should inform you anyway.

Log Name:      Application
Source:        SEToolbox.exe
Date:          15/01/2016 2:54:04 AM
Event ID:      0
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      Games-PC
Description:
2016-01-15 02:54:04,907 [1] FATAL SEToolbox.Support.DiagnosticsLogging [(null)] - Unhandled Exception
Application: C:\Program Files (x86)\MidSpace\SEToolbox\SEToolbox.exe
CommandLine: "C:\Program Files (x86)\MidSpace\SEToolbox\SEToolbox.exe" 
CurrentDirectory: C:\Program Files (x86)\MidSpace\SEToolbox
SEBinPath: D:\SteamLibrary\SteamApps\common\SpaceEngineers\Bin64
SEBinVersion: 1.116.11
ProcessorCount: 8
OSVersion: Microsoft Windows NT 6.2.9200.0
Version: 4.0.30319.42000
Is64BitOperatingSystem: True
IntPtr.Size: 8
IsAdmin: False
CurrentUICulture: en-US
CurrentCulture: en-AU

Files:
2015-03-07T21:23:16.0000000+10:00   498,176 2014.2.17.1 HelixToolkit.Wpf.dll
2015-03-07T21:23:16.0000000+10:00   200,704 0.86.0.518  ICSharpCode.SharpZipLib.dll
2015-03-07T21:23:16.0000000+10:00   301,056 1.2.13.0    log4net.dll
2016-01-09T01:55:53.3983972+10:00   15,288  1.0.0.0 MedievalEngineers.ObjectBuilders.dll
2016-01-09T01:55:53.3983972+10:00   1,310,136   1.0.0.0 MedievalEngineers.ObjectBuilders.XmlSerializers.dll
2016-01-09T01:55:44.6252820+10:00   107,448 1.0.0.0 Sandbox.Common.dll
2016-01-08T20:06:10.0000000+10:00   1,175,040   01.116.008.1    SEToolbox.exe
2015-03-07T21:23:16.0000000+10:00   747     SEToolbox.exe.config
2016-01-08T18:14:48.0000000+10:00   27,648  1.0.0.0 SEToolbox.ImageLibrary.dll
2016-01-08T20:06:06.0000000+10:00   7,680   1.0.0.0 SEToolbox.ImageShaders.dll
2016-01-08T20:06:10.0000000+10:00   2,272,768       SEToolbox.pdb
2016-01-08T18:14:48.0000000+10:00   51,712  1.0.0.0 SEToolboxUpdate.exe
2016-01-09T01:55:47.2856270+10:00   32,696  1.0.0.0 SpaceEngineers.ObjectBuilders.dll
2016-01-09T01:55:47.8786952+10:00   13,412,280  1.0.0.0 SpaceEngineers.ObjectBuilders.XmlSerializers.dll
2015-03-07T21:23:14.0000000+10:00   39,936  2.0.20525.0 System.Windows.Interactivity.dll
2016-01-09T01:56:01.0383680+10:00   608,184 1.0.0.0 VRage.dll
2016-01-09T01:56:00.0562439+10:00   395,704 1.0.0.0 VRage.Game.dll
2016-01-09T01:55:48.5682829+10:00   3,068,856   1.0.0.0 VRage.Game.XmlSerializers.dll
2016-01-09T01:56:01.1863869+10:00   624,056 1.0.0.0 VRage.Library.dll
2016-01-09T01:55:14.5609612+10:00   465,336 1.0.0.0 VRage.Math.dll
2015-03-07T21:23:16.0000000+10:00   64,512  2.2.0   WPFLocalizeExtension.dll
2015-03-07T21:23:18.0000000+10:00   26,624  1.1.6.3 XAMLMarkupExtensions.dll

System.ObjectDisposedException: Cannot access a closed Stream.
   at System.IO.__Error.StreamIsClosed()
   at System.IO.MemoryStream.set_Position(Int64 value)
   at SEToolbox.Interop.SpaceEngineersApi.Deserialize[T](String xml) in d:\Development\SpaceEngineers\Codeplex\Main\SEToolbox\SEToolbox\Interop\SpaceEngineersApi.cs:line 91
   at SEToolbox.Models.StructureVoxelModel.OnDeserializedMethod(StreamingContext context) in d:\Development\SpaceEngineers\Codeplex\Main\SEToolbox\SEToolbox\Models\StructureVoxelModel.cs:line 278
   at System.Runtime.Serialization.SerializationEvents.InvokeOnDeserialized(Object obj, StreamingContext context)
   at System.Runtime.Serialization.ObjectManager.RaiseOnDeserializedEvent(Object obj)
   at System.Runtime.Serialization.ObjectManager.RegisterObject(Object obj, Int64 objectID, SerializationInfo info, Int64 idOfContainingObj, MemberInfo member, Int32[] arrayIndex)
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.RegisterObject(Object obj, ParseRecord pr, ParseRecord objectPr, Boolean bIsString)
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObjectEnd(ParseRecord pr)
   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
   at System.Windows.DataObject.OleConverter.ReadObjectFromHandle(IntPtr handle)
   at System.Windows.DataObject.OleConverter.GetDataFromHGLOBAL(String format, IntPtr hglobal)
   at System.Windows.DataObject.OleConverter.GetDataFromOleHGLOBAL(String format, DVASPECT aspect, Int32 index)
   at System.Windows.DataObject.OleConverter.GetDataFromBoundOleDataObject(String format, DVASPECT aspect, Int32 index)
   at System.Windows.DataObject.OleConverter.GetData(String format, Boolean autoConvert, DVASPECT aspect, Int32 index)
   at System.Windows.DataObject.OleConverter.GetData(String format, Boolean autoConvert)
   at SEToolbox.Services.ListBoxDropBehavior.AssociatedObject_Drop(Object sender, DragEventArgs e) in d:\Development\SpaceEngineers\Codeplex\Main\SEToolbox\SEToolbox\Services\ListBoxDropBehavior.cs:line 98
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.OleDropTarget.RaiseDragEvent(RoutedEvent dragEvent, Int32 dragDropKeyStates, Int32& effects, DependencyObject target, Point targetPoint)
   at System.Windows.OleDropTarget.MS.Win32.UnsafeNativeMethods.IOleDropTarget.OleDrop(Object data, Int32 dragDropKeyStates, Int64 point, Int32& effects)
   at MS.Win32.UnsafeNativeMethods.DoDragDrop(IDataObject dataObject, IOleDropSource dropSource, Int32 allowedEffects, Int32[] finalEffect)
   at System.Windows.OleServicesContext.OleDoDragDrop(IDataObject dataObject, IOleDropSource dropSource, Int32 allowedEffects, Int32[] finalEffect)
   at System.Windows.DragDrop.OleDoDragDrop(DependencyObject dragSource, DataObject dataObject, DragDropEffects allowedEffects)
   at System.Windows.DragDrop.DoDragDrop(DependencyObject dragSource, Object data, DragDropEffects allowedEffects)
   at SEToolbox.Services.ListBoxItemDragBehavior.AssociatedObject_MouseLeave(Object sender, MouseEventArgs e) in d:\Development\SpaceEngineers\Codeplex\Main\SEToolbox\SEToolbox\Services\ListBoxItemDragBehavior.cs:line 154
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.ReverseInheritProperty.FirePropertyChangeInAncestry(DependencyObject element, Boolean oldValue, DeferredElementTreeState treeState, Action`2 originChangedAction)
   at System.Windows.ReverseInheritProperty.FirePropertyChangeInAncestry(DependencyObject element, Boolean oldValue, DeferredElementTreeState treeState, Action`2 originChangedAction)
   at System.Windows.ReverseInheritProperty.OnOriginValueChanged(DependencyObject oldOrigin, DependencyObject newOrigin, IList`1 otherOrigins, DeferredElementTreeState& oldTreeState, Action`2 originChangedAction)
   at System.Windows.Input.MouseDevice.ChangeMouseOver(IInputElement mouseOver, Int32 timestamp)
   at System.Windows.Input.MouseDevice.PreNotifyInput(Object sender, NotifyInputEventArgs e)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="SEToolbox.exe" />
    <EventID Qualifiers="0">0</EventID>
    <Level>2</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2016-01-14T16:54:04.945905200Z" />
    <EventRecordID>6128</EventRecordID>
    <Channel>Application</Channel>
    <Computer>Games-PC</Computer>
    <Security />
  </System>
  <EventData>
    <Data>2016-01-15 02:54:04,907 [1] FATAL SEToolbox.Support.DiagnosticsLogging [(null)] - Unhandled Exception
Application: C:\Program Files (x86)\MidSpace\SEToolbox\SEToolbox.exe
CommandLine: "C:\Program Files (x86)\MidSpace\SEToolbox\SEToolbox.exe" 
CurrentDirectory: C:\Program Files (x86)\MidSpace\SEToolbox
SEBinPath: D:\SteamLibrary\SteamApps\common\SpaceEngineers\Bin64
SEBinVersion: 1.116.11
ProcessorCount: 8
OSVersion: Microsoft Windows NT 6.2.9200.0
Version: 4.0.30319.42000
Is64BitOperatingSystem: True
IntPtr.Size: 8
IsAdmin: False
CurrentUICulture: en-US
CurrentCulture: en-AU

Files:
2015-03-07T21:23:16.0000000+10:00   498,176 2014.2.17.1 HelixToolkit.Wpf.dll
2015-03-07T21:23:16.0000000+10:00   200,704 0.86.0.518  ICSharpCode.SharpZipLib.dll
2015-03-07T21:23:16.0000000+10:00   301,056 1.2.13.0    log4net.dll
2016-01-09T01:55:53.3983972+10:00   15,288  1.0.0.0 MedievalEngineers.ObjectBuilders.dll
2016-01-09T01:55:53.3983972+10:00   1,310,136   1.0.0.0 MedievalEngineers.ObjectBuilders.XmlSerializers.dll
2016-01-09T01:55:44.6252820+10:00   107,448 1.0.0.0 Sandbox.Common.dll
2016-01-08T20:06:10.0000000+10:00   1,175,040   01.116.008.1    SEToolbox.exe
2015-03-07T21:23:16.0000000+10:00   747     SEToolbox.exe.config
2016-01-08T18:14:48.0000000+10:00   27,648  1.0.0.0 SEToolbox.ImageLibrary.dll
2016-01-08T20:06:06.0000000+10:00   7,680   1.0.0.0 SEToolbox.ImageShaders.dll
2016-01-08T20:06:10.0000000+10:00   2,272,768       SEToolbox.pdb
2016-01-08T18:14:48.0000000+10:00   51,712  1.0.0.0 SEToolboxUpdate.exe
2016-01-09T01:55:47.2856270+10:00   32,696  1.0.0.0 SpaceEngineers.ObjectBuilders.dll
2016-01-09T01:55:47.8786952+10:00   13,412,280  1.0.0.0 SpaceEngineers.ObjectBuilders.XmlSerializers.dll
2015-03-07T21:23:14.0000000+10:00   39,936  2.0.20525.0 System.Windows.Interactivity.dll
2016-01-09T01:56:01.0383680+10:00   608,184 1.0.0.0 VRage.dll
2016-01-09T01:56:00.0562439+10:00   395,704 1.0.0.0 VRage.Game.dll
2016-01-09T01:55:48.5682829+10:00   3,068,856   1.0.0.0 VRage.Game.XmlSerializers.dll
2016-01-09T01:56:01.1863869+10:00   624,056 1.0.0.0 VRage.Library.dll
2016-01-09T01:55:14.5609612+10:00   465,336 1.0.0.0 VRage.Math.dll
2015-03-07T21:23:16.0000000+10:00   64,512  2.2.0   WPFLocalizeExtension.dll
2015-03-07T21:23:18.0000000+10:00   26,624  1.1.6.3 XAMLMarkupExtensions.dll

System.ObjectDisposedException: Cannot access a closed Stream.
   at System.IO.__Error.StreamIsClosed()
   at System.IO.MemoryStream.set_Position(Int64 value)
   at SEToolbox.Interop.SpaceEngineersApi.Deserialize[T](String xml) in d:\Development\SpaceEngineers\Codeplex\Main\SEToolbox\SEToolbox\Interop\SpaceEngineersApi.cs:line 91
   at SEToolbox.Models.StructureVoxelModel.OnDeserializedMethod(StreamingContext context) in d:\Development\SpaceEngineers\Codeplex\Main\SEToolbox\SEToolbox\Models\StructureVoxelModel.cs:line 278
   at System.Runtime.Serialization.SerializationEvents.InvokeOnDeserialized(Object obj, StreamingContext context)
   at System.Runtime.Serialization.ObjectManager.RaiseOnDeserializedEvent(Object obj)
   at System.Runtime.Serialization.ObjectManager.RegisterObject(Object obj, Int64 objectID, SerializationInfo info, Int64 idOfContainingObj, MemberInfo member, Int32[] arrayIndex)
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.RegisterObject(Object obj, ParseRecord pr, ParseRecord objectPr, Boolean bIsString)
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObjectEnd(ParseRecord pr)
   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
   at System.Windows.DataObject.OleConverter.ReadObjectFromHandle(IntPtr handle)
   at System.Windows.DataObject.OleConverter.GetDataFromHGLOBAL(String format, IntPtr hglobal)
   at System.Windows.DataObject.OleConverter.GetDataFromOleHGLOBAL(String format, DVASPECT aspect, Int32 index)
   at System.Windows.DataObject.OleConverter.GetDataFromBoundOleDataObject(String format, DVASPECT aspect, Int32 index)
   at System.Windows.DataObject.OleConverter.GetData(String format, Boolean autoConvert, DVASPECT aspect, Int32 index)
   at System.Windows.DataObject.OleConverter.GetData(String format, Boolean autoConvert)
   at SEToolbox.Services.ListBoxDropBehavior.AssociatedObject_Drop(Object sender, DragEventArgs e) in d:\Development\SpaceEngineers\Codeplex\Main\SEToolbox\SEToolbox\Services\ListBoxDropBehavior.cs:line 98
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.OleDropTarget.RaiseDragEvent(RoutedEvent dragEvent, Int32 dragDropKeyStates, Int32&amp; effects, DependencyObject target, Point targetPoint)
   at System.Windows.OleDropTarget.MS.Win32.UnsafeNativeMethods.IOleDropTarget.OleDrop(Object data, Int32 dragDropKeyStates, Int64 point, Int32&amp; effects)
   at MS.Win32.UnsafeNativeMethods.DoDragDrop(IDataObject dataObject, IOleDropSource dropSource, Int32 allowedEffects, Int32[] finalEffect)
   at System.Windows.OleServicesContext.OleDoDragDrop(IDataObject dataObject, IOleDropSource dropSource, Int32 allowedEffects, Int32[] finalEffect)
   at System.Windows.DragDrop.OleDoDragDrop(DependencyObject dragSource, DataObject dataObject, DragDropEffects allowedEffects)
   at System.Windows.DragDrop.DoDragDrop(DependencyObject dragSource, Object data, DragDropEffects allowedEffects)
   at SEToolbox.Services.ListBoxItemDragBehavior.AssociatedObject_MouseLeave(Object sender, MouseEventArgs e) in d:\Development\SpaceEngineers\Codeplex\Main\SEToolbox\SEToolbox\Services\ListBoxItemDragBehavior.cs:line 154
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.ReverseInheritProperty.FirePropertyChangeInAncestry(DependencyObject element, Boolean oldValue, DeferredElementTreeState treeState, Action`2 originChangedAction)
   at System.Windows.ReverseInheritProperty.FirePropertyChangeInAncestry(DependencyObject element, Boolean oldValue, DeferredElementTreeState treeState, Action`2 originChangedAction)
   at System.Windows.ReverseInheritProperty.OnOriginValueChanged(DependencyObject oldOrigin, DependencyObject newOrigin, IList`1 otherOrigins, DeferredElementTreeState&amp; oldTreeState, Action`2 originChangedAction)
   at System.Windows.Input.MouseDevice.ChangeMouseOver(IInputElement mouseOver, Int32 timestamp)
   at System.Windows.Input.MouseDevice.PreNotifyInput(Object sender, NotifyInputEventArgs e)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean&amp; handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
</Data>
  </EventData>
</Event>
midspace commented 8 years ago

Yes, I believe this is the code I changed to get 1.116 working in the SpaceEngineersApi.cs in changeset https://github.com/midspace/SEToolbox/commit/c522fb1ac546bf3cd6ce395a29a702d2c092d6b5 I had the feeling I'd borked something up there.

midspace commented 8 years ago

@EngineerBean could you retest this with the 1.117 release. https://github.com/midspace/SEToolbox/releases/tag/v1.117.002.1

I believe I've fixed this already.

EngineerBean commented 8 years ago

I have tested and can confirm that the issue is resolved, thankyou very much for your quick work.