Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 384126

Summary: Autoformat corrupts source file
Product: [WebTools] JSDT Reporter: Alexey Kuznetsov <axet>
Component: WebAssignee: Nitin Dahyabhai <thatnitind>
Status: RESOLVED FIXED QA Contact: Nitin Dahyabhai <thatnitind>
Severity: normal    
Priority: P3 CC: thatnitind
Version: unspecified   
Target Milestone: 3.4.1   
Hardware: PC   
OS: Mac OS X   
Whiteboard:

Description Alexey Kuznetsov CLA 2012-07-03 06:19:36 EDT
Build Identifier: 

Try to create test.jsp and click Ctrl+Alt+F (Autoformat)

it wanishes "${pagingAndSor__________________" variable

Source:


  <c:if test="${pagingAndSort.pageCount > 1}">
    <div id="pager">
      <fmt:message key="pay.system.reward.paging">
        <fmt:param>
          <c:if test="${pagingAndSort.page != 1}">
            <a href="javascript:void(0);"
              onclick="doPaging('<c:out value="${pagingAndSort.page - 1}"/>'); return false;"> <img
              src="img/icons/arrow_left.gif" width="16" height="16" />
            </a>
          </c:if>
          <input size="1" value="<c:out value="${pagingAndSort.page}"/>" type="text"
            onchange="doPaging(this.value); return false;" />
          <c:if test="${pagingAndSort.page != pagingAndSort.pageCount}">
            <a href="javascript:void(0);"
              onclick="doPaging('<c:out value="${pagingAndSort.page + 1}"/>'); return false;"> <img
              src="img/icons/arrow_right.gif" width="16" height="16" />
            </a>
          </c:if>
        </fmt:param>
        <fmt:param>
          <c:out value="${pagingAndSort.pageCount}" />
        </fmt:param>
        <fmt:param>
          <form:select path="pagingAndSort.itemsPerPage" items="${viewPerPage}" id="itemsPerP"
            onchange="doChangeItemPerPage(this.value); return false;" />
        </fmt:param>
        <fmt:param>
          <strong><c:out value="${pagingAndSort.itemsCount}" /></strong>
        </fmt:param>
      </fmt:message>
    </div>
  </c:if>

<script type="text/javascript">
	function doSort(sortProperty) {
		var form = document.getElementById("sortForm");
		document.getElementById("sortProperty").value = sortProperty;
		var sortPropertyBase = '<c:out value="${pagingAndSort.sortProperty}"/>';
		var sortOrder = document.getElementById("sortOrder");
		if (sortProperty == sortPropertyBase) {
			if ("asc" == sortOrder.value) {
				sortOrder.value = "desc";
			} else {
				sortOrder.value = "asc";
			}
		} else {
			sortOrder.value = "desc";
		}
		form.submit();
	}
	function doPaging(page) {
		var form = document.getElementById("sortForm");
		document.getElementById("page").value = page;
		form.submit();
	}
	function doChangeItemPerPage(itemsPerPage) {
		var form = document.getElementById("sortForm");
		document.getElementById("itemsPerPage").value = itemsPerPage;
		form.submit();
	}
</script>





result:



<c:if test="${pagingAndSort.pageCount > 1}">
  <div id="pager">
    <fmt:message key="pay.system.reward.paging">
      <fmt:param>
        <c:if test="${pagingAndSort.page != 1}">
          <a href="javascript:void(0);" onclick="doPaging('<c:out value="${pagingAndSort.page - 1}"/>'); return false;">
            <img src="img/icons/arrow_left.gif" width="16" height="16" />
          </a>
        </c:if>
        <input size="1" value="<c:out value="${pagingAndSort.page}"/>" type="text"
          onchange="doPaging(this.value); return false;" />
        <c:if test="${pagingAndSort.page != pagingAndSort.pageCount}">
          <a href="javascript:void(0);" onclick="doPaging('<c:out value="${pagingAndSort.page + 1}"/>'); return false;">
            <img src="img/icons/arrow_right.gif" width="16" height="16" />
          </a>
        </c:if>
      </fmt:param>
      <fmt:param>
        <c:out value="${pagingAndSort.pageCount}" />
      </fmt:param>
      <fmt:param>
        <form:select path="pagingAndSort.itemsPerPage" items="${viewPerPage}" id="itemsPerP"
          onchange="doChangeItemPerPage(this.value); return false;" />
      </fmt:param>
      <fmt:param>
        <strong><c:out value="${pagingAndSort.itemsCount}" /></strong>
      </fmt:param>
    </fmt:message>
  </div>
</c:if>

<script type="text/javascript">
	function doSort(sortProperty) {
		var form = document.getElementById("sortForm");
		document.getElementById("sortProperty").value = sortProperty;
		var sortPropertyBase = '<c:out value="${pagingAndSor__________________';
		var sortOrder = document.getElementById("sortOrder");
		if (sortProperty == sortPropertyBase) {
			if ("asc" == sortOrder.value) {
				sortOrder.value = "desc";
			} else {
				sortOrder.value = "asc";
			}
		} else {
			sortOrder.value = "desc";
		}
		form.submit();
	}
	function doPaging(page) {
		var form = document.getElementById("sortForm");
		document.getElementById("page").value = page;
		form.submit();
	}
	function doChangeItemPerPage(itemsPerPage) {
		var form = document.getElementById("sortForm");
		document.getElementById("itemsPerPage").value = itemsPerPage;
		form.submit();
	}
</script>


Reproducible: Always
Comment 1 Nick Sandonato CLA 2012-07-23 10:37:37 EDT
Looks similar to other JSP-in-JavaScript formatting bugs.
Comment 2 Nitin Dahyabhai CLA 2012-08-13 16:20:49 EDT
Fixed with changes in bug 382474; data-loss test added to org.eclipse.jst.jsp.ui.tests.format.TestContentFormatter.