Tony CHEMIT pushed to branch develop-9 at ultreiaio / ird-observe

Commits:

2 changed files:

Changes:

  • server/core/src/main/java/fr/ird/observe/server/injector/JsonInjector.java
    ... ... @@ -64,6 +64,9 @@ public abstract class JsonInjector<O> implements ExecutorParametersInjectorHandl
    64 64
             Call.ParameterTree parameterTree;
    
    65 65
             try {
    
    66 66
                 parameterTree = parameterTreeObject.get(name);
    
    67
    +            if (parameterTree == null) {
    
    68
    +                return buildNullValue(call, name, type, generic);
    
    69
    +            }
    
    67 70
                 Objects.requireNonNull(parameterTree);
    
    68 71
             } catch (Exception e) {
    
    69 72
                 log.error(String.format("Could not get parameterTree for mapping: %s, call: %s - name: %s, type: %s", mapping, call, name, type), e);
    
    ... ... @@ -80,4 +83,8 @@ public abstract class JsonInjector<O> implements ExecutorParametersInjectorHandl
    80 83
             return null;
    
    81 84
         }
    
    82 85
     
    
    86
    +    protected O buildNullValue(Call call, String name, Class<?> type, Type generic) {
    
    87
    +        throw new NullPointerException(String.format("By default do not accept null parameterTrees for parameter: %s with type: %s", name, type.getName()));
    
    88
    +    }
    
    89
    +
    
    83 90
     }

  • server/core/src/main/java/fr/ird/observe/server/injector/ObserveDtoInjector.java
    ... ... @@ -25,6 +25,7 @@ package fr.ird.observe.server.injector;
    25 25
     import com.google.gson.Gson;
    
    26 26
     import com.google.gson.JsonParseException;
    
    27 27
     import fr.ird.observe.dto.ObserveDto;
    
    28
    +import fr.ird.observe.toolkit.navigation.tree.io.request.ToolkitRequestConfig;
    
    28 29
     import io.ultreia.java4all.http.HRestClientService;
    
    29 30
     import org.apache.logging.log4j.LogManager;
    
    30 31
     import org.apache.logging.log4j.Logger;
    
    ... ... @@ -70,4 +71,11 @@ public class ObserveDtoInjector extends JsonInjector<ObserveDto> {
    70 71
             return observeDto;
    
    71 72
         }
    
    72 73
     
    
    74
    +    @Override
    
    75
    +    protected ObserveDto buildNullValue(Call call, String name, Class<?> type, Type generic) {
    
    76
    +        if (ToolkitRequestConfig.class.isAssignableFrom(type)) {
    
    77
    +            return gson.fromJson("{}", generic);
    
    78
    +        }
    
    79
    +        return super.buildNullValue(call, name, type, generic);
    
    80
    +    }
    
    73 81
     }