@SuppressWarnings("serial")\r
public class SubscriptionServlet extends ProxyServlet {\r
\r
- public static final String SUBCNTRL_CONTENT_TYPE = "application/vnd.dmaap-dr.subscription-control";\r
+ private static final String SUBCNTRL_CONTENT_TYPE = "application/vnd.dmaap-dr.subscription-control";\r
//Adding EELF Logger Rally:US664892\r
- private static EELFLogger eelflogger = EELFManager.getInstance()\r
+ private static EELFLogger eelfLogger = EELFManager.getInstance()\r
.getLogger(SubscriptionServlet.class);\r
\r
+\r
+\r
+\r
+\r
/**\r
* DELETE on the <subscriptionUrl> -- delete a subscription. See the <i>Deleting a Subscription</i> section in\r
* the <b>Provisioning API</b> document for details on how this method should be invoked.\r
@Override\r
public void doDelete(HttpServletRequest req, HttpServletResponse resp) {\r
setIpFqdnRequestIDandInvocationIDForEelf("doDelete", req);\r
- eelflogger.info(EelfMsgs.ENTRY);\r
+ eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
EventLogRecord elr = new EventLogRecord(req);\r
String message = isAuthorizedForProvisioning(req);\r
if (message != null) {\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
}\r
String bhdr = req.getHeader(BEHALF_HEADER);\r
if (bhdr == null) {\r
- message = "Missing " + BEHALF_HEADER + " header.";\r
+ message = MISSING_ON_BEHALF;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
int subid = getIdFromPath(req);\r
if (subid < 0) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
Subscription sub = Subscription.getSubscriptionById(subid);\r
if (sub == null) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_NOT_FOUND);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);\r
return;\r
}\r
- // Check with the Authorizer\r
- AuthorizationResponse aresp = authz.decide(req);\r
- if (!aresp.isAuthorized()) {\r
- message = "Policy Engine disallows access.";\r
- elr.setMessage(message);\r
- elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
- eventlogger.info(elr);\r
- sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
- return;\r
+ /*\r
+ * START - AAF changes\r
+ * TDP EPIC US# 307413\r
+ * CADI code - check on permissions based on Legacy/AAF users to allow to delete/remove subscription\r
+ */\r
+ String aafInstance = sub.getAafInstance();\r
+ if (aafInstance == null || "".equals(aafInstance) || "legacy".equalsIgnoreCase(aafInstance)) {\r
+ AuthorizationResponse aresp = authz.decide(req);\r
+ if (!aresp.isAuthorized()) {\r
+ message = POLICY_ENGINE;\r
+ elr.setMessage(message);\r
+ elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
+ eventlogger.error(elr.toString());\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
+ return;\r
+ }\r
+ } else {\r
+ String permission = getSubscriberPermission(aafInstance, BaseServlet.DELETE_PERMISSION);\r
+ eventlogger.info("SubscriptionServlet.doDelete().. Permission String - " + permission);\r
+ if (!req.isUserInRole(permission)) {\r
+ message = "AAF disallows access to permission - " + permission;\r
+ elr.setMessage(message);\r
+ elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
+ eventlogger.error(elr.toString());\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
+ return;\r
+ }\r
}\r
-\r
+ /*\r
+ * END - AAF changes\r
+ */\r
// Delete Subscription\r
if (doDelete(sub)) {\r
activeSubs--;\r
// send response\r
elr.setResult(HttpServletResponse.SC_NO_CONTENT);\r
- eventlogger.info(elr);\r
+ eventlogger.info(elr.toString());\r
resp.setStatus(HttpServletResponse.SC_NO_CONTENT);\r
provisioningDataChanged();\r
} else {\r
// Something went wrong with the DELETE\r
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, intlogger);\r
}\r
} finally {\r
- eelflogger.info(EelfMsgs.EXIT);\r
+ eelfLogger.info(EelfMsgs.EXIT);\r
}\r
}\r
\r
@Override\r
public void doGet(HttpServletRequest req, HttpServletResponse resp) {\r
setIpFqdnRequestIDandInvocationIDForEelf("doGet", req);\r
- eelflogger.info(EelfMsgs.ENTRY);\r
+ eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
EventLogRecord elr = new EventLogRecord(req);\r
String message = isAuthorizedForProvisioning(req);\r
if (message != null) {\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
}\r
String bhdr = req.getHeader(BEHALF_HEADER);\r
if (bhdr == null) {\r
- message = "Missing " + BEHALF_HEADER + " header.";\r
+ message = MISSING_ON_BEHALF;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
int subid = getIdFromPath(req);\r
if (subid < 0) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
Subscription sub = Subscription.getSubscriptionById(subid);\r
if (sub == null) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_NOT_FOUND);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);\r
return;\r
}\r
// Check with the Authorizer\r
AuthorizationResponse aresp = authz.decide(req);\r
if (!aresp.isAuthorized()) {\r
- message = "Policy Engine disallows access.";\r
+ message = POLICY_ENGINE;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
\r
// send response\r
elr.setResult(HttpServletResponse.SC_OK);\r
- eventlogger.info(elr);\r
+ eventlogger.info(elr.toString());\r
resp.setStatus(HttpServletResponse.SC_OK);\r
resp.setContentType(SUBFULL_CONTENT_TYPE);\r
try {\r
resp.getOutputStream().print(sub.asJSONObject(true).toString());\r
} catch (IOException ioe) {\r
- eventlogger.error("IOException: " + ioe.getMessage());\r
+ eventlogger.error("PROV0191 SubscriptionServlet.doGet: " + ioe.getMessage(), ioe);\r
}\r
} finally {\r
- eelflogger.info(EelfMsgs.EXIT);\r
+ eelfLogger.info(EelfMsgs.EXIT);\r
}\r
}\r
\r
@Override\r
public void doPut(HttpServletRequest req, HttpServletResponse resp) {\r
setIpFqdnRequestIDandInvocationIDForEelf("doPut", req);\r
- eelflogger.info(EelfMsgs.ENTRY);\r
+ eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_SUBID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");\r
EventLogRecord elr = new EventLogRecord(req);\r
String message = isAuthorizedForProvisioning(req);\r
if (message != null) {\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
}\r
String bhdr = req.getHeader(BEHALF_HEADER);\r
if (bhdr == null) {\r
- message = "Missing " + BEHALF_HEADER + " header.";\r
+ message = MISSING_ON_BEHALF;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
int subid = getIdFromPath(req);\r
if (subid < 0) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
Subscription oldsub = Subscription.getSubscriptionById(subid);\r
if (oldsub == null) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_NOT_FOUND);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);\r
return;\r
}\r
- // Check with the Authorizer\r
- AuthorizationResponse aresp = authz.decide(req);\r
- if (!aresp.isAuthorized()) {\r
- message = "Policy Engine disallows access.";\r
- elr.setMessage(message);\r
- elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
- eventlogger.info(elr);\r
- sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
- return;\r
- }\r
// check content type is SUB_CONTENT_TYPE, version 1.0\r
ContentHeader ch = getContentHeader(req);\r
String ver = ch.getAttribute("version");\r
- if (!ch.getType().equals(SUB_BASECONTENT_TYPE) || !(ver.equals("1.0") || ver.equals("2.0"))) {\r
+ if (!ch.getType().equals(SUB_BASECONTENT_TYPE) || !("1.0".equals(ver) || "2.0".equals(ver))) {\r
message = "Incorrect content-type";\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);\r
return;\r
}\r
JSONObject jo = getJSONfromInput(req);\r
if (jo == null) {\r
- message = "Badly formed JSON";\r
+ message = BAD_JSON;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
message = e.getMessage();\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString(), e);\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
+\r
+ /*\r
+ * START - AAF changes\r
+ * TDP EPIC US# 307413\r
+ * CADI code - check on permissions based on Legacy/AAF users to allow to delete/remove subscription\r
+ */\r
+ String aafInstance = sub.getAafInstance();\r
+ if (aafInstance == null || "".equals(aafInstance) || "legacy".equalsIgnoreCase(aafInstance)) {\r
+ AuthorizationResponse aresp = authz.decide(req);\r
+ if (!aresp.isAuthorized()) {\r
+ message = POLICY_ENGINE;\r
+ elr.setMessage(message);\r
+ elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
+ eventlogger.error(elr.toString());\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
+ return;\r
+ }\r
+ } else {\r
+ String permission = getSubscriberPermission(aafInstance, BaseServlet.EDIT_PERMISSION);\r
+ eventlogger.info("SubscriptionServlet.doDelete().. Permission String - " + permission);\r
+ if (!req.isUserInRole(permission)) {\r
+ message = "AAF disallows access to permission - " + permission;\r
+ elr.setMessage(message);\r
+ elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
+ eventlogger.error(elr.toString());\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
+ return;\r
+ }\r
+ }\r
+ /*\r
+ * END - AAF changes\r
+ */\r
sub.setSubid(oldsub.getSubid());\r
sub.setFeedid(oldsub.getFeedid());\r
sub.setSubscriber(bhdr); // set from X-DMAAP-DR-ON-BEHALF-OF header\r
message = "This subscriber must be modified by the same subscriber that created it.";\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
if (doUpdate(sub)) {\r
// send response\r
elr.setResult(HttpServletResponse.SC_OK);\r
- eventlogger.info(elr);\r
+ eventlogger.info(elr.toString());\r
resp.setStatus(HttpServletResponse.SC_OK);\r
resp.setContentType(SUBFULL_CONTENT_TYPE);\r
try {\r
resp.getOutputStream().print(sub.asLimitedJSONObject().toString());\r
} catch (IOException ioe) {\r
- eventlogger.error("IOException: " + ioe.getMessage());\r
+ eventlogger.error("PROV0192 SubscriptionServlet.doPut: " + ioe.getMessage(), ioe);\r
}\r
\r
/**Change Owner ship of Subscriber Adding for group feature:Rally US708115*/\r
sub.changeOwnerShip();\r
}\r
} catch (JSONException je) {\r
- eventlogger.error("JSONException: " + je.getMessage());\r
+ eventlogger.error("PROV0193 SubscriptionServlet.doPut: " + je.getMessage(), je);\r
}\r
}\r
/***End of change ownership*/\r
} else {\r
// Something went wrong with the UPDATE\r
elr.setResult(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, DB_PROBLEM_MSG, intlogger);\r
}\r
} finally {\r
- eelflogger.info(EelfMsgs.EXIT);\r
+ eelfLogger.info(EelfMsgs.EXIT);\r
}\r
}\r
\r
*/\r
@Override\r
public void doPost(HttpServletRequest req, HttpServletResponse resp) {\r
-// OLD pre-3.0 code\r
-// String message = "POST not allowed for the subscriptionURL.";\r
-// EventLogRecord elr = new EventLogRecord(req);\r
-// elr.setMessage(message);\r
-// elr.setResult(HttpServletResponse.SC_METHOD_NOT_ALLOWED);\r
-// eventlogger.info(elr);\r
-// resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, message);\r
\r
setIpFqdnRequestIDandInvocationIDForEelf("doPost", req);\r
- eelflogger.info(EelfMsgs.ENTRY);\r
+ eelfLogger.info(EelfMsgs.ENTRY);\r
try {\r
- eelflogger.info(EelfMsgs.MESSAGE_WITH_BEHALF, req.getHeader(BEHALF_HEADER));\r
+ eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF, req.getHeader(BEHALF_HEADER));\r
EventLogRecord elr = new EventLogRecord(req);\r
String message = isAuthorizedForProvisioning(req);\r
if (message != null) {\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
}\r
String bhdr = req.getHeader(BEHALF_HEADER);\r
if (bhdr == null) {\r
- message = "Missing " + BEHALF_HEADER + " header.";\r
+ message = MISSING_ON_BEHALF;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
final int subid = getIdFromPath(req);\r
if (subid < 0 || Subscription.getSubscriptionById(subid) == null) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
// check content type is SUBCNTRL_CONTENT_TYPE, version 1.0\r
ContentHeader ch = getContentHeader(req);\r
String ver = ch.getAttribute("version");\r
- if (!ch.getType().equals(SUBCNTRL_CONTENT_TYPE) || !ver.equals("1.0")) {\r
+ if (!ch.getType().equals(SUBCNTRL_CONTENT_TYPE) || !"1.0".equals(ver)) {\r
message = "Incorrect content-type";\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, message, eventlogger);\r
return;\r
}\r
// Check with the Authorizer\r
AuthorizationResponse aresp = authz.decide(req);\r
if (!aresp.isAuthorized()) {\r
- message = "Policy Engine disallows access.";\r
+ message = POLICY_ENGINE;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, message, eventlogger);\r
return;\r
}\r
JSONObject jo = getJSONfromInput(req);\r
if (jo == null) {\r
- message = "Badly formed JSON";\r
+ message = BAD_JSON;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString());\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
return;\r
}\r
}\r
// send response\r
elr.setResult(HttpServletResponse.SC_ACCEPTED);\r
- eventlogger.info(elr);\r
+ eventlogger.info(elr.toString());\r
resp.setStatus(HttpServletResponse.SC_ACCEPTED);\r
} catch (JSONException e) {\r
- message = "Badly formed JSON";\r
+ message = BAD_JSON;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
- eventlogger.info(elr);\r
+ eventlogger.error(elr.toString(), e);\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);\r
}\r
} finally {\r
- eelflogger.info(EelfMsgs.EXIT);\r
+ eelfLogger.info(EelfMsgs.EXIT);\r
}\r
}\r
\r
public class SubscriberNotifyThread extends Thread {\r
\r
public static final String URL_TEMPLATE = "http://%s/internal/resetSubscription/%d";\r
- private List<String> urls = new Vector<String>();\r
+ private List<String> urls = new Vector<>();\r
\r
public SubscriberNotifyThread() {\r
setName("SubscriberNotifyThread");\r
}\r
}\r
\r
+ @Override\r
public void run() {\r
+\r
try {\r
while (!urls.isEmpty()) {\r
String u = urls.remove(0);\r
conn.getContentLength(); // Force the GET through\r
conn.disconnect();\r
} catch (IOException e) {\r
- intlogger.info("IOException Error accessing URL: " + u + ": " + e.getMessage());\r
+ intlogger.info("PROV0194 Error accessing URL: " + u + ": " + e.getMessage(), e);\r
}\r
}\r
} catch (Exception e) {\r
- intlogger.warn("Caught exception in SubscriberNotifyThread: " + e);\r
+ intlogger.warn("PROV0195 Caught exception in SubscriberNotifyThread: " + e.getMessage(), e);\r
}\r
}\r
}\r