View Javadoc
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  }