if (itemArea == 0.0d) {
if (itemArea < 0.01d) {
  protected CargoCatCodeDimensionPG setDimensions (Task parentTask, NewPhysicalPG physicalPG, Collection realAssets) {    double area   = 0.0;    double volume = 0.0;    double mass   = 0.0;    Object firstItem = realAssets.iterator().next();    PhysicalPG cccdPhysicalPG         = (PhysicalPG)ldmf.createPropertyGroup(PhysicalPG.class);    NewCargoCatCodeDimensionPG cccdPG = (NewCargoCatCodeDimensionPG)ldmf.createPropertyGroup(CargoCatCodeDimensionPG.class);    cccdPG.setDimensions(cccdPhysicalPG);    if (firstItem instanceof AggregateAsset) { // there is only one item...      if (realAssets.size () > 1)	logger.error (getBindingSite().getAgentIdentifier() + " found aggregate, but skipping some expanded items???");      AggregateAsset aggAsset = (AggregateAsset) firstItem;      GLMAsset baseAsset = (GLMAsset)aggAsset.getAsset();      PhysicalPG itemPhysicalPG = baseAsset.getPhysicalPG();      String ccc = getCategory(baseAsset);	      if (itemPhysicalPG == null) {	if (!baseAsset.hasPersonPG()) {	  warn (".setDimensions - for task " + parentTask.getUID() + " asset " + firstItem + 		"'s base asset " + (GLMAsset)aggAsset.getAsset() + " has no physical PG.");	}	else if (isDebugEnabled ()) {	  debug (".setDimensions - NOTE : asset " + firstItem + 		 "'s base asset " + (GLMAsset)aggAsset.getAsset() + " has no physical PG.");	}      }      else {	long quantity = aggAsset.getQuantity();	double q = (double)quantity;	// it doesn't make sense to display aggregate length, width, height,	// since they won't correspond to area and volume	area   = itemPhysicalPG.getFootprintArea().getSquareMeters() * q;	volume = itemPhysicalPG.getVolume().getCubicMeters() * q;	mass   = itemPhysicalPG.getMass().getKilograms() * q;	if (area == 0.0d) {	  area = itemPhysicalPG.getLength().getMeters() * 	    itemPhysicalPG.getWidth().getMeters()* q;	  if (isInfoEnabled ()) {	    info (".setDimensions - fixing footprint area, was zero for asset " + aggAsset + 		  " on task " + parentTask.getUID());	  }	}	if (area == 0.0d || volume == 0.0d || mass == 0.0d) {	  if (isWarnEnabled()) {	    warn (".setDimensions - asset " + firstItem + 		  " for task " + parentTask.getUID() + " has a zero dimension.");	  }	}			addToDimension (ccc, q, itemPhysicalPG, cccdPG);	if (baseAsset instanceof Container)	  cccdPG.setIsContainer(true);	cccdPG.setAssetClass(getAssetClass(baseAsset));      }    }    else {      Object last = null;      for (Iterator iter = realAssets.iterator(); iter.hasNext();) {	GLMAsset asset = (GLMAsset)iter.next();	last = asset;	PhysicalPG itemPhysicalPG = asset.getPhysicalPG();	String ccc = getCategory(asset);	if (itemPhysicalPG == null)	  error ("Asset " + asset + " doesn't have a physical PG.");	else {	  // it doesn't make sense to display aggregate length, width, height,	  // since they won't correspond to area and volume	  double itemArea   = itemPhysicalPG.getFootprintArea().getSquareMeters();	  double itemVolume = itemPhysicalPG.getVolume().getCubicMeters();	  double itemMass   = itemPhysicalPG.getMass().getKilograms();	  area   += itemArea;	  volume += itemVolume;	  mass   += itemMass;	  if (itemArea == 0.0d) {	    itemArea = itemPhysicalPG.getLength().getMeters() * 	      itemPhysicalPG.getWidth().getMeters();	    if (isInfoEnabled ()) {	      info (".setDimensions - fixing footprint area, was zero for asset " + asset + " on task " + parentTask.getUID());	    }	  }	  if (itemArea == 0.0d || itemVolume == 0.0d || itemMass == 0.0d) {	    if (isWarnEnabled ()) {	      warn (".setDimensions - asset " + asset + 		    " for task " + parentTask.getUID() + " has a zero dimension.");	    }	  }	  addToDimension (ccc, 1.0, itemPhysicalPG, cccdPG);	}      }      if (last instanceof Container)	cccdPG.setIsContainer(true);      cccdPG.setAssetClass(getAssetClass((Asset)last));    }    physicalPG.setMass  (new Mass     (mass,   Mass.KILOGRAMS ));    physicalPG.setFootprintArea(new Area (area,   Area.SQUARE_METERS));    physicalPG.setVolume(new Volume   (volume,   Volume.CUBIC_METERS));    if (isDebugEnabled()) {      debug (".setDimensions got " + realAssets.size () + " items.");      debug (".setDimensions low fi dimensions : " + 	     " m " + physicalPG.getMass () + 	     " a " + physicalPG.getFootprintArea () + 	     " v " + physicalPG.getVolume ());    }    return cccdPG;  }