View Javadoc
1   /*
2    * Copyright (C) 2017, Google Inc. and others
3    *
4    * This program and the accompanying materials are made available under the
5    * terms of the Eclipse Distribution License v. 1.0 which is available at
6    * https://www.eclipse.org/org/documents/edl-v10.php.
7    *
8    * SPDX-License-Identifier: BSD-3-Clause
9    */
10  
11  package org.eclipse.jgit.errors;
12  
13  import org.eclipse.jgit.annotations.Nullable;
14  
15  /**
16   * Exception thrown when encounters a corrupt pack index file.
17   *
18   * @since 4.9
19   */
20  public class CorruptPackIndexException extends Exception {
21  	private static final long serialVersionUID = 1L;
22  
23  	/** The error type of a corrupt index file. */
24  	public enum ErrorType {
25  		/** Offset does not match index in pack file. */
26  		MISMATCH_OFFSET,
27  		/** CRC does not match CRC of the object data in pack file. */
28  		MISMATCH_CRC,
29  		/** CRC is not present in index file. */
30  		MISSING_CRC,
31  		/** Object in pack is not present in index file. */
32  		MISSING_OBJ,
33  		/** Object in index file is not present in pack file. */
34  		UNKNOWN_OBJ,
35  	}
36  
37  	private ErrorType errorType;
38  
39  	/**
40  	 * Report a specific error condition discovered in an index file.
41  	 *
42  	 * @param message
43  	 *            the error message.
44  	 * @param errorType
45  	 *            the error type of corruption.
46  	 */
47  	public CorruptPackIndexException(String message, ErrorType errorType) {
48  		super(message);
49  		this.errorType = errorType;
50  	}
51  
52  	/**
53  	 * Specific the reason of the corrupt index file.
54  	 *
55  	 * @return error condition or null.
56  	 */
57  	@Nullable
58  	public ErrorType getErrorType() {
59  		return errorType;
60  	}
61  }