2222import javax .swing .JSplitPane ;
2323
2424import org .utplsql .sqldev .exception .GenericDatabaseAccessException ;
25+ import org .utplsql .sqldev .model .DatabaseTools ;
2526import org .utplsql .sqldev .model .StringTools ;
27+ import org .utplsql .sqldev .model .SystemTools ;
2628import org .utplsql .sqldev .model .preference .PreferenceModel ;
2729import org .utplsql .sqldev .resources .UtplsqlResources ;
2830
29- import oracle .dbtools .raptor .utils .Connections ;
3031import oracle .dbtools .worksheet .WorksheetResultPanel ;
3132import oracle .dbtools .worksheet .editor .OpenWorksheetWizard ;
3233import oracle .dbtools .worksheet .editor .Worksheet ;
3334import oracle .dbtools .worksheet .utils .WorksheetUtil ;
3435import oracle .ide .Ide ;
3536import oracle .ide .config .Preferences ;
3637import oracle .ide .controller .IdeAction ;
37- import oracle .jdeveloper .db .ConnectionException ;
3838
3939public class UtplsqlWorksheetRunner {
4040 private static final Logger logger = Logger .getLogger (UtplsqlWorksheetRunner .class .getName ());
@@ -51,18 +51,12 @@ public UtplsqlWorksheetRunner(final List<String> pathList, final String connecti
5151
5252 private void setConnection (final String connectionName ) {
5353 if (connectionName != null && preferences .isUnsharedWorksheet ()) {
54- // fix for issue #47 - private connections are not closed in SQLDev >= 17.4.0
5554 try {
56- this .connectionName = Connections .getInstance ().createTemporaryConnection (connectionName );
57- } catch (Throwable t ) {
58- // private connection is closed when worksheet is closed in SQLDev < 17.4.0
59- try {
60- this .connectionName = Connections .getInstance ().createPrivateConnection (connectionName );
61- } catch (ConnectionException e ) {
62- final String msg = "failed to create private connection due to " + e .getMessage ();
63- logger .severe (() -> msg );
64- throw new GenericDatabaseAccessException (msg , e );
65- }
55+ this .connectionName = DatabaseTools .createTemporaryOrPrivateConnection (connectionName );
56+ } catch (GenericDatabaseAccessException e ) {
57+ final String msg = "Failed to create temporary/private connection based on " + connectionName + "." ;
58+ logger .severe (() -> msg );
59+ throw new GenericDatabaseAccessException (msg , e );
6660 }
6761 } else {
6862 this .connectionName = connectionName ;
@@ -103,17 +97,9 @@ private Worksheet openWorksheet() {
10397 worksheet .getContext ().getNode ().markDirty (false );
10498 return worksheet ;
10599 }
106-
107- private void sleep (int millis ) {
108- try {
109- Thread .sleep (millis );
110- } catch (InterruptedException e ) {
111- Thread .currentThread ().interrupt ();
112- }
113- }
114100
115101 private void resizeResultPanel (final Worksheet worksheet ) {
116- sleep (200 );
102+ SystemTools . sleep (200 );
117103 Container splitPane = null ;
118104 WorksheetResultPanel selectedResultPanel = worksheet .getSelectedResultPanel ();
119105 if (selectedResultPanel != null && selectedResultPanel .getGUI () != null && selectedResultPanel .getGUI ().getParent () != null
@@ -131,13 +117,13 @@ private void resizeResultPanel(final Worksheet worksheet) {
131117
132118 private void runScript (final Worksheet worksheet ) {
133119 if (preferences .isAutoExecute ()) {
134- sleep (100 );
120+ SystemTools . sleep (100 );
135121 final IdeAction action = ((IdeAction ) Ide .getIdeActionMap ().get (Ide .findCmdID ("Worksheet.RunScript" )));
136122 if ((action != null )) {
137123 try {
138124 action .performAction (worksheet .getContext ());
139125 } catch (Exception e ) {
140- logger .severe (() -> "Could not run script due to " + (e != null ? e .getMessage () : "???" ) + "." );
126+ logger .severe (() -> "Could not run script in worksheet due to " + (e != null ? e .getMessage () : "???" ) + "." );
141127 }
142128 resizeResultPanel (worksheet );
143129 }
0 commit comments