View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update | 
|---|---|---|---|---|---|
| 0011992 | mantisbt | api soap | public | 2010-06-04 08:55 | 2010-12-17 04:37 | 
| Reporter | AboeBakr | Assigned To | rombert | ||
| Priority | normal | Severity | major | Reproducibility | always | 
| Status | closed | Resolution | unable to reproduce | ||
| Product Version | 1.2.1 | ||||
| Summary | 0011992: g_cache_versions is null throwing error when adding issue | ||||
| Description | when adding an issue using soap, supplying a version triggers an error. temporary fix is checking if $g_cache_versions is null and creating empty array if so. | ||||
| Steps To Reproduce | add issue via soap | ||||
| Additional Information | <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"> | ||||
| Tags | No tags attached. | ||||
| Attached Files |  soap_input.xml (6,763 bytes)   
 <soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:man="http://futureware.biz/mantisconnect" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <soapenv:Header/>
   <soapenv:Body>
      <man:mc_issue_add soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <username xsi:type="xsd:string">USERNAME</username>
         <password xsi:type="xsd:string">PASSWORD</password>
         <issue xsi:type="man:IssueData">
            <!--You may enter the following 30 items in any order-->
            <!--Optional:-->
            <id xsi:type="xsd:integer">?</id>
            <!--Optional:-->
            <view_state xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer">10</id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </view_state>
            <!--Optional:-->
            <last_updated xsi:type="xsd:dateTime"></last_updated>
            <!--Optional:-->
            <project xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer">11</id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </project>
            <!--Optional:-->
            <category xsi:type="xsd:string">VALIDCAT</category>
            <!--Optional:-->
            <priority xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </priority>
            <!--Optional:-->
            <severity xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </severity>
            <!--Optional:-->
            <status xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </status>
            <!--Optional:-->
            <reporter xsi:type="man:AccountData">
               <!--You may enter the following 4 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string">USERNAME</name>
               <!--Optional:-->
               <real_name xsi:type="xsd:string"></real_name>
               <!--Optional:-->
               <email xsi:type="xsd:string"></email>
            </reporter>
            <!--Optional:-->
            <summary xsi:type="xsd:string">soap test</summary>
            <!--Optional:-->
            <version xsi:type="xsd:string">VALIDVERSIONNAME</version>
            <!--Optional:-->
            <build xsi:type="xsd:string"></build>
            <!--Optional:-->
            <platform xsi:type="xsd:string"></platform>
            <!--Optional:-->
            <os xsi:type="xsd:string"></os>
            <!--Optional:-->
            <os_build xsi:type="xsd:string"></os_build>
            <!--Optional:-->
            <reproducibility xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </reproducibility>
            <!--Optional:-->
            <date_submitted xsi:type="xsd:dateTime"></date_submitted>
            <!--Optional:-->
            <sponsorship_total xsi:type="xsd:integer"></sponsorship_total>
            <!--Optional:-->
            <handler xsi:type="man:AccountData">
               <!--You may enter the following 4 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
               <!--Optional:-->
               <real_name xsi:type="xsd:string"></real_name>
               <!--Optional:-->
               <email xsi:type="xsd:string"></email>
            </handler>
            <!--Optional:-->
            <projection xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </projection>
            <!--Optional:-->
            <eta xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </eta>
            <!--Optional:-->
            <resolution xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </resolution>
            <!--Optional:-->
            <fixed_in_version xsi:type="xsd:string"></fixed_in_version>
            <!--Optional:-->
            <description xsi:type="xsd:string">test adding issue via soap</description>
            <!--Optional:-->
            <steps_to_reproduce xsi:type="xsd:string"></steps_to_reproduce>
            <!--Optional:-->
            <additional_information xsi:type="xsd:string"></additional_information>
            <!--Optional:-->
            <attachments xsi:type="man:AttachmentDataArray" soapenc:arrayType="man:AttachmentData[]"/>
            <!--Optional:-->
            <relationships xsi:type="man:RelationshipDataArray" soapenc:arrayType="man:RelationshipData[]"/>
            <!--Optional:-->
            <notes xsi:type="man:IssueNoteDataArray" soapenc:arrayType="man:IssueNoteData[]"/>
            <!--Optional:-->
            <custom_fields xsi:type="man:CustomFieldValueForIssueDataArray" soapenc:arrayType="man:CustomFieldValueForIssueData[]"/>
         </issue>
      </man:mc_issue_add>
   </soapenv:Body>
</soapenv:Envelope> soap_output.xml (10,331 bytes)   
 <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode xsi:type="xsd:string">Server</faultcode>
         <faultactor xsi:type="xsd:string"/>
         <faultstring xsi:type="xsd:string"><![CDATA[Error Type: SYSTEM WARNING,
Error Description:
Invalid argument supplied for foreach(),
Stack Trace:
mc_issue_api.php L528 version_get_id(<string>'VALIDVERSIONNAME', <integer>11)
UnknownFile L? mc_issue_add(<string>'', <string>'PASSWORD', <Array> { ['id'] => 0, ['view_state'] => <Array> { ['id'] => 10, ['name'] => '' }, ['last_updated'] => '', ['project'] => <Array> { ['id'] => 11, ['name'] => '' }, ['category'] => 'Taxonomy', ['priority'] => <Array> { ['id'] => 0, ['name'] => '' }, ['severity'] => <Array> { ['id'] => 0, ['name'] => '' }, ['status'] => <Array> { ['id'] => 0, ['name'] => '' }, ['reporter'] => <Array> { ['id'] => 0, ['name'] => 'USERNAME', ['real_name'] => '', ['email'] => '' }, ['summary'] => 'soap test', ['version'] => 'VALIDVERSIONNAME', ['build'] => '', ['platform'] => '', ['os'] => '', ['os_build'] => '', ['reproducibility'] => <Array> { ['id'] => 0, ['name'] => '' }, ['date_submitted'] => '', ['sponsorship_total'] => 0, ['handler'] => <Array> { ['id'] => 0, ['name'] => '', ['real_name'] => '', ['email'] => '' }, ['projection'] => <Array> { ['id'] => 0, ['name'] => '' }, ['eta'] => <Array> { ['id'] => 0, ['name'] => '' }, ['resolution'] => <Array> { ['id'] => 0, ['name'] => '' }, ['fixed_in_version'] => '', ['description'] => 'test adding issue via soap', ['steps_to_reproduce'] => '', ['additional_information'] => '', ['attachments'] => <Array> {  }, ['relationships'] => <Array> {  }, ['notes'] => <Array> {  }, ['custom_fields'] => <Array> {  } })
nusoap.php L4002 call_user_func_array(<string>'mc_issue_add', <Array> { [0] => 'USERNAME', [1] => 'PASSWORD', [2] => <Array> { ['id'] => 0, ['view_state'] => <Array> { ['id'] => 10, ['name'] => '' }, ['last_updated'] => '', ['project'] => <Array> { ['id'] => 11, ['name'] => '' }, ['category'] => 'Taxonomy', ['priority'] => <Array> { ['id'] => 0, ['name'] => '' }, ['severity'] => <Array> { ['id'] => 0, ['name'] => '' }, ['status'] => <Array> { ['id'] => 0, ['name'] => '' }, ['reporter'] => <Array> { ['id'] => 0, ['name'] => 'USERNAME', ['real_name'] => '', ['email'] => '' }, ['summary'] => 'soap test', ['version'] => 'VALIDVERSIONNAME', ['build'] => '', ['platform'] => '', ['os'] => '', ['os_build'] => '', ['reproducibility'] => <Array> { ['id'] => 0, ['name'] => '' }, ['date_submitted'] => '', ['sponsorship_total'] => 0, ['handler'] => <Array> { ['id'] => 0, ['name'] => '', ['real_name'] => '', ['email'] => '' }, ['projection'] => <Array> { ['id'] => 0, ['name'] => '' }, ['eta'] => <Array> { ['id'] => 0, ['name'] => '' }, ['resolution'] => <Array> { ['id'] => 0, ['name'] => '' }, ['fixed_in_version'] => '', ['description'] => 'test adding issue via soap', ['steps_to_reproduce'] => '', ['additional_information'] => '', ['attachments'] => <Array> {  }, ['relationships'] => <Array> {  }, ['notes'] => <Array> {  }, ['custom_fields'] => <Array> {  } } })
nusoap.php L3691 invoke_method()
mantisconnect.php L1393 service(<string>'<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:man="http://futureware.biz/mantisconnect" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <soapenv:Header/>
   <soapenv:Body>
      <man:mc_issue_add soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <username xsi:type="xsd:string">USERNAME</username>
         <password xsi:type="xsd:string">PASSWORD</password>
         <issue xsi:type="man:IssueData">
            <!--You may enter the following 30 items in any order-->
            <!--Optional:-->
            <id xsi:type="xsd:integer">?</id>
            <!--Optional:-->
            <view_state xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer">10</id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </view_state>
            <!--Optional:-->
            <last_updated xsi:type="xsd:dateTime"></last_updated>
            <!--Optional:-->
            <project xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer">11</id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </project>
            <!--Optional:-->
            <category xsi:type="xsd:string">VALIDCAT</category>
            <!--Optional:-->
            <priority xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </priority>
            <!--Optional:-->
            <severity xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </severity>
            <!--Optional:-->
            <status xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </status>
            <!--Optional:-->
            <reporter xsi:type="man:AccountData">
               <!--You may enter the following 4 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string">USERNAME</name>
               <!--Optional:-->
               <real_name xsi:type="xsd:string"></real_name>
               <!--Optional:-->
               <email xsi:type="xsd:string"></email>
            </reporter>
            <!--Optional:-->
            <summary xsi:type="xsd:string">soap test</summary>
            <!--Optional:-->
            <version xsi:type="xsd:string">VALIDVERSIONNAME</version>
            <!--Optional:-->
            <build xsi:type="xsd:string"></build>
            <!--Optional:-->
            <platform xsi:type="xsd:string"></platform>
            <!--Optional:-->
            <os xsi:type="xsd:string"></os>
            <!--Optional:-->
            <os_build xsi:type="xsd:string"></os_build>
            <!--Optional:-->
            <reproducibility xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </reproducibility>
            <!--Optional:-->
            <date_submitted xsi:type="xsd:dateTime"></date_submitted>
            <!--Optional:-->
            <sponsorship_total xsi:type="xsd:integer"></sponsorship_total>
            <!--Optional:-->
            <handler xsi:type="man:AccountData">
               <!--You may enter the following 4 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
               <!--Optional:-->
               <real_name xsi:type="xsd:string"></real_name>
               <!--Optional:-->
               <email xsi:type="xsd:string"></email>
            </handler>
            <!--Optional:-->
            <projection xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </projection>
            <!--Optional:-->
            <eta xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </eta>
            <!--Optional:-->
            <resolution xsi:type="man:ObjectRef">
               <!--You may enter the following 2 items in any order-->
               <!--Optional:-->
               <id xsi:type="xsd:integer"></id>
               <!--Optional:-->
               <name xsi:type="xsd:string"></name>
            </resolution>
            <!--Optional:-->
            <fixed_in_version xsi:type="xsd:string"></fixed_in_version>
            <!--Optional:-->
            <description xsi:type="xsd:string">test adding issue via soap</description>
            <!--Optional:-->
            <steps_to_reproduce xsi:type="xsd:string"></steps_to_reproduce>
            <!--Optional:-->
            <additional_information xsi:type="xsd:string"></additional_information>
            <!--Optional:-->
            <attachments xsi:type="man:AttachmentDataArray" soapenc:arrayType="man:AttachmentData[]"/>
            <!--Optional:-->
            <relationships xsi:type="man:RelationshipDataArray" soapenc:arrayType="man:RelationshipData[]"/>
            <!--Optional:-->
            <notes xsi:type="man:IssueNoteDataArray" soapenc:arrayType="man:IssueNoteData[]"/>
            <!--Optional:-->
            <custom_fields xsi:type="man:CustomFieldValueForIssueDataArray" soapenc:arrayType="man:CustomFieldValueForIssueData[]"/>
         </issue>
      </man:mc_issue_add>
   </soapenv:Body>
</soapenv:Envelope>')]]></faultstring>
         <detail xsi:type="xsd:string"/>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope> | ||||
| Can you look into this Robert? If it's a problem with the core API's, feel free to toss it back my way. Thanks. | |
| Sorry for missing this. @AboeBakr - can you please provide the XML message you're sending to the SOAP API and any customisations/patches applied? Thanks. | |
| I attached the soap input/output used for testing. as said, currently fixed by adding null check at start of mc_issue_add on $g_cache_versions if (is_null($g_cache_versions)) { | |
| I've just committed a couple of unit tests verifying the behaviour of the mc_issue_add call, you should see them attached to the issue. Also, I notice that $g_cache_versions is initialized in version_api.php at line 91, when the file is loaded, so that can't be null. Please reopen the issue with more information if you can provide it. | |
| MantisBT: master 78c2e76c 2010-08-19 18:58 Details Diff | Add tests for creating issues with version set Tests for both proper version and faulty version have been added, to verify the issues reported in bug 0011992. | Affected Issues 0011992 | |
| mod - tests/soap/IssueAddTest.php | Diff File | ||
| MantisBT: master-1.2.x 4de23659 2010-08-19 18:58 Details Diff | Add tests for creating issues with version set Tests for both proper version and faulty version have been added, to verify the issues reported in bug 0011992. | Affected Issues 0011992 | |
| mod - tests/soap/IssueAddTest.php | Diff File | ||
