Some comments about the Bonobo::PersistFile interface



Hello guys,

I've been looking at some parts of the Bonobo code recently, and I think
I've detected some problems in the current specification and implementation
of the Bonobo::PersistFile interface.

Here's a summary of what I've noticed:

 * The "save" method implementation does raise in some cases a
   Bonobo::Persist::FileNotFound exception, but this exception is not 
   specified in the corresponding IDL file.

 * I think that in order to implement the "save" method in a reliable
   way, there is a need for some additionnal exceptions.  I am suggesting
   the introduction of at least the following exceptions:

    - OperationInterrupted,  this exception could be raised when the save
      operation has been interrupted and could be restarted/resumed.  One
      exemple of such a problem could be caused by a network connection
      going down.

    - FileSystemFull, this exception could be raised when the save operation
      cannot be completed.  From what I understand this case could lead to
      a data corruption if data has been partially committed to the storage.
      That's why I think that this case needs to be signaled explicitely so
      application relying on this persistence interface can handle such cases
      in a sane way.

    - PermissionDenied, this exception could be raised when it turns out that
      the user does not have the appropriate rights.

There are probably other specific cases of failure that need to be signaled
with an appropriate exception.

IMHO it is important that these kind of exceptions are raised (and specified in
the IDL interface) so that developers using this interface are reminded to
handle all these exceptionnal cases in their applications.

I hope that these comments are appropriate (I have a very limited vision
of Bonobo is trying to do). 

Feel free to comment,  Laurent.
-- 
Laurent Gauthier is lolo@seul.org +;+ ``Keep it simple: as simple as possible,
             at home              ;:;   but no simpler.''                    
        in Nozay (France)         +;+                          -- A. Einstein




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]