JSONResult - buildSMDObject method is never called internally
-------------------------------------------------------------

                 Key: WW-3694
                 URL: https://issues.apache.org/jira/browse/WW-3694
             Project: Struts 2
          Issue Type: Bug
          Components: Plugin - JSON
    Affects Versions: 2.2.3.1
         Environment: Tomcat on windows, JDK1.5
            Reporter: Alex Yavorskiy


Pre version 2.2.3.1 JSONResult object used to have a protected method that 
allowed us to have a subclass that could modify URL of the SMD command being 
sent in the response right before it was sent. That method was "writeSMD". In 
version 2.2.3.1 of Struts there is no more method named "writeSMD", but there 
appears to be equivalent protected method named "buildSMDObject". However, we 
observed that buildSMDObject is never called by the infrastructure, so there is 
no use overriding it.

After inspecting source for JSONResult, it looks like line 180 in the 
readRootObject function is really intended to call buildSMDObject. However, 
instead of calling the protected method in question, it creates SMD object 
right there.

 if (enableSMD) {
            return new SMDGenerator(root, excludeProperties, 
ignoreInterfaces).generate(invocation);
        }

Fixing line 180 to call buildSMDObject should fix the issue. We had to 
significantly re-write our subclass for JSONResult to work around the 
deficiency. Hope this can be fixed in a future release.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to