Skip to content

Commit 409049e

Browse files
fixed exception handling
1 parent 163515e commit 409049e

File tree

6 files changed

+60
-72
lines changed

6 files changed

+60
-72
lines changed

clients/cli/src/main/java/org/apache/gravitino/cli/commands/CatalogAudit.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,8 @@ public void handle() {
5959
exitWithError(exp.getMessage());
6060
}
6161

62-
// Only check if result is null
6362
if (result != null) {
6463
displayAuditInfo(result.auditInfo());
6564
}
6665
}
67-
}
66+
}

clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListCatalogProperties.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,12 @@ public ListCatalogProperties(CommandContext context, String metalake, String cat
4848
/** List the properties of a catalog. */
4949
@Override
5050
public void handle() {
51+
GravitinoClient client = buildClient(metalake);
5152
try {
52-
GravitinoClient client = buildClient(metalake);
5353
Catalog gCatalog = client.loadCatalog(catalog);
5454

5555
if (gCatalog != null) {
56-
printProperties(gCatalog.properties());
56+
printProperties(gCatalog.properties());
5757
}
5858
} catch (NoSuchMetalakeException err) {
5959
exitWithError(ErrorMessages.UNKNOWN_METALAKE);

clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListColumns.java

+36-48
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@
1818
*/
1919
package org.apache.gravitino.cli.commands;
2020

21+
import com.google.common.base.Joiner;
2122
import org.apache.gravitino.NameIdentifier;
2223
import org.apache.gravitino.cli.CommandContext;
2324
import org.apache.gravitino.cli.ErrorMessages;
2425
import org.apache.gravitino.exceptions.NoSuchTableException;
2526
import org.apache.gravitino.rel.Column;
26-
import com.google.common.base.Joiner;
2727

2828
/** Displays the details of a table's columns. */
2929
public class ListColumns extends TableCommand {
@@ -47,57 +47,45 @@ public ListColumns(
4747
this.table = table;
4848
}
4949

50-
/** Displays the details of a table's columns. */
51-
@Override
52-
public void handle() {
53-
try {
54-
NameIdentifier name = NameIdentifier.of(schema, table);
55-
Column[] columns = tableCatalog().loadTable(name).columns();
56-
57-
if (columns != null && columns.length > 0) {
58-
StringBuilder all = new StringBuilder();
59-
boolean hasAutoIncrement = false;
60-
61-
// Check if any column supports auto-increment
62-
for (Column column : columns) {
63-
if (column != null && column.autoIncrement()) {
64-
hasAutoIncrement = true;
65-
break;
66-
}
67-
}
50+
/** Displays the details of a table's columns. */
51+
@Override
52+
public void handle() {
53+
try {
54+
NameIdentifier name = NameIdentifier.of(schema, table);
55+
Column[] columns = tableCatalog().loadTable(name).columns();
6856

69-
all.append("name,datatype,comment,nullable");
70-
if (hasAutoIncrement) {
71-
all.append(",auto_increment");
72-
}
73-
all.append(System.lineSeparator());
57+
if (columns != null && columns.length > 0) {
58+
StringBuilder all = new StringBuilder();
59+
all.append("name,datatype,comment,nullable,auto_increment").append(System.lineSeparator());
7460

75-
for (Column column : columns) {
76-
if (column == null) {
77-
continue;
78-
}
61+
for (Column column : columns) {
62+
if (column == null) {
63+
continue;
64+
}
7965

80-
StringBuilder columnDetails = new StringBuilder();
81-
columnDetails.append(column.name()).append(",");
82-
columnDetails.append(column.dataType() != null ? column.dataType().simpleString() : "UNKNOWN").append(",");
83-
columnDetails.append(column.comment() != null ? column.comment() : "N/A").append(",");
84-
columnDetails.append(column.nullable() ? "true" : "false");
66+
StringBuilder columnDetails = new StringBuilder();
67+
columnDetails.append(column.name()).append(",");
68+
columnDetails
69+
.append(column.dataType() != null ? column.dataType().simpleString() : "UNKNOWN")
70+
.append(",");
71+
columnDetails.append(column.comment() != null ? column.comment() : "N/A").append(",");
72+
columnDetails.append(column.nullable() ? "true" : "false").append(",");
73+
columnDetails.append(column.autoIncrement() ? "true" : "false");
8574

86-
if (hasAutoIncrement) {
87-
columnDetails.append(",").append(column.autoIncrement() ? "true" : "");
88-
}
89-
90-
all.append(columnDetails).append(System.lineSeparator());
91-
}
92-
93-
printResults(all.toString());
94-
} else {
95-
exitWithError("No columns found for the specified table.");
96-
}
97-
} catch (NoSuchTableException noSuchTableException) {
98-
exitWithError(ErrorMessages.UNKNOWN_TABLE + " " + Joiner.on(".").join(metalake, catalog, schema, table));
99-
} catch (Exception exp) {
100-
exitWithError("An error occurred while retrieving column details: " + exp.getMessage());
75+
all.append(columnDetails).append(System.lineSeparator());
10176
}
77+
78+
printResults(all.toString());
79+
} else {
80+
exitWithError("No columns found for the specified table.");
81+
}
82+
} catch (NoSuchTableException noSuchTableException) {
83+
exitWithError(
84+
ErrorMessages.UNKNOWN_TABLE
85+
+ " "
86+
+ Joiner.on(".").join(metalake, catalog, schema, table));
87+
} catch (Exception exp) {
88+
exitWithError("An error occurred while retrieving column details: " + exp.getMessage());
10289
}
90+
}
10391
}

clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListFilesetProperties.java

+19-16
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
package org.apache.gravitino.cli.commands;
2121

2222
import java.util.Collections;
23-
2423
import org.apache.gravitino.NameIdentifier;
2524
import org.apache.gravitino.cli.CommandContext;
2625
import org.apache.gravitino.cli.ErrorMessages;
@@ -60,28 +59,32 @@ public ListFilesetProperties(
6059
@Override
6160
public void handle() {
6261
Fileset gFileset = null;
63-
62+
GravitinoClient client = null;
63+
6464
try {
65-
NameIdentifier name = NameIdentifier.of(schema, fileset);
65+
NameIdentifier name = NameIdentifier.of(schema, fileset);
66+
client = buildClient(metalake);
6667

67-
try (GravitinoClient client = buildClient(metalake)) {
68-
gFileset = client.loadCatalog(catalog).asFilesetCatalog().loadFileset(name);
69-
}
68+
gFileset = client.loadCatalog(catalog).asFilesetCatalog().loadFileset(name);
7069
} catch (IllegalArgumentException exp) {
71-
exitWithError("Invalid schema or fileset name: " + exp.getMessage());
72-
return;
70+
exitWithError("Invalid schema or fileset name: " + exp.getMessage());
71+
return;
7372
} catch (NoSuchMetalakeException err) {
74-
exitWithError(ErrorMessages.UNKNOWN_METALAKE);
75-
return;
73+
exitWithError(ErrorMessages.UNKNOWN_METALAKE);
74+
return;
7675
} catch (NoSuchCatalogException err) {
77-
exitWithError(ErrorMessages.UNKNOWN_CATALOG);
78-
return;
76+
exitWithError(ErrorMessages.UNKNOWN_CATALOG);
77+
return;
7978
} catch (NoSuchSchemaException err) {
80-
exitWithError(ErrorMessages.UNKNOWN_SCHEMA);
81-
return;
79+
exitWithError(ErrorMessages.UNKNOWN_SCHEMA);
80+
return;
8281
} catch (Exception exp) {
83-
exitWithError(exp.getMessage());
84-
return;
82+
exitWithError(exp.getMessage());
83+
return;
84+
} finally {
85+
if (client != null) {
86+
client.close();
87+
}
8588
}
8689

8790
// Null check for gFileset before accessing its properties

clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListMetalakeProperties.java

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
package org.apache.gravitino.cli.commands;
2121

2222
import java.util.Map;
23-
2423
import org.apache.gravitino.Metalake;
2524
import org.apache.gravitino.cli.CommandContext;
2625
import org.apache.gravitino.cli.ErrorMessages;

clients/cli/src/main/java/org/apache/gravitino/cli/commands/ListSchemaProperties.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
package org.apache.gravitino.cli.commands;
2121

2222
import java.util.Map;
23-
2423
import org.apache.gravitino.Schema;
2524
import org.apache.gravitino.cli.CommandContext;
2625
import org.apache.gravitino.cli.ErrorMessages;
@@ -58,7 +57,7 @@ public void handle() {
5857
Schema gSchema = null;
5958

6059
try (GravitinoClient client = buildClient(metalake)) { // Ensure resource cleanup
61-
gSchema = client.loadCatalog(catalog).asSchemas().loadSchema(schema);
60+
gSchema = client.loadCatalog(catalog).asSchemas().loadSchema(schema);
6261
} catch (NoSuchMetalakeException err) {
6362
exitWithError(ErrorMessages.UNKNOWN_METALAKE);
6463
} catch (NoSuchCatalogException err) {
@@ -73,7 +72,7 @@ public void handle() {
7372
exitWithError("Schema not found: " + schema);
7473
return;
7574
}
76-
75+
7776
Map<String, String> properties = gSchema.properties();
7877
printProperties(properties);
7978
}

0 commit comments

Comments
 (0)