Commit c50f0611 authored by Diogo Santos's avatar Diogo Santos
Browse files

Fixed (I think) NullPointerException preventing pipeline completion

parent 6424868f
Loading
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -7,7 +7,10 @@ import org.etsi.osl.tmf.common.model.Any;
import org.etsi.osl.tmf.common.model.service.Characteristic;
import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristicValue;

import java.util.*;
import java.util.Set;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;

public class CharacteristicParser {
    private static final ObjectMapper mapper = new ObjectMapper();
+13 −9
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ package org.etsi.osl.tmf.util;

import org.etsi.osl.tmf.common.model.service.Characteristic;
import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristic;
import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristicValue;
import org.etsi.osl.tmf.scm633.model.ServiceSpecification;
import org.etsi.osl.tmf.scm633.reposervices.ServiceSpecificationRepoService;
import org.etsi.osl.tmf.sim638.model.ServiceUpdate;
@@ -10,6 +11,8 @@ import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

import java.util.Set;

@Component
public class ServiceInventoryValidator implements Validator {
    @Autowired
@@ -31,11 +34,11 @@ public class ServiceInventoryValidator implements Validator {
        CharacteristicParser characteristicParser = new CharacteristicParser();
        for (Characteristic characteristic: update.getServiceCharacteristic()) {
            ServiceSpecCharacteristic serviceSpecCharacteristic = serviceSpecification.findSpecCharacteristicByName(characteristic.getName());
            characteristicParser.updateServiceSpecCharacteristicValues(serviceSpecCharacteristic.getServiceSpecCharacteristicValue(), characteristic);
            if (serviceSpecCharacteristic.getServiceSpecCharacteristicValue().stream()
                    .anyMatch(value -> {
                        ServiceSpecCharacteristicValueValidator serviceSpecCharacteristicValueValidator =
                                new ServiceSpecCharacteristicValueValidator(value);
            if (serviceSpecCharacteristic != null) {
                Set<ServiceSpecCharacteristicValue> serviceSpecCharacteristicValues = serviceSpecCharacteristic.getServiceSpecCharacteristicValue();
                characteristicParser.updateServiceSpecCharacteristicValues(serviceSpecCharacteristicValues, characteristic);
                if (serviceSpecCharacteristicValues.stream().anyMatch(value -> {
                    ServiceSpecCharacteristicValueValidator serviceSpecCharacteristicValueValidator = new ServiceSpecCharacteristicValueValidator(value);
                    return !serviceSpecCharacteristicValueValidator.validateType() || !serviceSpecCharacteristicValueValidator.isWithinRangeInterval();
                })) {
                    errors.reject("invalid.request");
@@ -44,3 +47,4 @@ public class ServiceInventoryValidator implements Validator {
            }
        }
    }
}
+14 −9
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ package org.etsi.osl.tmf.util;

import org.etsi.osl.tmf.common.model.service.Characteristic;
import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristic;
import org.etsi.osl.tmf.scm633.model.ServiceSpecCharacteristicValue;
import org.etsi.osl.tmf.scm633.model.ServiceSpecification;
import org.etsi.osl.tmf.scm633.reposervices.ServiceSpecificationRepoService;
import org.etsi.osl.tmf.so641.model.ServiceOrderCreate;
@@ -13,6 +14,8 @@ import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

import java.util.Set;

@Component
public class ServiceOrderValidator implements Validator {
    @Autowired
@@ -42,11 +45,12 @@ public class ServiceOrderValidator implements Validator {
            CharacteristicParser characteristicParser = new CharacteristicParser();
            for (Characteristic characteristic: service.getServiceCharacteristic()) {
                ServiceSpecCharacteristic serviceSpecCharacteristic = serviceSpecification.findSpecCharacteristicByName(characteristic.getName());
                characteristicParser.updateServiceSpecCharacteristicValues(serviceSpecCharacteristic.getServiceSpecCharacteristicValue(), characteristic);
                if (serviceSpecCharacteristic.getServiceSpecCharacteristicValue().stream()
                        .anyMatch(value -> {
                            ServiceSpecCharacteristicValueValidator serviceSpecCharacteristicValueValidator =
                                    new ServiceSpecCharacteristicValueValidator(value);
                if (serviceSpecCharacteristic != null) {
                    Set<ServiceSpecCharacteristicValue> serviceSpecCharacteristicValues = serviceSpecCharacteristic.getServiceSpecCharacteristicValue();
                    characteristicParser.updateServiceSpecCharacteristicValues(serviceSpecCharacteristicValues, characteristic);
                    if (serviceSpecCharacteristicValues.stream().anyMatch(
                            value -> {
                        ServiceSpecCharacteristicValueValidator serviceSpecCharacteristicValueValidator = new ServiceSpecCharacteristicValueValidator(value);
                        return !serviceSpecCharacteristicValueValidator.validateType() || !serviceSpecCharacteristicValueValidator.isWithinRangeInterval();
                    })) {
                        errors.reject("invalid.request");
@@ -56,3 +60,4 @@ public class ServiceOrderValidator implements Validator {
            }
        }
    }
}