Changeset 16933


Ignore:
Timestamp:
05/09/19 08:59:22 (3 months ago)
Author:
gkronber
Message:

#2520 changed exception handling / retry with old persistence format in PersistenceContentManager

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/HeuristicLab.Core/3.3/PersistenceContentManager.cs

    r16907 r16933  
    2424using HeuristicLab.Persistence.Default.Xml;
    2525using HEAL.Attic;
     26using System;
    2627
    2728namespace HeuristicLab.Core {
     
    3233      // first try to load using the new persistence format
    3334      var ser = new ProtoBufSerializer();
    34       var o = (IStorableContent)ser.Deserialize(filename, out SerializationInfo info);
    35       if (info.SerializedTypes != null) {
    36         return o;
     35      try {
     36        return (IStorableContent)ser.Deserialize(filename, out SerializationInfo info);
     37      } catch (Exception e) {
     38        try {
     39          // try old format if new format fails
     40          return XmlParser.Deserialize<IStorableContent>(filename);
     41        } catch (Exception e2) {
     42          throw new AggregateException($"Cannot open file {filename}", e, e2);
     43        }
    3744      }
    38       // try old format if new format fails
    39       return XmlParser.Deserialize<IStorableContent>(filename);
    4045    }
    4146
Note: See TracChangeset for help on using the changeset viewer.