[ https://issues.apache.org/jira/browse/GEODE-6808?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Juan José Ramos Cassella updated GEODE-6808: -------------------------------------------- Description: As part of thee efforts to remove {{TypedJson}} and move from {{org.json}} to {{Jackson}} between {{1.8.0}} and {{1.9.0}}, the {{JSON}} string returned by the {{QueryDataFunction}} doesn't include the object type anymore within the array (at least for primitive types). The old version used to return results in the form {{\{"result":[["java.lang.String","v"],["java.lang.String","b"]]}\}}, while the new one uses {{\{"result":["v", "b"]\}}}. This function is used through {{DistributedSystemMXBean.queryData}}, so any user executing queries through {{JMX}} and relying on the [documented representation|https://geode.apache.org/releases/latest/javadoc/org/apache/geode/management/DistributedSystemMXBean.html#queryData-java.lang.String-java.lang.String-int-] to parse the results will fail as soon as they upgrade to {{1.9.0}}. Several parsing methods within {{DataBrowser.js}} *still use these deleted types* as well to create an internal representation that is later used to show the results in {{HTML}} so, starting with {{1.9.0}}, the query results are always shown as empty. {code:javascript} // This function creates complete result panel html function createHtmlForQueryResults(){ var memberResults = responseResult.result; if(memberResults.length > 0){ if(memberResults[0].member != undefined || memberResults[0].member != null){ //console.log("member wise results found.."); for(var i=0; i<memberResults.length; i++){ //console.log(memberResults[i].member); $('#memberAccordion').append(createHtmlForMember(memberResults[i])); } }else{ //console.log("cluster level results found.."); var accordionContentHtml = ""; accordionContentHtml = createClusterAccordionContentHtml(memberResults); var resultHtml = "<div class=\"accordion-content2\">"+ accordionContentHtml +"</div>"; $('#memberAccordion').append(resultHtml); } }else{ $('#memberAccordion').append("<span> No Results Found...</span>"); } } {code} We need to either re-factor the entire parsing logic to use the new format, or revert the changes to keep using the old format. Cheers. was: As part of thee efforts to remove {{TypedJson}} and move from {{org.json}} to {{Jackson}} between {{1.8.0}} and {{1.9.0}}, the {{JSON}} string returned by the {{QueryDataFunction}} doesn't include the object type anymore within the array. The old version used to return results in the form {{\{"result":[["java.lang.String","v"],["java.lang.String","b"]]}\}}, while the new one uses {{\{"result":["v", "b"]\}}}. This function is used through {{DistributedSystemMXBean.queryData}}, so any user executing queries through {{JMX}} and relying on the [documented representation|https://geode.apache.org/releases/latest/javadoc/org/apache/geode/management/DistributedSystemMXBean.html#queryData-java.lang.String-java.lang.String-int-] to parse the results will fail as soon as they upgrade to {{1.9.0}}. Several parsing methods within {{DataBrowser.js}} *still use these deleted types* as well to create an internal representation that is later used to show the results in {{HTML}} so, starting with {{1.9.0}}, the query results are always shown as empty. {code:javascript} // This function creates complete result panel html function createHtmlForQueryResults(){ var memberResults = responseResult.result; if(memberResults.length > 0){ if(memberResults[0].member != undefined || memberResults[0].member != null){ //console.log("member wise results found.."); for(var i=0; i<memberResults.length; i++){ //console.log(memberResults[i].member); $('#memberAccordion').append(createHtmlForMember(memberResults[i])); } }else{ //console.log("cluster level results found.."); var accordionContentHtml = ""; accordionContentHtml = createClusterAccordionContentHtml(memberResults); var resultHtml = "<div class=\"accordion-content2\">"+ accordionContentHtml +"</div>"; $('#memberAccordion').append(resultHtml); } }else{ $('#memberAccordion').append("<span> No Results Found...</span>"); } } {code} We need to either re-factor the entire parsing logic to use the new format, or revert the changes to keep using the old format. Cheers. > Backward compatibility broken in DistributedSystemMXBean.queryData > ------------------------------------------------------------------ > > Key: GEODE-6808 > URL: https://issues.apache.org/jira/browse/GEODE-6808 > Project: Geode > Issue Type: Bug > Components: jmx, pulse, querying > Reporter: Juan José Ramos Cassella > Priority: Major > > As part of thee efforts to remove {{TypedJson}} and move from {{org.json}} to > {{Jackson}} between {{1.8.0}} and {{1.9.0}}, the {{JSON}} string returned by > the {{QueryDataFunction}} doesn't include the object type anymore within the > array (at least for primitive types). The old version used to return results > in the form > {{\{"result":[["java.lang.String","v"],["java.lang.String","b"]]}\}}, while > the new one uses {{\{"result":["v", "b"]\}}}. > This function is used through {{DistributedSystemMXBean.queryData}}, so any > user executing queries through {{JMX}} and relying on the [documented > representation|https://geode.apache.org/releases/latest/javadoc/org/apache/geode/management/DistributedSystemMXBean.html#queryData-java.lang.String-java.lang.String-int-] > to parse the results will fail as soon as they upgrade to {{1.9.0}}. > Several parsing methods within {{DataBrowser.js}} *still use these deleted > types* as well to create an internal representation that is later used to > show the results in {{HTML}} so, starting with {{1.9.0}}, the query results > are always shown as empty. > {code:javascript} > // This function creates complete result panel html > function createHtmlForQueryResults(){ > var memberResults = responseResult.result; > if(memberResults.length > 0){ > if(memberResults[0].member != undefined || memberResults[0].member != > null){ > //console.log("member wise results found.."); > for(var i=0; i<memberResults.length; i++){ > //console.log(memberResults[i].member); > $('#memberAccordion').append(createHtmlForMember(memberResults[i])); > } > }else{ > //console.log("cluster level results found.."); > var accordionContentHtml = ""; > accordionContentHtml = createClusterAccordionContentHtml(memberResults); > var resultHtml = "<div class=\"accordion-content2\">"+ > accordionContentHtml +"</div>"; > $('#memberAccordion').append(resultHtml); > } > }else{ > $('#memberAccordion').append("<span> No Results Found...</span>"); > } > } > {code} > We need to either re-factor the entire parsing logic to use the new format, > or revert the changes to keep using the old format. > Cheers. -- This message was sent by Atlassian JIRA (v7.6.3#76005)