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

Shawn McKinney updated FC-279:
------------------------------
    Description: 
The problem:

Currently when the URL for Fortress Rest isn't set right, in RestUtils, 404 
error gets masked, as the response is attempted to be parsed.

Fix the error handing to properly catch http errors and map to appropriate 
exception. 

There's a bit more to this.  That is currently Fortress Rest maps application 
defined errors, e.g. read and authentication failures to HTTP error codes, in 
addition to the application status codes.

The rationale, so certain RESTful clients, i.e. the new Fortress UI don't have 
to crack the message when errors happen.  

Impedance mismatch between generic HTTP errors and application defined errors 
notwithstanding, there needs to be a way to differentiate between generic HTTP 
errors, i.e. thrown by Tomcat, and application defined HTTP errors, thrown by 
the Fortress Rest processor.  

***

The solution, is to examine the response, in addition to the error code, to 
determine if generic HTTP errors should be thrown, or if normal processing 
should resume.

{{ case HTTP_404_NOT_FOUND:}}
{{  szResponse = IOUtils.toString( response.getEntity().getContent(), "UTF-8" 
);}}
{{  // Crack the response and see if it can be parsed as a valid Fortress 
Response object or generic     HTTP:}}
{{  if( StringUtils.isNotEmpty( szResponse ) && 
szResponse.contains(VALID_RESPONSE) )}}
{{  {}}
{{    LOG.debug( "HTTP: 404: post uri=[{}], function=[{}], response=[{}]", uri, 
function, szResponse );}}
{{  }}}
{{  else}}
{{  {}}
{{    error = generateErrorMessage( uri, function, "HTTP Error:" +    
response.getStatusLine().getStatusCode());}}
{{    LOG.error( error );}}
{{    throw new RestException( GlobalErrIds.REST_NOT_FOUND_ERR, error );}}
{{  }}}
{{  break;}}

 

  was:
Currently when the URL for Fortress Rest isn't set right, in RestUtils, 404 
error gets masked, as the response is attempted to be parsed.

 

Fix the error handing to properly catch 404 error and map to appropriate 
exception.


> Fix RestUtils error mapping for HTTP errors
> -------------------------------------------
>
>                 Key: FC-279
>                 URL: https://issues.apache.org/jira/browse/FC-279
>             Project: FORTRESS
>          Issue Type: Bug
>    Affects Versions: 2.0.4
>            Reporter: Shawn McKinney
>            Assignee: Shawn McKinney
>            Priority: Major
>             Fix For: 3.0.0-RC1
>
>
> The problem:
> Currently when the URL for Fortress Rest isn't set right, in RestUtils, 404 
> error gets masked, as the response is attempted to be parsed.
> Fix the error handing to properly catch http errors and map to appropriate 
> exception. 
> There's a bit more to this.  That is currently Fortress Rest maps application 
> defined errors, e.g. read and authentication failures to HTTP error codes, in 
> addition to the application status codes.
> The rationale, so certain RESTful clients, i.e. the new Fortress UI don't 
> have to crack the message when errors happen.  
> Impedance mismatch between generic HTTP errors and application defined errors 
> notwithstanding, there needs to be a way to differentiate between generic 
> HTTP errors, i.e. thrown by Tomcat, and application defined HTTP errors, 
> thrown by the Fortress Rest processor.  
> ***
> The solution, is to examine the response, in addition to the error code, to 
> determine if generic HTTP errors should be thrown, or if normal processing 
> should resume.
> {{ case HTTP_404_NOT_FOUND:}}
> {{  szResponse = IOUtils.toString( response.getEntity().getContent(), "UTF-8" 
> );}}
> {{  // Crack the response and see if it can be parsed as a valid Fortress 
> Response object or generic     HTTP:}}
> {{  if( StringUtils.isNotEmpty( szResponse ) && 
> szResponse.contains(VALID_RESPONSE) )}}
> {{  {}}
> {{    LOG.debug( "HTTP: 404: post uri=[{}], function=[{}], response=[{}]", 
> uri, function, szResponse );}}
> {{  }}}
> {{  else}}
> {{  {}}
> {{    error = generateErrorMessage( uri, function, "HTTP Error:" +    
> response.getStatusLine().getStatusCode());}}
> {{    LOG.error( error );}}
> {{    throw new RestException( GlobalErrIds.REST_NOT_FOUND_ERR, error );}}
> {{  }}}
> {{  break;}}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to