Shorten exception logged when CDMMETADATA is missing #5785
authorPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 1 Jun 2016 10:57:25 +0000 (12:57 +0200)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Wed, 1 Jun 2016 11:05:14 +0000 (13:05 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/datasource/CdmMetaDataAwareDataSourceContainer.java

index 1a21700c0b633005f6f621c752c015cb5e04010a..77d5d595a27dcf7dd71dfebcac75c98e76926162 100644 (file)
@@ -1,22 +1,20 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
 
 package eu.etaxonomy.taxeditor.view.datasource;
 
-import java.sql.SQLException;
 import java.util.HashMap;
 import java.util.Map;
 
 import eu.etaxonomy.cdm.config.CdmSourceException;
 import eu.etaxonomy.cdm.config.ICdmSource;
-import eu.etaxonomy.cdm.database.ICdmDataSource;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData;
 import eu.etaxonomy.cdm.model.metadata.CdmMetaData.MetaDataPropertyName;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
@@ -29,18 +27,18 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
  * @version 1.0
  */
 public class CdmMetaDataAwareDataSourceContainer {
-       
-       
-       
+
+
+
        /** Constant <code>DEFAULT_ENTRY="-"</code> */
        public static final String DEFAULT_ENTRY = "-";
-       
+
        private ICdmSource cdmSource;
-       
+
        private boolean running;
-       
+
        private Map<MetaDataPropertyName, String> metaDataMap;
-       
+
        /**
         * <p>Constructor for CdmMetaDataAwareDataSourceContainer.</p>
         *
@@ -49,9 +47,9 @@ public class CdmMetaDataAwareDataSourceContainer {
         */
        public CdmMetaDataAwareDataSourceContainer(ICdmSource cdmSource){
                this.cdmSource = cdmSource;
-               
+
                metaDataMap = getDefaultMetaDataMap();
-               
+
        }
 
 //     /**
@@ -62,18 +60,18 @@ public class CdmMetaDataAwareDataSourceContainer {
 //     public ICdmDataSource getDataSource() {
 //             return dataSource;
 //     }
-       
+
        public ICdmSource getCdmSource() {
        return cdmSource;
 }
-       
+
        public void getMetaDataFromDataSource(){
                try {
                        running = cdmSource.checkConnection();
                } catch (Exception e) {
                        running = false;
                        for(MetaDataPropertyName metaDataPropertyName : MetaDataPropertyName.values()){
-                               metaDataMap.put(metaDataPropertyName, DEFAULT_ENTRY);                                   
+                               metaDataMap.put(metaDataPropertyName, DEFAULT_ENTRY);
                        }
                }
 
@@ -81,24 +79,29 @@ public class CdmMetaDataAwareDataSourceContainer {
                        if(isRunning()){
 
                                //                              try {
-                               metaDataMap = cdmSource.getMetaDataMap();       
+                               metaDataMap = cdmSource.getMetaDataMap();
                                cdmSource.closeOpenConnections();
                                //                              } catch (CdmSourceException e) {
                                //                                      StoreUtil.warn(this.getClass(), "SQLException when trying to access: " + cdmSource.getName() + ". " + e.getMessage());
-                               //                              } 
+                               //                              }
                        }
                } catch (Exception e) {
-                       MessagingUtils.error(this.getClass(), e);
+            if(e instanceof CdmSourceException && e.getMessage().toLowerCase().contains("\"cdmmetadata\"")){
+                MessagingUtils.error(this.getClass(), "Data source "+((CdmSourceException) e).getSourceName()+" does not have a CDMMETADATA table", null);
+            }
+            else{
+                MessagingUtils.error(this.getClass(), e);
+            }
                }
        }
-       
+
        private Map<MetaDataPropertyName, String> getDefaultMetaDataMap(){
                Map<MetaDataPropertyName, String> resultMap = new HashMap<MetaDataPropertyName, String>(MetaDataPropertyName.values().length);
-               
+
                for(MetaDataPropertyName metaDataPropertyName : MetaDataPropertyName.values()){
                        resultMap.put(metaDataPropertyName, null);
                }
-               
+
                return resultMap;
        }
 
@@ -110,7 +113,7 @@ public class CdmMetaDataAwareDataSourceContainer {
        public Map<MetaDataPropertyName, String> getMetaDataMap() {
                return metaDataMap;
        }
-       
+
        /**
         * <p>isDataSourceCompatible</p>
         *
@@ -131,7 +134,7 @@ public class CdmMetaDataAwareDataSourceContainer {
                String property = metaDataMap.get(metaDataPropertyName);
                return property != null ? property : DEFAULT_ENTRY;
        }
-       
+
        /**
         * <p>isRunning</p>
         *
@@ -140,7 +143,7 @@ public class CdmMetaDataAwareDataSourceContainer {
        public boolean isRunning() {
                return running;
        }
-       
+
        /* (non-Javadoc)
         * @see java.lang.Object#toString()
         */