Revision 4253

View differences:

org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.prov/org.gvsig.vectorediting.lib.prov.arc/src/main/java/org/gvsig/vectorediting/lib/prov/arc/ArcByCenterEditingProvider.java
455 455
        List<EditingServiceParameter> parameters
456 456
                = new ArrayList<>();
457 457

  
458

  
459
        parameters.add(centerPoint);
460
        parameters.add(startPoint);
461
        parameters.add(endPoint);
462

  
458 463
        parameters.add(radius);
459
//        parameters.add(length);
460 464
        parameters.add(startAngle);
461 465
        parameters.add(sweepAngle);
462 466
        parameters.add(direction);
463 467

  
464
        parameters.add(centerPoint);
465
        parameters.add(startPoint);
466
        parameters.add(endPoint);
467 468
        return parameters;
468 469
    }
469 470

  
......
688 689
        } else if (param == radius) {
689 690
            try {
690 691
                Double doubleValue = (Double) coerceToDouble.coerce(value);
691
                if ((doubleValue - 0.01) > 0) {
692
                // To avoid infinite, Nan and very small values
693
                if (doubleValue != null && Double.isFinite(doubleValue) && (doubleValue - 0.01) > 0) {
692 694
                    values.put(param, doubleValue);
693 695
                    return;
694 696
                }
......
698 700
        } else if (param == startAngle) {
699 701
            try {
700 702
                Double doubleValue = (Double) coerceToDouble.coerce(value);
701
                values.put(param, Math.toRadians(doubleValue));
703
                if (doubleValue != null && Double.isFinite(doubleValue)) {
704
                    values.put(param, Math.toRadians(doubleValue));
702 705
                    return;
706
                }
703 707
            } catch (CoercionException ex) {
704 708
                throw new InvalidEntryException(ex);
705 709
            }
706 710
        } else if (param == sweepAngle) {
707 711
            try {
708 712
                Double doubleValue = (Double) coerceToDouble.coerce(value);
709
                values.put(param, Math.toRadians(doubleValue));
710
                return;
713
                if (doubleValue != null && Double.isFinite(doubleValue)) {
714
                    values.put(param, Math.toRadians(doubleValue));
715
                    return;
716
                }
711 717
            } catch (CoercionException ex) {
712 718
                throw new InvalidEntryException(null);
713 719
            }

Also available in: Unified diff