1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * https://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19
20 package org.apache.commons.compress.archivers.zip;
21
22 import java.util.zip.ZipException;
23
24 /**
25 * Exception thrown when attempting to write data that requires Zip64 support to an archive and {@link ZipArchiveOutputStream#setUseZip64 UseZip64} has been set
26 * to {@link Zip64Mode#Never Never}.
27 *
28 * @since 1.3
29 */
30 public class Zip64RequiredException extends ZipException {
31
32 private static final long serialVersionUID = 20110809L;
33
34 static final String ARCHIVE_TOO_BIG_MESSAGE = "Archive's size exceeds the limit of 4GByte.";
35
36 static final String CENTRAL_DIRECTORY_DISK_NUMBER_TOO_BIG_MESSAGE = "Number of the disk with the start of Central Directory exceeds the limit of 65535.";
37
38 static final String CENTRAL_DIRECTORY_SIZE_TOO_BIG_MESSAGE = "The size of the entire central directory exceeds the limit of 4GByte.";
39
40 static final String DISK_NUMBER_TOO_BIG_MESSAGE = "Number of the disk of End Of Central Directory exceeds the limit of 65535.";
41
42 static final String TOO_MANY_ENTRIES_MESSAGE = "Archive contains more than 65535 entries.";
43
44 static final String TOO_MANY_ENTRIES_ON_DISK_MESSAGE = "Number of entries on this disk exceeds the limit of 65535.";
45
46 /**
47 * Helper to format "entry too big" messages.
48 */
49 static String getEntryTooBigMessage(final ZipArchiveEntry ze) {
50 return ze.getName() + "'s size exceeds the limit of 4GByte.";
51 }
52
53 /**
54 * Constructs a {@link Zip64RequiredException} with the specified detail message.
55 *
56 * @param message the detail message.
57 */
58 public Zip64RequiredException(final String message) {
59 super(message);
60 }
61 }