aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/ErrorResponses.java
blob: 56844887caf01b65dae31fdeb969c00bc9b546ca (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.restapi;

import com.yahoo.container.jdisc.HttpRequest;
import com.yahoo.restapi.ErrorResponse;

import java.util.UUID;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Helper class for creating error responses.
 *
 * @author mpolden
 */
public class ErrorResponses {

    private ErrorResponses() {}

    /**
     * Returns a response for a failing request containing an unique request ID. Details of the error are logged through
     * given logger.
     */
    public static ErrorResponse logThrowing(HttpRequest request, Logger logger, Throwable t) {
        String requestId = UUID.randomUUID().toString();
        logger.log(Level.SEVERE, "Unexpected error handling '" + request.getUri() + "' (request ID: " +
                                  requestId + ")", t);
        return ErrorResponse.internalServerError("Unexpected error occurred (request ID: " + requestId + ")");
    }

}