if (selection2D == null) continue;
    public void iterate(ROI5D roi)         throws DataSourceException    {        if (roi == null) throw new NullPointerException("No ROI.");        PlaneArea selection2D;        PlanePoint[] points;        PlaneDef pd;        notifyIterationStart();        try {  //Iterate in ZWT order and notify observers.            for (int t = 0; t < dims.sizeT; ++t) {                pd = new PlaneDef(PlaneDef.XY, t);                for (int w = 0; w < dims.sizeW; ++w) {                    for (int z = 0; z < dims.sizeZ; ++z) {                        selection2D = roi.getPlaneArea(z, t, w);                        points = selection2D.getPoints();                        notifyPlaneStart(z, w, t, points.length);                        pd.setZ(z);                        iterateArea(points, pd, z, w, t);                        notifyPlaneEnd(z, w, t, points.length);                    }                }            }        } finally {              //Give the observers a chance to clean up even when             //something goes wrong.             notifyIterationEnd();        }    }