- Notifications
You must be signed in to change notification settings - Fork17
Closed
Description
@tkleiber mentioned this issue at the DOAG conference and sent detailed information via Twitter. I could reproduce it. Here's a simplified version.
1. Create the following package specifications without bodies
CREATEOR REPLACE PACKAGE pkg1 IS--%suite--%throws(-20501)--%test PROCEDURE p;END;/CREATEOR REPLACE PACKAGE pkg2 IS--%suite--%test PROCEDURE p;END;/
2. Run them in a SQL Developer worksheet
SET SERVEROUTPUTON SIZE UNLIMITEDEXECUTEut.run;
and the result looks good:
pkg1 p [.11 sec] (FAILED - 1) pkg2 p [.094 sec] (FAILED - 2) Failures: 1) p Actual: -4067 was expected to equal: -20501 ORA-04067: not executed, package body "SCOTT.PKG1" does not exist ORA-06508: PL/SQL: could not find program unit being called: "SCOTT.PKG1" ORA-06512: at line 6 2) p ORA-04067: not executed, package body "SCOTT.PKG2" does not exist ORA-06508: PL/SQL: could not find program unit being called: "SCOTT.PKG2" ORA-06512: at line 6Finished in .211323 seconds2 tests, 1 failed, 1 errored, 0 disabled, 0 warning(s)
3. Run the same tests with the realtime reporter in SQL Developer
This looks good. You can click on the second test and click on every single tab (test, failures, errors, warnings, info). But when you click on the first test the GUI is blocked. You cannot navigate successfully to the first test. The following screenshot shows the inconsistencies.
4. Workaround (not really)
Create a package body for the test with the throws annotation, like this:
CREATE OR REPLACE PACKAGE BODY pkg1 IS PROCEDURE p IS BEGIN raise_application_error(-20501, 'some error'); END; END;/
When the test succeeds then the GUI behaves as expected. When the test fails, then navigation to the failed test is not possible.