Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-4172

You can open a read-write connection to a database which was originally opened by another thread using the classpath subprotocol

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 10.6.1.0
    • None
    • JDBC
    • Normal

    Description

      The original connection, using the classpath subprotocol, was supposed to open the DATABASE (not the connection) as read-only, according to the Developer's Guide section titled "Database connection examples". However, I am able to write to this database in another connection which opens the database using the default, file-based protocol.

      At a minimum, the documentation is wrong. But the documentation may be trying to impose a consistent, easily described model on the behavior of our subprotocols. It may be that the behavior of our subprotocols cannot be described by a simple set of rules that users can grasp easily.

      To show this problem, I created a database and then moved it into a directory on my classpath (in this case, trunk/classes). Here is a script which shows this behavior:

      connect 'jdbc:derby:classpath:derby10.6' as conn1;

      – fails because a database which is opened on the classpath is supposed to be marked as read-only
      insert into t( a ) values 1;

      connect 'jdbc:derby:trunk/classes/derby10.6' as conn2;

      – this succeeds even though the database is supposed to be read-only
      – according to the Developer's Guide section "Database connection examples"
      insert into t( a ) values 2;

      select * from t;
      delete from t;

      Attachments

        Activity

          People

            Unassigned Unassigned
            rhillegas Richard N. Hillegas
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: