@@ -69,45 +69,53 @@ public void run(TaskMonitor taskMonitor) throws Exception {
6969 }
7070
7171 taskMonitor .setStatusMessage ("Creating node table" );
72- // create nodes table
73- this .connectionManager .createTable (
74- newWorkspace .getNodeTableDbObject (),
75- newWorkspace .getNodeFieldList ()
76- );
77-
78- taskMonitor .setStatusMessage ("Uploading node records" );
79- //insert values
80- this .connectionManager .bulkInsertData (
81- newWorkspace .getNodeTableDbObject (),
82- newWorkspace .getNodeFieldList (),
83- newWorkspace .getNodeTableData ()
84- );
85-
86- taskMonitor .setStatusMessage ("Creating edge table" );
87- // create edges table
88- this .connectionManager .createTable (
89- newWorkspace .getEdgeTableDbObject (),
90- newWorkspace .getEdgeFieldList ()
91- );
92-
93- taskMonitor .setStatusMessage ("Uploading edge records" );
94- //insert values
95- this .connectionManager .bulkInsertData (
96- newWorkspace .getEdgeTableDbObject (),
97- newWorkspace .getEdgeFieldList (),
98- newWorkspace .getEdgeTableData ()
99- );
100-
101- taskMonitor .setStatusMessage ("Linking Cytoscape Network to SAP HANA Graph Workspace" );
102- CyUtils .enhanceCyNetworkWithDatabaseLinkInformation (
103- selectedNetwork .getDefaultNetworkTable (),
104- selectedNetwork .getSUID (),
105- connectionManager .getInstanceIdentifier (),
106- newWorkspace .getWorkspaceDbObject ()
107- );
108-
109- taskMonitor .setStatusMessage ("Creating Graph Workspace" );
110- // create graph workspace
111- this .connectionManager .createGraphWorkspace (newWorkspace );
72+ boolean nodeTableCreated = false ;
73+ boolean edgeTableCreated = false ;
74+ try {
75+ // create nodes table
76+ this .connectionManager .createTable (
77+ newWorkspace .getNodeTableDbObject (),
78+ newWorkspace .getNodeFieldList ()
79+ );
80+ nodeTableCreated = true ;
81+
82+ taskMonitor .setStatusMessage ("Uploading node records" );
83+ this .connectionManager .bulkInsertData (
84+ newWorkspace .getNodeTableDbObject (),
85+ newWorkspace .getNodeFieldList (),
86+ newWorkspace .getNodeTableData ()
87+ );
88+
89+ taskMonitor .setStatusMessage ("Creating edge table" );
90+ this .connectionManager .createTable (
91+ newWorkspace .getEdgeTableDbObject (),
92+ newWorkspace .getEdgeFieldList ()
93+ );
94+ edgeTableCreated = true ;
95+
96+ taskMonitor .setStatusMessage ("Uploading edge records" );
97+ this .connectionManager .bulkInsertData (
98+ newWorkspace .getEdgeTableDbObject (),
99+ newWorkspace .getEdgeFieldList (),
100+ newWorkspace .getEdgeTableData ()
101+ );
102+
103+ taskMonitor .setStatusMessage ("Linking Cytoscape Network to SAP HANA Graph Workspace" );
104+ CyUtils .enhanceCyNetworkWithDatabaseLinkInformation (
105+ selectedNetwork .getDefaultNetworkTable (),
106+ selectedNetwork .getSUID (),
107+ connectionManager .getInstanceIdentifier (),
108+ newWorkspace .getWorkspaceDbObject ()
109+ );
110+
111+ taskMonitor .setStatusMessage ("Creating Graph Workspace" );
112+ this .connectionManager .createGraphWorkspace (newWorkspace );
113+
114+ } catch (Exception e ) {
115+ // Drop any tables already created so the user can retry cleanly.
116+ if (edgeTableCreated ) try { this .connectionManager .dropTableIfExists (newWorkspace .getEdgeTableDbObject ()); } catch (Exception ignore ) {}
117+ if (nodeTableCreated ) try { this .connectionManager .dropTableIfExists (newWorkspace .getNodeTableDbObject ()); } catch (Exception ignore ) {}
118+ throw e ;
119+ }
112120 }
113121}
0 commit comments