Revision 41198

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.daltransform.app/org.gvsig.daltransform.app.eventtheme/src/main/java/org/gvsig/app/eventtheme/dal/feature/EventThemeTransform.java
48 48
import org.gvsig.fmap.dal.feature.FeatureSet;
49 49
import org.gvsig.fmap.dal.feature.FeatureStore;
50 50
import org.gvsig.fmap.dal.feature.FeatureType;
51
import org.gvsig.fmap.geom.Geometry;
51 52
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
52 53
import org.gvsig.fmap.geom.Geometry.TYPES;
53 54
import org.gvsig.fmap.geom.GeometryLocator;
......
248 249
        
249 250
        this.copySourceToTarget(source, target);
250 251

  
251
        try {           
252
            Point point = geometryManager.createPoint(
253
                new Double(source.get(xFieldName).toString()),
254
                new Double(source.get(yFieldName).toString()),
255
                SUBTYPES.GEOM2D);
256
            target.set(geometryFieldName, point);
257
            target.setDefaultGeometry(point);   
258
            envelope.add(point.getEnvelope());
259
        } catch (CreateGeometryException e) {
260
            throw new org.gvsig.fmap.dal.feature.exception.CreateGeometryException(TYPES.POINT, SUBTYPES.GEOM2D, e);
252
        try {
253
            
254
            Geometry point = null;
255
            
256
            Object xval = source.get(xFieldName);
257
            Object yval = source.get(yFieldName);
258
            if (xval == null || yval == null) {
259
                logger.info("Found row with null coordinates in event theme (created null geometry)");
260
                point = geometryManager.createNullGeometry(SUBTYPES.GEOM2D);
261
                target.set(geometryFieldName, point);
262
                target.setDefaultGeometry(point);  
263
            } else {
264
                point = geometryManager.createPoint(
265
                    new Double(xval.toString()),
266
                    new Double(yval.toString()),
267
                    SUBTYPES.GEOM2D);
268
                target.set(geometryFieldName, point);
269
                target.setDefaultGeometry(point);   
270
                envelope.add(point.getEnvelope());
271
            }
272
            
273
        } catch (Exception e) {
274
            throw new org.gvsig.fmap.dal.feature.exception.CreateGeometryException(
275
                TYPES.POINT, SUBTYPES.GEOM2D, e);
261 276
        }       
262 277
        
263 278
    }

Also available in: Unified diff