Ignore:
Timestamp:
2/12/2010 6:24:18 AM (2 years ago)
Author:
lowjoel
Message:

When we load a task list from the stream the stream may not be valid. If so, throw an InvalidDataException? instead. This prevents exceptions which are specific to the implementation of the Executor class from letting its exceptions bubble up the stack.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/eraser6/Eraser.Manager/DirectExecutor.cs

    r1802 r1829  
    958958                    StreamingContextStates.All, Owner); 
    959959                BinaryFormatter formatter = new BinaryFormatter(null, context); 
    960                 List<Task> deserialised = (List<Task>)formatter.Deserialize(stream); 
    961                 list.AddRange(deserialised); 
    962  
    963                 foreach (Task task in deserialised) 
    964                 { 
    965                     Owner.OnTaskAdded(new TaskEventArgs(task)); 
    966                     if (task.Schedule is RecurringSchedule) 
    967                         Owner.ScheduleTask(task); 
     960 
     961                try 
     962                { 
     963                    List<Task> deserialised = (List<Task>)formatter.Deserialize(stream); 
     964                    list.AddRange(deserialised); 
     965 
     966                    foreach (Task task in deserialised) 
     967                    { 
     968                        Owner.OnTaskAdded(new TaskEventArgs(task)); 
     969                        if (task.Schedule is RecurringSchedule) 
     970                            Owner.ScheduleTask(task); 
     971                    } 
     972                } 
     973                catch (FileLoadException e) 
     974                { 
     975                    throw new InvalidDataException(e.Message, e); 
     976                } 
     977                catch (SerializationException e) 
     978                { 
     979                    throw new InvalidDataException(e.Message, e); 
    968980                } 
    969981            } 
Note: See TracChangeset for help on using the changeset viewer.