karaf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mike Hummel (JIRA)" <j...@apache.org>
Subject [jira] [Created] (KARAF-2941) Let jdbc be more robust against broken data sources
Date Fri, 25 Apr 2014 11:16:15 GMT
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)

Mime
View raw message