Uploaded image for project: 'Empire-DB'
  1. Empire-DB
  2. EMPIREDB-97

Serialization of Empire-DB objects

    XMLWordPrintableJSON

Details

    • Wish
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • Core
    • None

    Description

      Looking at class EmpireException, it holds references to two non-serializable objects: ErrorObject and ErrorType which breaks the contract with the Exception API.

      Now, it would be great for several use-cases to have Empire-DB objects serializable. If ErrorObject would be serializable, it would first make EmpireException serializable (assuming ErrorType to be serializable) and next it would make every other DBXyz object in this hierarchy serializable.

      Here is for reference the mail thread from users@ mailing list:
      ------------------------------

      On Sat, Jan 22, 2011 at 7:26 PM, Eike Kettner <news@eknet.org> wrote:
      > Hi Rainer and Francis,
      >
      > thanks for your quick replies and for giving this a chance. Serializing
      > an exception is sure not something massive used, however sometimes it is
      > quite a nice feature. For example, a JMSLogger sends log events to a
      > broker, and there exceptions are serialized. Well, I see that this is
      > not used often, and more or less a "special case" . Still, I would
      > consider a non-serializable exception a small "bug" - just because it's
      > dictated by the java api.
      >
      > I had a quick look at the sources and as far as I can see, it should be
      > ok to make "everything" serializable. There is always the
      > "serializable-drawback" to consider: users can save objects on disk and
      > later try to load them with a new version of empire-db, where class
      > definitions have changed. Well, I think one can live with this, and it
      > does not apply to many other use-cases of serialization (rmi,
      > serialization used in wicket or messaging), because objects are
      > serialized only for a short amount of time.
      >
      > Regards,
      > Eike
      >
      > On [Sat, 22.01.2011 13:49], Rainer D=F6bele wrote:
      >> Hi Eike,
      >>
      >> I agree with Francis that I don't quite see the point for serializing an Exception, although I must admit that java.lang.Throwable is Serializable.
      >>
      >> But then I agree that we should consider making DBObject or ErrorObject serializeable which then would apply to the entire object hierarchy.
      >> Regards
      >>
      >> Rainer
      >>
      >>
      >> Francis De Brabandere wrote:
      >> > from: Francis De Brabandere francisdb@gmail.com
      >> > to: empire-db-user@incubator.apache.org
      >> > re: Re: Serialization of EmpireException
      >> >
      >> > Hi Eike,
      >> >
      >> > I see no reason for not making them Serializable.
      >> >
      >> > Rainer?
      >> >
      >> > Cheers,
      >> > Francis

      >> >
      >> > On Fri, Jan 21, 2011 at 4:31 PM, Eike Kettner <news@eknet.org> wrote:
      >> > >
      >> > > Hello,
      >> > >
      >> > > I was trying to serialize EmpireException but ran into an error.
      >> > > EmpireException is marked as Serializable (RuntimeException)
      >> > > but it holds references to ErrorObject and ErrorType which are not
      >> > > serializable. Hence a NotSerializableException is thrown.
      >> > >
      >> > > When asking this, I like to ask whether there is a thought about making
      >> > > some model objects like DBRowset DBTable etc serializable. Since most or all
      >> > > DBXyz objects hold model information only it should be okay for them to
      >> > > be serializable, imho? I use messaging and often Apache Wicket which
      >> > > both use serialization, that's why I'm asking this. (For example, I'd
      >> > > like to pass around where and order-by expressions).
      >> > >
      >> > > Kind Regards,

      >> > > Eike
      >> > >
      >> > >
      >> > >
      >> >
      >> >
      >> >
      >> > –
      >> > http://www.somatik.be
      >> > Microsoft gives you windows, Linux gives you the whole house.
      >>
      >

      Attachments

        1. 0_exception.patch
          11 kB
          Eike Kettner
        2. 1_dbobject.patch
          6 kB
          Eike Kettner
        3. serialize.patch
          129 kB
          Eike Kettner
        4. serialize.patch
          129 kB
          Eike Kettner

        Activity

          People

            doebele Rainer Döbele
            eikek Eike Kettner
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: