diff --git a/edexOsgi/com.raytheon.uf.common.derivparam/src/com/raytheon/uf/common/derivparam/tree/DerivedLevelNode.java b/edexOsgi/com.raytheon.uf.common.derivparam/src/com/raytheon/uf/common/derivparam/tree/DerivedLevelNode.java index 10ddadd30b..c736917242 100644 --- a/edexOsgi/com.raytheon.uf.common.derivparam/src/com/raytheon/uf/common/derivparam/tree/DerivedLevelNode.java +++ b/edexOsgi/com.raytheon.uf.common.derivparam/src/com/raytheon/uf/common/derivparam/tree/DerivedLevelNode.java @@ -61,6 +61,9 @@ import com.raytheon.uf.common.time.DataTime; * ------------- -------- ----------- -------------------------- * Dec 14, 2009 rjpeter Initial creation * Apr 11, 2014 2947 bsteffen Don't check units until data is requested. + * Apr 29, 2014 3081 bsteffen Undo change for 2947 because it prevents + * multiple level derivation from happening + * simultaneously in the function adapter. * * * @@ -401,11 +404,15 @@ public class DerivedLevelNode extends AbstractDerivedDataNode { Set newRecs = new HashSet( records.size()); for (AbstractRequestableData record : records) { - /* Wrap in an alias to perform unit conversion when necessary. */ - AbstractRequestableData alias = new AliasRequestableData(record); - alias.setUnit(field.getUnit()); - newRecs.add(alias); - + if (record.getUnit() != null + && !record.getUnit().equals(field.getUnit()) + && record.getUnit().isCompatible(field.getUnit())) { + AbstractRequestableData alias = new AliasRequestableData(record); + alias.setUnit(field.getUnit()); + newRecs.add(alias); + } else { + newRecs.add(record); + } } return newRecs; }