Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.prov/org.gvsig.exportto.swing.prov.file/src/main/java/org/gvsig/exportto/swing/prov/file/AbstractExporttoFileService.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.prov/org.gvsig.exportto.swing.prov.file/src/main/java/org/gvsig/exportto/swing/prov/file/AbstractExporttoFileService.java	(revision 43501)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.prov/org.gvsig.exportto.swing.prov.file/src/main/java/org/gvsig/exportto/swing/prov/file/AbstractExporttoFileService.java	(revision 43502)
@@ -35,15 +35,15 @@
 import org.gvsig.fmap.dal.exception.DataException;
 import org.gvsig.fmap.dal.exception.InitializeException;
 import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
-import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
 import org.gvsig.fmap.dal.feature.FeatureSet;
 import org.gvsig.fmap.dal.feature.FeatureStore;
 import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
 import org.gvsig.fmap.dal.feature.OpenFeatureStoreParameters;
 import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer;
 import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorerParameters;
-import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
 import org.gvsig.tools.task.TaskStatus;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * @author gvSIG Team
@@ -52,6 +52,8 @@
  */
 public abstract class AbstractExporttoFileService implements ExporttoService {
 
+    protected static final Logger LOG = LoggerFactory.getLogger(AbstractExporttoFileService.class);
+    
     protected static final ExporttoManager EXPORTTO_MANAGER = ExporttoLocator
         .getManager();
     protected File file;
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.prov/org.gvsig.exportto.swing.prov.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/ExporttoDBFService.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.prov/org.gvsig.exportto.swing.prov.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/ExporttoDBFService.java	(revision 43501)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.prov/org.gvsig.exportto.swing.prov.dbf/src/main/java/org/gvsig/exportto/swing/prov/dbf/ExporttoDBFService.java	(revision 43502)
@@ -48,11 +48,17 @@
     protected ExporttoDBFService(File dbfFile, FeatureStore featureStore,
         String encoding) {
         super(dbfFile, featureStore);
+        if( dbfFile == null ) {
+            throw new IllegalArgumentException("file can't be null.");
+        }
+        if( featureStore == null ) {
+            throw new IllegalArgumentException("Store can't be null.");
+        }
         this.encoding = encoding;
         try {
             this.open();
         } catch (ExporttoServiceException e) {
-            ((SimpleTaskStatus) getTaskStatus()).message(e.getMessage());
+            throw new RuntimeException("Can't prepare the export to dbf. file="+dbfFile.getAbsolutePath()+", store="+featureStore.getFullName()+".", e);
         }
     }
 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/DefaultJExporttoServicePanel.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/DefaultJExporttoServicePanel.java	(revision 43501)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/DefaultJExporttoServicePanel.java	(revision 43502)
@@ -53,6 +53,7 @@
 import org.gvsig.fmap.dal.DALLocator;
 import org.gvsig.fmap.dal.DataManager;
 import org.gvsig.fmap.dal.exception.DataException;
+import org.gvsig.fmap.dal.feature.Feature;
 import org.gvsig.fmap.dal.feature.FeatureQuery;
 import org.gvsig.fmap.dal.feature.FeatureSet;
 import org.gvsig.fmap.dal.feature.FeatureStore;
@@ -64,6 +65,8 @@
 import org.gvsig.tools.evaluator.Evaluator;
 import org.gvsig.tools.i18n.I18nManager;
 import org.gvsig.tools.service.ServiceException;
+import org.gvsig.tools.swing.api.ToolsSwingLocator;
+import org.gvsig.tools.swing.api.threadsafedialogs.ThreadSafeDialogsManager;
 import org.gvsig.tools.task.SimpleTaskStatus;
 
 /**
@@ -270,8 +273,14 @@
         }
 
         public synchronized void run() {
-            ExporttoService exportService =
-                exporttoSwingProvider.createExporttoService();
+            ExporttoService exportService;
+            try {
+                exportService = exporttoSwingProvider.createExporttoService();
+            } catch(Exception ex) {
+                LOG.warn("Problems exporting layer.", ex);
+                showError(ex);
+                return;
+            }
             exporttoProgressWizard.bind(exportService.getTaskStatus());
             exportService.setFinishAction(exporttoServiceFinishAction);
             String layerName = "(unknow)";
@@ -291,13 +300,17 @@
         }
     }
 
-    private void showError(ExporttoServiceException e) {
+    private void showError(Exception e) {
+        Feature f = null;
+        if( e instanceof ExporttoServiceException ) {
+            f = ((ExporttoServiceException)e).getFeature();
+        }
         I18nManager i18nManager = ToolsLocator.getI18nManager();
         MessagePanel.showMessage(
                 i18nManager.getTranslation("_Warning"),
                 i18nManager.getTranslation("_There_have_been_problems_exporting_data"),
                 e,
-                e.getFeature()
+                f
         );
     }
 
Index: trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/DefaultExporttoSwingProviderManager.java
===================================================================
--- trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/DefaultExporttoSwingProviderManager.java	(revision 43501)
+++ trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.exportto/org.gvsig.exportto.swing/org.gvsig.exportto.swing.impl/src/main/java/org/gvsig/exportto/swing/impl/DefaultExporttoSwingProviderManager.java	(revision 43502)
@@ -205,7 +205,7 @@
         try {
             serviceParameters.setDynValue(PARAMETER_PROJECTION, projection);
         } catch (DynFieldNotFoundException e) {
-            LOG.info("This provider doesn't accept projection", e);
+            LOG.info("This provider, "+providerName+", doesn't accept projection.");
         }
         Provider provider =
             createProvider(serviceParameters,
