Solved

Conflicting setter definitions for property Exception

Posted on 2016-07-18
5
233 Views
Last Modified: 2016-08-17
I get the following error whenever I attempt to return an object from my controller

 Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: Conflicting setter definitions for property \"active\": ca.uhn.fhir.model.dstu2.resource.Patient#setActive(1 params) vs ca.uhn.fhir.model.dstu2.resource.Patient#setActive(1 params)
    Caused by: java.lang.IllegalArgumentException: Conflicting setter definitions for property \"active\": ca.uhn.fhir.model.dstu2.resource.Patient#setActive(1 params) vs ca.uhn.fhir.model.dstu2.resource.Patient#setActive(1 params)"}}
DEBUG: org.hibernate.validator.internal.engine.resolver.DefaultTraversableResolver - Found javax.persistence.Persistence on classpath containing 'getPersistenceUtil'. Assuming JPA 2 environment. Trying to instantiate JPA aware TraversableResolver
DEBUG: org.hibernate.validator.internal.engine.resolver.DefaultTraversableResolver - Instantiated JPA aware TraversableResolver of type org.hibernate.validator.internal.engine.resolver.JPATraversableResolver.
DEBUG: org.hibernate.validator.internal.xml.ValidationXmlParser - Trying to load META-INF/validation.xml for XML based Validator configuration.

Open in new window


The Controller code is as shown below:
	@ResponseStatus(HttpStatus.OK)
	@RequestMapping(value = "/fhir/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
	@ApiOperation(tags = "Fhir Patients Information", httpMethod = "GET", value = "Get Fhir Patient Information", notes = "Get Fhir Patient Information.")
	public FhirPatient getFhirPatientInfo(@PathVariable("id") long id) throws Exception {
		
		Patient patient = patientDAO.findPatientById(123708L);
		FhirPatient fhirPatient = FhirConverter.transformPatientToFhirPatient(patient);
		return fhirPatient;

	}

Open in new window


The FhirConverter code is as shown below
    public static FhirPatient getFhirPatientFromPatient(Patient patient){
        FhirPatient fhirPatient = new FhirPatient();
        
        // Add an MRN (a patient identifier)
        IdentifierDt id = fhirPatient.addIdentifier();
        id.setValue(patient.getPatientId().toString());
        id.setUse(IdentifierUseEnum.OFFICIAL);
        
        // Add a name
        HumanNameDt name = fhirPatient.addName();
        name.setUse(NameUseEnum.OFFICIAL);
        name.addFamily(patient.getLastName());
        name.addGiven(patient.getFirstName()).addGiven(patient.getMiddleName());
}

Open in new window



The Fhir object is created as follows:

package com.entity.fhir;


import java.util.Date;

import ca.uhn.fhir.model.dstu2.resource.Patient;
import ca.uhn.fhir.model.primitive.BooleanDt;



public class FhirPatient extends Patient implements java.io.Serializable{


              /**
               * 
               */
	      private static final long serialVersionUID = 1L;
	
	
	      private Integer pcpId;
              private Date dateOfBirth;
              private Integer maritialStatus;
              private Integer officeId;
              private Integer practiceId;



              
              public Integer getPcpId() {
                             return this.pcpId;
              }

              public void setPcpId(Integer pcpId) {
                             this.pcpId = pcpId;
              }

              
              public Date getDateOfBirth() {
                             return this.dateOfBirth;
              }
              
              public void setDateOfBirth(Date dateOfBirth) {
                             this.dateOfBirth = dateOfBirth;
              }
              
              public Integer getMaritialStatus() {
                             return this.maritialStatus;
              }

              public void setMaritialStatus(Integer maritialStatus) {
                             this.maritialStatus = maritialStatus;
              }
              
              public Integer getOfficeId() {
                             return officeId;
              }
              public void setOfficeId(Integer officeId) {
                             this.officeId = officeId;
              }
              
              public Integer getPracticeId() {
                             return practiceId;
              }
              public void setPracticeId(Integer practiceId) {
                             this.practiceId = practiceId;
              }
              

              
}

Open in new window



Can you see any reason why when the controller method, when accessed via Swagger, throws this error
0
Comment
Question by:onaled777
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 16

Expert Comment

by:gurpsbassi
ID: 41717829
Please also post the patient class.
0
 

Author Comment

by:onaled777
ID: 41717875
The Patient Class can be found here:

http://hapifhir.io/apidocs-dstu2/ca/uhn/fhir/model/dstu2/resource/Patient.html

I have tried putting @JsonIgnore around some of the inherited methods, but that only leads to another field with a similar error.  I am not sure if that is the right approach.
0
 
LVL 16

Expert Comment

by:gurpsbassi
ID: 41718216
can you supply the source?
0
 

Author Comment

by:onaled777
ID: 41719133
@JsonIgnore
              public Boolean getActive(){
            	  return this.active;
              }
              
              @JsonIgnore
              public void setActive(Boolean active){
            	  this.active = active;
              }
              
              @JsonIgnore
              public String getGender(){
            	  return this.gender;
              }
  
              @JsonIgnore
              public Patient setGender(String gender){
            	  return null;
              }

Open in new window

0
 
LVL 16

Accepted Solution

by:
gurpsbassi earned 500 total points
ID: 41719142
the whole source please for the class. right from the public class...{ until the last brace }
0

Featured Post

Ready to get started with anonymous questions?

It's easy! Check out this step-by-step guide for asking an anonymous question on Experts Exchange.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Java had always been an easily readable and understandable language.  Some relatively recent changes in the language seem to be changing this pretty fast, and anyone that had not seen any Java code for the last 5 years will possibly have issues unde…
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
This theoretical tutorial explains exceptions, reasons for exceptions, different categories of exception and exception hierarchy.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …
Suggested Courses

623 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question