You can open a read-write connection to a database which was originally opened
by another thread using the classpath subprotocol
--------------------------------------------------------------------------------------------------------------------------------
Key: DERBY-4172
URL: https://issues.apache.org/jira/browse/DERBY-4172
Project: Derby
Issue Type: Bug
Components: JDBC
Affects Versions: 10.6.0.0
Reporter: Rick Hillegas
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;
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.