diff --git a/pom.xml b/pom.xml index 0708a82..eb0c8c4 100644 --- a/pom.xml +++ b/pom.xml @@ -145,5 +145,5 @@ pentaho-kettle-dataset - 3.3.0-SNAPSHOT + 3.4.0-SNAPSHOT diff --git a/src/main/java/org/pentaho/di/dataset/spoon/DataSetHelper.java b/src/main/java/org/pentaho/di/dataset/spoon/DataSetHelper.java index 6ce2240..f2182dd 100755 --- a/src/main/java/org/pentaho/di/dataset/spoon/DataSetHelper.java +++ b/src/main/java/org/pentaho/di/dataset/spoon/DataSetHelper.java @@ -31,6 +31,7 @@ import org.pentaho.di.core.SourceToTargetMapping; import org.pentaho.di.core.database.DatabaseMeta; import org.pentaho.di.core.exception.KettleException; +import org.pentaho.di.core.exception.KettleStepException; import org.pentaho.di.core.gui.SpoonFactory; import org.pentaho.di.core.logging.LogChannel; import org.pentaho.di.core.row.RowDataUtil; @@ -474,7 +475,14 @@ public void setInputDataSet() { // Now we need to map the fields from the input data set to the step... // RowMetaInterface setFields = dataSet.getSetRowMeta( false ); - RowMetaInterface stepFields = transMeta.getStepFields( stepMeta ); + RowMetaInterface stepFields; + try { + stepFields = transMeta.getStepFields( stepMeta ); + } catch( KettleStepException e) { + // Driver or input problems... + // + stepFields = new RowMeta(); + } if ( stepFields.isEmpty() ) { stepFields = setFields.clone(); } diff --git a/src/main/java/org/pentaho/di/dataset/spoon/xtpoint/LocationMouseDoubleClickExtensionPoint.java b/src/main/java/org/pentaho/di/dataset/spoon/xtpoint/LocationMouseDoubleClickExtensionPoint.java index 1bae646..29d0cdf 100644 --- a/src/main/java/org/pentaho/di/dataset/spoon/xtpoint/LocationMouseDoubleClickExtensionPoint.java +++ b/src/main/java/org/pentaho/di/dataset/spoon/xtpoint/LocationMouseDoubleClickExtensionPoint.java @@ -82,7 +82,12 @@ public void callExtensionPoint( LogChannelInterface log, Object object ) throws List dataSets = hierarchy.getSetFactory().getElements(); Map stepFieldsMap = new HashMap<>(); for ( StepMeta stepMeta : transMeta.getSteps() ) { - stepFieldsMap.put(stepMeta.getName(), transMeta.getStepFields( stepMeta )); + try { + RowMetaInterface stepFields = transMeta.getStepFields( stepMeta ); + stepFieldsMap.put( stepMeta.getName(), stepFields ); + } catch(Exception e) { + // Ignore GUI errors... + } } // Find the location that was double clicked on...