Class ExceptionUtil


  • public final class ExceptionUtil
    extends java.lang.Object
    Utilities for exception handling.
    Since:
    2097
    • Field Detail

      • OSM_API_BLOCK_MESSAGES

        private static final java.util.List<java.lang.String> OSM_API_BLOCK_MESSAGES
        Error messages sent by the OSM API when a user has been blocked/suspended.
    • Method Detail

      • parsePreconditionFailed

        public static Pair<OsmPrimitive,​java.util.Collection<OsmPrimitive>> parsePreconditionFailed​(java.lang.String msg)
        Parses a precondition failure response from the server and attempts to get more information about it
        Parameters:
        msg - The message from the server
        Returns:
        The OSM primitive that caused the problem and a collection of primitives that e.g. refer to it
      • explainPreconditionFailed

        public static java.lang.String explainPreconditionFailed​(OsmApiException e)
        Explains an upload error due to a violated precondition, i.e. a HTTP return code 412
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainFailedBasicAuthentication

        public static java.lang.String explainFailedBasicAuthentication​(OsmApiException e)
        Explains a OsmApiException which was thrown because the authentication at the OSM server failed, with basic authentication.
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainFailedOAuthAuthentication

        public static java.lang.String explainFailedOAuthAuthentication​(OsmApiException e)
        Explains a OsmApiException which was thrown because the authentication at the OSM server failed, with OAuth authentication.
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainFailedAuthorisation

        public static java.lang.String explainFailedAuthorisation​(OsmApiException e)
        Explains a OsmApiException which was thrown because accessing a protected resource was forbidden (HTTP 403), without OAuth authentication.
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainFailedOAuthAuthorisation

        public static java.lang.String explainFailedOAuthAuthorisation​(OsmApiException e)
        Explains a OsmApiException which was thrown because accessing a protected resource was forbidden (HTTP 403), with OAuth authentication.
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainClientTimeout

        public static java.lang.String explainClientTimeout​(OsmApiException e)
        Explains an OSM API exception because of a client timeout (HTTP 408).
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainGenericOsmApiException

        public static java.lang.String explainGenericOsmApiException​(OsmApiException e)
        Replies a generic error message for an OSM API exception
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainConflict

        public static java.lang.String explainConflict​(OsmApiException e)
        Explains an error due to a 409 conflict
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainChangesetClosedException

        public static java.lang.String explainChangesetClosedException​(ChangesetClosedException e)
        Explains an exception thrown during upload because the changeset which data is uploaded to is already closed.
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • formatClosedOn

        private static java.lang.String formatClosedOn​(java.time.Instant closedOn)
      • explainGeneric

        public static java.lang.String explainGeneric​(java.lang.Exception e)
        Explains an exception with a generic message dialog
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainSecurityException

        public static java.lang.String explainSecurityException​(OsmTransferException e)
        Explains a SecurityException which has caused an OsmTransferException. This is most likely happening when user tries to access the OSM API from within an applet which wasn't loaded from the API server.
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainNestedSocketException

        public static java.lang.String explainNestedSocketException​(OsmTransferException e)
        Explains a SocketException which has caused an OsmTransferException. This is most likely because there's not connection to the Internet or because the remote server is not reachable.
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainNestedIOException

        public static java.lang.String explainNestedIOException​(OsmTransferException e)
        Explains a IOException which has caused an OsmTransferException. This is most likely happening when the communication with the remote server is interrupted for any reason.
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainBadRequest

        public static java.lang.String explainBadRequest​(OsmApiException e)
        Explains a OsmApiException which was thrown because of a bad request.
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainBandwidthLimitExceeded

        public static java.lang.String explainBandwidthLimitExceeded​(OsmApiException e)
        Explains a OsmApiException which was thrown because of bandwidth limit exceeded (HTTP error 509)
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainNotFound

        public static java.lang.String explainNotFound​(OsmApiException e)
        Explains a OsmApiException which was thrown because a resource wasn't found.
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainNestedUnknownHostException

        public static java.lang.String explainNestedUnknownHostException​(OsmTransferException e)
        Explains a UnknownHostException which has caused an OsmTransferException. This is most likely happening when there is an error in the API URL or when local DNS services are not working.
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • getNestedException

        public static <T> T getNestedException​(java.lang.Exception e,
                                               java.lang.Class<T> nestedClass)
        Replies the first nested exception of type nestedClass (including the root exception e) or null, if no such exception is found.
        Type Parameters:
        T - nested exception type
        Parameters:
        e - the root exception
        nestedClass - the type of the nested exception
        Returns:
        the first nested exception of type nestedClass (including the root exception e) or null, if no such exception is found.
        Since:
        8470
      • explainGoneForUnknownPrimitive

        public static java.lang.String explainGoneForUnknownPrimitive​(OsmApiException e)
        explains the case of an error due to a delete request on an already deleted OsmPrimitive, i.e. a HTTP response code 410, where we don't know which OsmPrimitive is causing the error.
        Parameters:
        e - the exception
        Returns:
        The HTML formatted error message to display
      • explainException

        public static java.lang.String explainException​(java.lang.Exception e)
        Explains an Exception to the user.
        Parameters:
        e - the Exception
        Returns:
        The HTML formatted error message to display
      • isUserBlocked

        public static boolean isUserBlocked​(OsmApiException e)
        Determines if the OSM API exception has been thrown because user has been blocked or suspended.
        Parameters:
        e - OSM API exception
        Returns:
        true if the OSM API exception has been thrown because user has been blocked or suspended
        Since:
        15084