title: Conflicting property name definitions in jersey ,using Jackson 2.9.6
body: <p>I have a REST service with the following modal:</p>
  
  <pre><code>/**
   * Agent
   */
  
  public class Agent {
    @JsonProperty("name")
    private String name = null;
  
    @JsonProperty("type")
    private String type = null;
  
    @JsonProperty("description")
    private String description = null;
  
    @JsonProperty("status")
    private String status = null;
  
    @JsonProperty("meta")
    private Object meta = null;
  
    @JsonProperty("Operations")
    private List&lt;OperationsListInner&gt; operations = null;
  
    @JsonProperty("Properties")
    private List&lt;Object&gt; properties = null;
  
  
  
    public Agent name(String name) {
      this.name = name;
      return this;
    }
  
    /**
     * Get name
     * @return name
     **/
    @JsonProperty("name")
  
    @ApiModelProperty(required = true, value = "")
    @NotNull
    public String getName() {
      return name;
    }
  
    public void setName(String name) {
      this.name = name;
    }
  
    public Agent type(String type) {
      this.type = type;
      return this;
    }
  
    /**
     * Get type
     * @return type
     **/
    @JsonProperty("type")
    @ApiModelProperty(value = "")
    public String getType() {
      return type;
    }
  
    public void setType(String type) {
      this.type = type;
    }
  
    public Agent description(String description) {
      this.description = description;
      return this;
    }
  
    /**
     * Get description
     * @return description
     **/
    @JsonProperty("description")
    @ApiModelProperty(value = "")
    public String getDescription() {
      return description;
    }
  
    public void setDescription(String description) {
      this.description = description;
    }
  
    public Agent status(String status) {
      this.status = status;
      return this;
    }
  
    /**
     * Get status
     * @return status
     **/
    @JsonProperty("status")
    @ApiModelProperty(value = "")
    public String getStatus() {
      return status;
    }
  
    public void setStatus(String status) {
      this.status = status;
    }
  
    public Agent meta(Object meta) {
      this.meta = meta;
      return this;
    }
  
    /**
     * Get meta
     * @return meta
     **/
    @JsonProperty("meta")
    @ApiModelProperty(value = "")
    public Object getMeta() {
      return meta;
    }
  
    public void setMeta(Object meta) {
      this.meta = meta;
    }
  
    public Agent operations(List&lt;OperationsListInner&gt; operations) {
      this.operations = operations;
      return this;
    }
  
    public Agent addOperationsItem(OperationsListInner operationsItem) {
      if (this.operations == null) {
        this.operations = new ArrayList&lt;&gt;();
      }
      this.operations.add(operationsItem);
      return this;
    }
  
    /**
     * Get operations
     * @return operations
     **/
    @JsonProperty("fetchOperations")
    @ApiModelProperty(value = "")
    public List&lt;OperationsListInner&gt; getOperations() {
      return operations;
    }
  
    public void setOperations(List&lt;OperationsListInner&gt; operations) {
      this.operations = operations;
    }
  
    public Agent properties(List&lt;Object&gt; properties) {
      this.properties = properties;
      return this;
    }
  
    public Agent addPropertiesItem(Object propertiesItem) {
      if (this.properties == null) {
        this.properties = new ArrayList&lt;&gt;();
      }
      this.properties.add(propertiesItem);
      return this;
    }
  
    /**
     * Get properties
     * @return properties
     **/
    @JsonProperty("Properties")
    @ApiModelProperty(value = "")
    public List&lt;Object&gt; getProperties() {
      return properties;
    }
  
    public void setProperties(List&lt;Object&gt; properties) {
      this.properties = properties;
    }
  
  
    @Override
    public boolean equals(Object o) {
      if (this == o) {
        return true;
      }
      if (o == null || getClass() != o.getClass()) {
        return false;
      }
      Agent agent = (Agent) o;
      return Objects.equals(this.name, agent.name) &amp;&amp;
          Objects.equals(this.type, agent.type) &amp;&amp;
          Objects.equals(this.description, agent.description) &amp;&amp;
          Objects.equals(this.status, agent.status) &amp;&amp;
          Objects.equals(this.meta, agent.meta) &amp;&amp;
          Objects.equals(this.operations, agent.operations) &amp;&amp;
          Objects.equals(this.properties, agent.properties);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(name, type, description, status, meta, operations, properties);
    }
  
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class Agent {\n");
  
      sb.append("    name: ").append(toIndentedString(name)).append("\n");
      sb.append("    type: ").append(toIndentedString(type)).append("\n");
      sb.append("    description: ").append(toIndentedString(description)).append("\n");
      sb.append("    status: ").append(toIndentedString(status)).append("\n");
      sb.append("    meta: ").append(toIndentedString(meta)).append("\n");
      sb.append("    operations: ").append(toIndentedString(operations)).append("\n");
      sb.append("    properties: ").append(toIndentedString(properties)).append("\n");
      sb.append("}");
      return sb.toString();
    }
  
    /**
     * Convert the given object to string with each line indented by 4 spaces
     * (except the first line).
     */
    private String toIndentedString(Object o) {
      if (o == null) {
        return "null";
      }
      return o.toString().replace("\n", "\n    ");
    }
  }
  </code></pre>
  
  <p>now when i am trying to get this modal into my REST client, I am getting a conflicting property name error. This is happening in my GET http request.</p>
  
  <pre><code>Exception in thread "main" java.lang.IllegalStateException: Conflicting/ambiguous property name definitions (implicit name 'operations'): found multiple explicit names: [Operations, fetchOperations], but also implicit accessor: [method com.agentsDB.api.model.individualAgents.Agent#setOperations(1 params)][visible=true,ignore=false,explicitName=false]
      at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder._explode(POJOPropertyBuilder.java:1062)
      at com.fasterxml.jackson.databind.introspect.POJOPropertyBuilder.explode(POJOPropertyBuilder.java:1043)
      at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector._renameProperties(POJOPropertiesCollector.java:798)
      at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.collectAll(POJOPropertiesCollector.java:324)
      at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getPropertyMap(POJOPropertiesCollector.java:287)
      at com.fasterxml.jackson.databind.introspect.POJOPropertiesCollector.getProperties(POJOPropertiesCollector.java:170)
      at com.fasterxml.jackson.databind.introspect.BasicBeanDescription._properties(BasicBeanDescription.java:164)
      at com.fasterxml.jackson.databind.introspect.BasicBeanDescription.findProperties(BasicBeanDescription.java:239)
      at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._findCreatorsFromProperties(BasicDeserializerFactory.java:346)
      at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory._constructDefaultValueInstantiator(BasicDeserializerFactory.java:330)
      at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.findValueInstantiator(BasicDeserializerFactory.java:255)
      at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:214)
      at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:137)
      at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:411)
      at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:349)
      at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)
      at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
      at com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)
      at com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:477)
      at com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:4178)
      at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3997)
      at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2992)
      at com.agentsDB.api.JsonUtil.convertJSONtoJAVA(JsonUtil.java:34)
      at com.agentsDB.api.apiClientInvoke.invokeAPI(apiClientInvoke.java:54)
      at com.agentsDB.api.main.main(main.java:25)
  </code></pre>
  
  <p>I already read a lot of post in this regard but couldn't find any solution to this. I an using JACKSOn 2.9.6 and my JsonUtil is as follow which i have used for serialization and deserialization .</p>
  
  <pre><code>public class JsonUtil {
  
  private static ObjectMapper mapper;
  static {
      mapper = new ObjectMapper();
  }
  
  public  String convertJAVAtoJSON(Object object){
      String JSONresult = "";
      try{
          JSONresult = mapper.writeValueAsString(object);
      } catch (JsonProcessingException e){
          System.out.println("exception occured");
          e.printStackTrace();
      }
      return JSONresult;
  
  }
  
  
  public  &lt;T&gt; T convertJSONtoJAVA(String jsonString, Class&lt;T&gt; returnTypeClass){
      T javaResult = null;
      try {
        javaResult = mapper.readValue(jsonString,returnTypeClass);
  
      }catch(IOException e){
         e.printStackTrace();
      }
  
     return javaResult;
  }
  </code></pre>
  
  <p>can anyone help me resolve it? I am using jersey+Jackson.</p>