Concept JSP cannot compile

I just ran the legacy webapp from master and the concept view throws an exception (screen is blank)

Apr 21, 2015 8:53:23 PM org.apache.jasper.compiler.Compiler generateClass
SEVERE: Error compiling file: C:\Users\lluis\git\openmrs-core\webapp\target\tmp\jsp\org\apache\jsp\WEB_002dINF\view\dictionary\concept_jsp.java
2015-04-21 20:53:23.881:WARN:oejs.ServletHandler:
org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP||PWC6197: An error occurred at line: 288 in the jsp file: /WEB-INF/view/dictionary/concept.jsp|PWC6199: Generated servlet error:|incompatible types|  required: java.lang.String|  found:    org.springframework.web.servlet.support.BindStatus||PWC6199: Generated servlet error:|incompatible types|  required: org.springframework.web.servlet.support.BindStatus|  found:    java.lang.String||

I did a mvn clean install and the build was fine. It seems a Spring issue, specifically related to custom tag.

Removing the tag using the property command.concept.displayPrecision makes the form to display fine. Can be related to the new Spring version?

It may be related to the Spring upgrade. I’m guessing the issue is with using spring:bind inside another spring:bind, which feels incorrect (though I didn’t look in docs to back it up).

<spring:bind path="command.concept.precise">
	<c:if test="${status.value}">	
	<th><openmrs:message code="ConceptNumeric.displayPrecision"/></th>
	<td colspan="2">
	<spring:bind path="command.concept.displayPrecision">
		<c:out value="${status.value}" />
		<c:if test="${status.errorMessage != ''}"><span class="error">${status.errorMessage}</span></c:if>
	</spring:bind>
	</td>
	</c:if>
	</spring:bind>

Could you please try changing that to:

	<c:if test="${command.concept.precise}">	
	<th><openmrs:message code="ConceptNumeric.displayPrecision"/></th>
	<td colspan="2">
	<spring:bind path="command.concept.displayPrecision">
		<c:out value="${status.value}" />
		<c:if test="${status.errorMessage != ''}"><span class="error">${status.errorMessage}</span></c:if>
	</spring:bind>
	</td>
	</c:if>

Is this in any way related to? https://github.com/openmrs/openmrs-core/commit/92a3cf4df17409bf04565618511603ee613ed025

Yes, that’s it. It seems like previous versions of Spring didn’t complain about nesting spring:bind.