Derby
  1. Derby
  2. DERBY-2319

JDBC url attribute territory accepted and ignored after database create time. Instead, it should throw an error.

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: 10.3.1.4
    • Fix Version/s: None
    • Component/s: JDBC
    • Urgency:
      Normal
    • Issue & fix info:
      Repro attached

      Description

      As per Reference Manual, territory attribute can be specified only at database creation time/upgrade time.

      I created a database with territory=fr. Later, I connected back to the existing database with a new value for territory=it. There was no error thrown for the territory attribute. The services.properties file continued to have the territory specified at the database create time, ie derby.serviceLocale=fr but I had expected to see an error when a user attempts to change the territory attribute later on,

      eg
      $ java -Dij.exceptionTrace=true org.apache.derby.tools.ij
      ij version 10.3
      ij> connect 'jdbc:derby:c:/dellater/db1;create=true;territory=fr';
      ij> exit;

      Try to give territory attribute again
      $ java -Dij.exceptionTrace=true org.apache.derby.tools.ij
      ij version 10.3
      ij> connect 'jdbc:derby:c:/dellater/db1;territory=it';
      ij> exit;

        Activity

        Hide
        Mamta A. Satoor added a comment -

        Seems like this is a generic Derby behavior for attributes (and not specific to territory attribute) ie attributes that make sense at create database time are ignored if specified on an existing database. I noticed that behavior with attribute logDevice.

        Following ij session creates the database in c:/dellater but it's log in c:/dellater1
        $ java -Dij.exceptionTrace=true org.apache.derby.tools.ij
        ij version 10.3
        ij> connect 'jdbc:derby:c:/dellater/db1;create=true;logDevice=c:/dellater1';
        ij> exit;

        Now, if I try to specify a new location for log on the existing database, it simply gets ignored. Log continues to stay in c:/dellater1 even after following ij session and no error is generated for specifying logDevice attribute for the existing database.
        $ java -Dij.exceptionTrace=true org.apache.derby.tools.ij
        ij version 10.3
        ij> connect 'jdbc:derby:c:/dellater/db1;logDevice=c:/dellater';
        ij> exit;

        Show
        Mamta A. Satoor added a comment - Seems like this is a generic Derby behavior for attributes (and not specific to territory attribute) ie attributes that make sense at create database time are ignored if specified on an existing database. I noticed that behavior with attribute logDevice. Following ij session creates the database in c:/dellater but it's log in c:/dellater1 $ java -Dij.exceptionTrace=true org.apache.derby.tools.ij ij version 10.3 ij> connect 'jdbc:derby:c:/dellater/db1;create=true;logDevice=c:/dellater1'; ij> exit; Now, if I try to specify a new location for log on the existing database, it simply gets ignored. Log continues to stay in c:/dellater1 even after following ij session and no error is generated for specifying logDevice attribute for the existing database. $ java -Dij.exceptionTrace=true org.apache.derby.tools.ij ij version 10.3 ij> connect 'jdbc:derby:c:/dellater/db1;logDevice=c:/dellater'; ij> exit;
        Hide
        Rick Hillegas added a comment -

        Triaged for 10.5.2: assigned normal urgency and noted that a repro is available.

        Show
        Rick Hillegas added a comment - Triaged for 10.5.2: assigned normal urgency and noted that a repro is available.

          People

          • Assignee:
            Unassigned
            Reporter:
            Mamta A. Satoor
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:

              Development