Opened 5 years ago

Closed 4 years ago

#1990 closed defect (done)

The serialized DefaultComparer from Mono has the wrong format

Reported by: ascheibe Owned by: epitzer
Priority: medium Milestone: HeuristicLab 3.3.8
Component: Persistence Version: 3.3.8
Keywords: Cc: sforsten@heuristiclab.com

Description (last modified by ascheibe)

Mono has a type DefaultComparer which inherits from EqualityComparer<T>. The serialized format of this type is e.g. TYPE id="56" typeName= "System.Collections.Generic.EqualityComparer`1+DefaultComparer[[HeuristicLab.Optimization.ICrossover, HeuristicLab.Optimization-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" serializer="HeuristicLab.Persistence.Default.CompositeSerializers.Storable.StorableSerializer, HeuristicLab.Persistence-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec" which the TypeName can't parse correctly (the generic type arguments are missing).

Change History (10)

comment:1 Changed 5 years ago by ascheibe

  • Description modified (diff)

comment:2 Changed 5 years ago by epitzer

  • Status changed from new to accepted

comment:3 Changed 5 years ago by epitzer

r9005 Enable correct parsing of generics and nested classes.

comment:4 Changed 5 years ago by epitzer

  • Owner changed from epitzer to ascheibe
  • Status changed from accepted to reviewing

Please test again. Note that you might have to save the file again, first.

comment:5 Changed 5 years ago by ascheibe

  • Owner changed from ascheibe to epitzer
  • Status changed from reviewing to readytorelease

I have implemented loading of HL files saved with Mono on Windows in r9014 and r9015. It works now with the changes you made in r9005. So thanks very much!

comment:6 Changed 5 years ago by ascheibe

  • Owner changed from epitzer to ascheibe
  • Status changed from readytorelease to assigned

comment:7 Changed 5 years ago by ascheibe

  • Cc sforsten@heuristiclab.com added
  • Owner changed from ascheibe to epitzer

sforsten just told me about a problem which could be related to the changes that you have made. If you open the regression sample and use as engine the Debug Engine and click on Step, the following exception is thrown:

HeuristicLab.Persistence.Auxiliary.ParseError: Could not parse typename: expected "OpenBracket" found ""HeuristicLab"" "HeuristicLab.Parameters.ValueLookupParameter`1[====>H<====HeuristicLab.Data.BoolValue] 
   at System.Windows.Forms.Control.EndInvoke(IAsyncResult asyncResult)
   at HeuristicLab.MainForm.WindowsForms.AsynchronousContentView.Invoke(Delegate method, Object[] args) in c:\dev\trunk\sources\HeuristicLab.MainForm.WindowsForms\3.3\Views\AsynchronousContentView.cs:line 56
   at HeuristicLab.DebugEngine.DebugEngineView.Content_ExecutionStateChanged(Object sender, EventArgs e) in c:\dev\trunk\sources\HeuristicLab.DebugEngine.Views\3.3\DebugEngineView.cs:line 105
   at HeuristicLab.Core.Executable.OnExecutionStateChanged() in c:\dev\trunk\sources\HeuristicLab.Core\3.3\Executable.cs:line 100
   at HeuristicLab.Core.Executable.set_ExecutionState(ExecutionState value) in c:\dev\trunk\sources\HeuristicLab.Core\3.3\Executable.cs:line 51
   at HeuristicLab.Core.Executable.OnPaused() in c:\dev\trunk\sources\HeuristicLab.Core\3.3\Executable.cs:line 121
   at HeuristicLab.DebugEngine.DebugEngine.OnPaused() in c:\dev\trunk\sources\HeuristicLab.DebugEngine\3.3\DebugEngine.cs:line 215
   at HeuristicLab.DebugEngine.DebugEngine.Step(Boolean skipStackOperations) in c:\dev\trunk\sources\HeuristicLab.DebugEngine\3.3\DebugEngine.cs:line 173
   at HeuristicLab.DebugEngine.DebugEngineView.<>c__DisplayClass2.<stepButton_Click>b__0(Object s, DoWorkEventArgs a) in c:\dev\trunk\sources\HeuristicLab.DebugEngine.Views\3.3\DebugEngineView.cs:line 130
   at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
Last edited 5 years ago by ascheibe (previous) (diff)

comment:8 Changed 5 years ago by ascheibe

  • Owner changed from epitzer to ascheibe
  • Status changed from assigned to reviewing

r9018 fixed crash in the debug engine: use the FullName of a type instead of ToString

comment:9 Changed 5 years ago by ascheibe

  • Owner changed from ascheibe to epitzer
  • Status changed from reviewing to readytorelease

I'm setting the ticket immediately to readytorelease as the bugfix of r9018 has already been discussed with and approved by epitzer.

comment:10 Changed 4 years ago by swagner

  • Resolution set to done
  • Status changed from readytorelease to closed
  • Version changed from 3.3.7 to 3.3.8
Note: See TracTickets for help on using tickets.