[teiid-commits] teiid SVN: r2821 - branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Mon Jan 10 12:20:37 EST 2011
Author: shawkins
Date: 2011-01-10 12:20:37 -0500 (Mon, 10 Jan 2011)
New Revision: 2821
Modified:
branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/QueryExecutionImpl.java
Log:
TEIID-1426 fix for npe extracting null values in a join result
Modified: branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/QueryExecutionImpl.java
===================================================================
--- branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/QueryExecutionImpl.java 2011-01-10 15:50:25 UTC (rev 2820)
+++ branches/7.1.x/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/QueryExecutionImpl.java 2011-01-10 17:20:37 UTC (rev 2821)
@@ -63,14 +63,16 @@
public class QueryExecutionImpl implements ResultSetExecution {
- private static final String SF_ID = "sf:Id";
+ private static final String SF_ID = "sf:Id"; //$NON-NLS-1$
- private static final String SF_TYPE = "sf:type";
+ private static final String SF_TYPE = "sf:type"; //$NON-NLS-1$
- private static final String SF_S_OBJECT = "sf:sObject";
+ private static final String SF_S_OBJECT = "sf:sObject"; //$NON-NLS-1$
- private static final String XSI_TYPE = "xsi:type";
-
+ private static final String XSI_TYPE = "xsi:type"; //$NON-NLS-1$
+
+ private static final String XSI_NIL = "xsi:nil"; //$NON-NLS-1$
+
private SalesforceConnection connection;
private RuntimeMetadata metadata;
@@ -272,7 +274,7 @@
}
} else {
Object cell;
- cell = sObject.getElementsByTagName("sf:" + element.getNameInSource()).item(0);
+ cell = sObject.getElementsByTagName("sf:" + element.getNameInSource()).item(0); //$NON-NLS-1$
setElementValueInColumn(j, cell, row);
}
}
@@ -320,7 +322,14 @@
private void setElementValueInColumn(int columnIndex, Object value, Object[] row) {
if(value instanceof Element) {
- row[columnIndex] = ((Element)value).getFirstChild().getNodeValue();
+ Element element = (Element)value;
+ if (!Boolean.parseBoolean(element.getAttribute(XSI_NIL))) {
+ if (element.getFirstChild() != null) {
+ row[columnIndex] = element.getFirstChild().getNodeValue();
+ } else {
+ row[columnIndex] = ""; //$NON-NLS-1$
+ }
+ }
} else {
row[columnIndex] = value;
}
More information about the teiid-commits
mailing list