Jena2 Database Interface - Open Issues

Known Bugs

Plain Literals vs. XSD String-typed Literals
The RDF recommendation states that if an XSD string-typed literal and a plain literal (no language tag) have the same value (see Literal.getValue()), then they are considered semantically equivalent, i.e., Literal.sameValueAs() returns true.  Unfortunately, the database layer does not treat them as equivalent. For example, if a statement with an xsd string-typed literal for an object is added to a database model, then in a subsequent attempt to list all statements with that value as a plain literal, the original statement (with the typed literal) will not be included in the result set.
Database Lock
The Jena2 storage subsystem uses a lock (or mutex)  internally to implement a critical section for operations that modify the database structure (create/delete tables). The lock is implemented as a database table, i.e., if the table exists in the database, the lock is held. Normally, this lock should be transparent to applications. But if an application has an exception while in a critical section, the database may remain locked for subsequent applications. In this case, a user must manually unlock the database either by calling DriverRDB.unlockDB() or by deleting the table (Jena_Mutex) from the database.