Skip to Main Content

SQL Developer Data Modeler

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

BUG - Merging design branches in Git repository causes severe error report in external log

FlyingDutchmanAug 15 2024 — edited Sep 2 2024

Hi there,

SDDM Version: Version 23.1.0.087 Build: 087.0806

Windows 10

I was trying to get to grips with using the Git Version Control system from SQL Developer Data Modeler, so followed the text in the help system under “Using Versioning” and “Using Git with DataModeler”. At the point of “Changing the design - branching and merging” I ran into problems and eventually found in the External Log (Menu→View→External Log), the error message:

2024-08-15 15:01:12 SEVERE - java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 1

As I have already stated, I was following the tutorial as closely as possible, but I will describe what I did here:

  1. Create a remote Git repository on the local file system using the “GIT INIT ”
  2. Use the SDDM Git clone (Menu→Team→Git-Clone) command to create a local repository directory.
  3. Create a new design with three entities called ENT1, ENT2, ENT3 each with one attribute.
  4. Save the design to the local repository directory, and allow it to be brought under Git control. This creates branch “Master” in the local repository.
  5. Close the design.
  6. Open the “Versions” window (Menu→Team→Versions)
  7. Open the “Files” window (Menu-View-Files) and navigate to the local repository on the file system, so that the local repository will be found, and displayed in the Versions window.
  8. In the Version window, navigate to the Master branch in the local repository (Git→local-repo→Branches→Local)
  9. Right click on the Master branch and click “Create Branch…”. Call the new branch “demo”, and click Ok. The demo branch now appears in the Version window.
  10. Right click on the demo branch, and click “Check Out…” followed by “OK”.
  11. Re-open the design. The current branch “demo” is displayed next to the design name in the Browser window.
  12. Save the design, and commit the change to the local repository (Menu→Team→Git-Commit All…)
  13. Checkout the Master branch, from the Versions window, as described for the demo branch in 10 above.
  14. Re-open the design, and add a new attribute to entity ENT2 (i.e. the entity that has been deleted in branch demo, so will cause a merge conflict).
  15. Save and commit the design to the local repository.
  16. Close the design.

It is at this point that we try to merge branch demo into branch Master:

  1. Our current branch is Master, so right click on branch demo in the Versions window, and click “Merge…”, followed by Ok.
  2. Re-open the design. A message saying “The design contains unresolved merge conflicts. Do you wish to resolve them?” is displayed.
  3. Click Yes. The “Merge Conflicts” window is displayed with ENT2 displayed with a status of Modified/Deleted. Click in the “Action” column where it says “Resolve later” and select “Edit conflict”. Take a note of the current time when you do this action.
  4. At this point nothing seems to happen, but I would expect the “XML Comparator” mentioned in the Help system to be displayed.
  5. Click Cancel, and the view the External Log (Menu→View→External Log), and scroll to the bottom of the window"
  6. At the bottom the SEVERE error message is displayed, with the timestamp noted above in 3.

I have tried the same scenario using Subversion as the versioning system and got a similar result, namely a null pointer exception with a traceback history in the Subversion Console log.

Hope this is detailed enough to reproduce the problem, but if anymore info is required, I'd be more that happy to provide it.

Regards.

John.

Comments

thatJeffSmith-Oracle Feb 13 2025

Your ENTRA users will get authenticated via JSON Web Tokens, and their Entra roles will determine which ORDS REST APIs they can hit.

When they hit an endpoint, it'll execute code in the database as the database user that owns the schema where the REST API is defined, not as Entra defiend end user. In fact, the Entra users won't have accounts in the database (they could, but wont' need to).

The :current_user field as far as ords is concerned would be the corresponding oauth2 client or JWT issued for the authorizied session.

Your prehook should be able to alter the session to set the context that would put your RLS/VPD security policy in play.

1 - 1

Post Details

Added on Aug 15 2024
0 comments
123 views