Issue #3648 Improve GFE error handling for getAllAvailableParms.
Change-Id: I13d41a3c231a56fe7d6fc4bc3cbfd96e1bdcdccf Former-commit-id:8d0d43a437
[formerly429de3224f
] [formerly8d0d43a437
[formerly429de3224f
] [formerlyc37618c16c
[formerly b77b3c916b4dcc9034408220006f941cd301ed3c]]] Former-commit-id:c37618c16c
Former-commit-id:99f47f37fd
[formerly0ad9b46bce
] Former-commit-id:a3ae3bcb74
This commit is contained in:
parent
7efcbed553
commit
dcf6d96c18
2 changed files with 41 additions and 21 deletions
|
@ -118,6 +118,8 @@ import com.raytheon.viz.gfe.core.parm.Parm;
|
|||
* 06/06/13 #2073 dgilling Make getGridInventory() better match A1,
|
||||
* fix warnings.
|
||||
* 11/20/2013 #2331 randerso Added getTopoData method
|
||||
* 09/23/14 #3648 randerso Changed getParmList to return results even if some DbIds
|
||||
* have errors
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -190,8 +192,20 @@ public class IFPClient {
|
|||
throws GFEServerException {
|
||||
GetParmListRequest request = new GetParmListRequest();
|
||||
request.setDbIds(ids);
|
||||
ServerResponse<?> sr = makeRequest(request);
|
||||
return (List<ParmID>) sr.getPayload();
|
||||
ServerResponse<?> sr = makeRequest(request, false);
|
||||
List<ParmID> parmIds = (List<ParmID>) sr.getPayload();
|
||||
if (!sr.isOkay()) {
|
||||
String msg = formatSRMessage(sr);
|
||||
if (parmIds != null && !parmIds.isEmpty()) {
|
||||
// got something so display an error message and continue
|
||||
statusHandler.error(msg);
|
||||
} else {
|
||||
// got nothing so throw exception
|
||||
throw new GFEServerException(msg);
|
||||
}
|
||||
}
|
||||
|
||||
return parmIds;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -729,27 +743,33 @@ public class IFPClient {
|
|||
|
||||
if ((throwExceptionsBasedOnResponse) && (rval != null)
|
||||
&& (!rval.isOkay())) {
|
||||
StringBuilder msg = new StringBuilder();
|
||||
if (rval.getMessages().size() > 1) {
|
||||
msg.append("Errors ");
|
||||
} else {
|
||||
msg.append("Error ");
|
||||
}
|
||||
msg.append("occurred on GFE server -");
|
||||
Iterator<ServerMsg> iter = rval.getMessages().iterator();
|
||||
while (iter.hasNext()) {
|
||||
msg.append(iter.next().getMessage());
|
||||
if (iter.hasNext()) {
|
||||
msg.append(", ");
|
||||
}
|
||||
}
|
||||
throw new GFEServerException(msg.toString());
|
||||
String msg = formatSRMessage(rval);
|
||||
throw new GFEServerException(msg);
|
||||
|
||||
}
|
||||
|
||||
return rval;
|
||||
}
|
||||
|
||||
private String formatSRMessage(ServerResponse<?> rval) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (rval.getMessages().size() > 1) {
|
||||
sb.append("Errors ");
|
||||
} else {
|
||||
sb.append("Error ");
|
||||
}
|
||||
sb.append("occurred on GFE server: ");
|
||||
Iterator<ServerMsg> iter = rval.getMessages().iterator();
|
||||
while (iter.hasNext()) {
|
||||
sb.append(iter.next().getMessage());
|
||||
if (iter.hasNext()) {
|
||||
sb.append(", ");
|
||||
}
|
||||
}
|
||||
String msg = sb.toString();
|
||||
return msg;
|
||||
}
|
||||
|
||||
public void clearPracticeTable(String siteId) throws VizException {
|
||||
ClearPracticeVTECTableRequest request = new ClearPracticeVTECTableRequest();
|
||||
request.setRequestedSiteId(SiteMap.getInstance().getSite4LetterId(
|
||||
|
|
|
@ -38,7 +38,8 @@ import com.raytheon.uf.common.serialization.comm.IRequestHandler;
|
|||
* 04/08/08 #875 bphillip Initial Creation
|
||||
* 09/22/09 3058 rjpeter Converted to IRequestHandler
|
||||
* 05/02/13 #1969 randerso Fixed null pointer if getParmList fails
|
||||
* 06/13/13 2044 randerso Refactored to use IFPServer
|
||||
* 06/13/13 #2044 randerso Refactored to use IFPServer
|
||||
* 09/23/14 #3648 randerso Changed to send results even if some DbIds fail
|
||||
* </pre>
|
||||
*
|
||||
* @author bphillip
|
||||
|
@ -52,6 +53,8 @@ public class GetParmListHandler extends BaseGfeRequestHandler implements
|
|||
|
||||
List<ParmID> retVal = new ArrayList<ParmID>();
|
||||
ServerResponse<List<ParmID>> sr = new ServerResponse<List<ParmID>>();
|
||||
sr.setPayload(retVal);
|
||||
|
||||
for (DatabaseID id : request.getDbIds()) {
|
||||
ServerResponse<List<ParmID>> ssr = getIfpServer(request)
|
||||
.getGridParmMgr().getParmList(id);
|
||||
|
@ -61,9 +64,6 @@ public class GetParmListHandler extends BaseGfeRequestHandler implements
|
|||
sr.addMessages(ssr);
|
||||
}
|
||||
}
|
||||
if (sr.isOkay()) {
|
||||
sr.setPayload(retVal);
|
||||
}
|
||||
return sr;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue