Thanks for sharing your experience.
I would like to know if you leave your delete/create methods without any implementation at all or do you throw a UnsupportedOperationException? And did you mention this in the JavaDocs from these methods?
Not sure why you received the 44/80 locking score; this has been speculated on
before, but no one knows. Perhaps it only takes one, small subtle error to lose
quite a lot of points (would be my speculation).
Your "Data store" score was at the maximum. If you could, here are some
questions I have (although I've already done the design and development, so at
this point, it is mainly curiousity):
1. Does your database function in "stand alone" mode. That is, can the Sun
examiner write their own code to use your database and test your database?
2. Does your database have different rules that are dynamically set at run-time
either through a preferences file or through the client application hard-coding
them. Here are some rules my database has:
2.a: The definition of a key which defines which fields, if any, participate in
forming a key. Once a key is defined, it is used to further define the primary
key and the mutable key (both are discussed next).
2.a.1: The definition of a key used to determine if there is a duplicate key
exception. Granted URLyBird has no duplicate keys, but the raw database itself
does support them and they are defined through the appropriate method calls.
2.a.2: The definition of a key used to determine which fields of the record
are or are not mutable (modifiable). For the URLyBird client application,
the database is set up so that the update() method can only mutate the last
field (holding the client ID). But the raw database can be set up so that any
number of fields can be made mutable or immutable.
2.b: A creation policy: i.e., whether new records are allowed to be rewritten
over deleted records. I assume you did not have this since you did not write
the delete() and create() methods.
2.c: An update policy: i.e., whether "blind" updates are allowed.
2.d: A lock policy: i.e., can the client lock more than one record or not.