Mike Hummel created KARAF-2941:
----------------------------------
Summary: Let jdbc be more robust against broken data sources
Key: KARAF-2941
URL: https://issues.apache.org/jira/browse/KARAF-2941
Project: Karaf
Issue Type: Improvement
Components: karaf-shell
Reporter: Mike Hummel
Currently if you call jdbc:datasources with a broken datasource it will output
nothing useful.
It should be more robust. To make it easy I have a patch for you (version
3.0.1). Have a look at it:
diff --git
a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
index 36df691..dd3a599 100644
---
a/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
+++
b/jdbc/command/src/main/java/org/apache/karaf/jdbc/command/DataSourcesCommand.java
@@ -21,10 +21,14 @@
import java.util.List;
import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
@Command(scope = "jdbc", name = "datasources", description = "List the JDBC
datasources")
public class DataSourcesCommand extends JdbcCommandSupport {
+ Logger LOG = Logger.getLogger(DataSourcesCommand.class.getName());
+
public Object doExecute() throws Exception {
ShellTable table = new ShellTable();
@@ -35,8 +39,14 @@
List<String> datasources = this.getJdbcService().datasources();
for (String datasource : datasources) {
- Map<String, String> info = this.getJdbcService().info(datasource);
- table.addRow().addContent(datasource, info.get("db.product"),
info.get("db.version"), info.get("url"));
+ try {
+ Map<String, String> info =
this.getJdbcService().info(datasource);
+ table.addRow().addContent(datasource,
info.get("db.product"), info.get("db.version"), info.get("url"));
+ } catch (Throwable t) {
+ LOG.log(Level.WARNING,"Working on datasource: " +
datasource,t);
+ table.addRow().addContent(datasource, "error", "",
t.getMessage());
+
+ }
}
table.print(System.out);
--
This message was sent by Atlassian JIRA
(v6.2#6252)