View Javadoc

1   package com.atlassian.plugins.rest.common.multipart;
2   
3   import com.google.common.annotations.VisibleForTesting;
4   import com.google.common.base.Suppliers;
5   import com.google.common.base.Supplier;
6   import javax.ws.rs.WebApplicationException;
7   import javax.ws.rs.core.Response;
8   
9   /**
10   * Exception indicating the file size limit was exceeded
11   *
12   * @since 2.4
13   */
14  public class FileSizeLimitExceededException extends WebApplicationException {
15      private final static int PAYLOAD_TOO_LARGE = 413;
16      private final static int NOT_FOUND = Response.Status.NOT_FOUND.getStatusCode();
17      public final static String LEGACY_MODE_KEY =
18              "atlassian.rest.filesize.exceeded.statuscode.legacy.enabled";
19  
20      @VisibleForTesting
21      @Deprecated
22      final static Supplier<Boolean> legacyMode =
23              Suppliers.memoize(() -> Boolean.getBoolean(LEGACY_MODE_KEY));
24  
25      private static int getStatusCode() {
26          return legacyMode.get() ? NOT_FOUND : PAYLOAD_TOO_LARGE;
27      }
28  
29      public FileSizeLimitExceededException(String message) {
30          super(Response.status(getStatusCode()).entity(message).build());
31      }
32  }