You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Matthias Gerber (JIRA)" <ji...@apache.org> on 2012/04/25 13:58:02 UTC

[jira] [Updated] (AXIS2-5300) org.apache.axis2.json.AbstractJSONOMBuilder hangs when JSON has wrong format

     [ https://issues.apache.org/jira/browse/AXIS2-5300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matthias Gerber updated AXIS2-5300:
-----------------------------------

    Description: 
org.apache.axis2.json.AbstractJSONOMBuilder hangs when JSON has wrong format:

Code loping through reader at line 119 and 135 to get localName should check for end of stream. 
Otherwise the code cycles for ever if the string to parse does not contain a  ":"

Code as it is at the moment:

118            char temp = (char)reader.read();
119            while (temp != ':') {
120               if (temp != ' ' && temp != '{' && temp != '\n' && temp != '\r' && temp != '\t') {
121                    localName += temp;
122                }
123                temp = (char)reader.read();
124            }


Code as it should be (or something like that):
                  int t = reader.read();
118            char temp = (char)t;
119            while (temp != ':' && t >= 0) {
120               if (temp != ' ' && temp != '{' && temp != '\n' && temp != '\r' && temp != '\t') {
121                    localName += temp;
122                }
                     t =  reader.read();
123                temp =  (char)t;
124            }

And maybe some error handling if end of stream is reached. 


  was:
org.apache.axis2.json.AbstractJSONOMBuilder hangs when JSAO has wrong format:

Code loping through reader at line 119 and 135 to get localName should check for end of stream. 
Otherwise the code cycles for ever if the string to parse does not contain a  ":"

Code as it is at the moment:

118            char temp = (char)reader.read();
119            while (temp != ':') {
120               if (temp != ' ' && temp != '{' && temp != '\n' && temp != '\r' && temp != '\t') {
121                    localName += temp;
122                }
123                temp = (char)reader.read();
124            }


Code as it should be (or something like that):
                  int t = reader.read();
118            char temp = (char)t;
119            while (temp != ':' && t >= 0) {
120               if (temp != ' ' && temp != '{' && temp != '\n' && temp != '\r' && temp != '\t') {
121                    localName += temp;
122                }
                     t =  reader.read();
123                temp =  (char)t;
124            }

And maybe some error handling if end of stream is reached. 


        Summary: org.apache.axis2.json.AbstractJSONOMBuilder hangs when JSON has wrong format  (was: org.apache.axis2.json.AbstractJSONOMBuilder hangs when JSAO has wrong format)
    
> org.apache.axis2.json.AbstractJSONOMBuilder hangs when JSON has wrong format
> ----------------------------------------------------------------------------
>
>                 Key: AXIS2-5300
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5300
>             Project: Axis2
>          Issue Type: Bug
>          Components: json
>    Affects Versions: 1.6.2
>         Environment: Apache tomcat 7.0.25
> Ubuntu 64Bit 11.10
>            Reporter: Matthias Gerber
>
> org.apache.axis2.json.AbstractJSONOMBuilder hangs when JSON has wrong format:
> Code loping through reader at line 119 and 135 to get localName should check for end of stream. 
> Otherwise the code cycles for ever if the string to parse does not contain a  ":"
> Code as it is at the moment:
> 118            char temp = (char)reader.read();
> 119            while (temp != ':') {
> 120               if (temp != ' ' && temp != '{' && temp != '\n' && temp != '\r' && temp != '\t') {
> 121                    localName += temp;
> 122                }
> 123                temp = (char)reader.read();
> 124            }
> Code as it should be (or something like that):
>                   int t = reader.read();
> 118            char temp = (char)t;
> 119            while (temp != ':' && t >= 0) {
> 120               if (temp != ' ' && temp != '{' && temp != '\n' && temp != '\r' && temp != '\t') {
> 121                    localName += temp;
> 122                }
>                      t =  reader.read();
> 123                temp =  (char)t;
> 124            }
> And maybe some error handling if end of stream is reached. 

--
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

        

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org