package org.eclipse.aether.transfer;

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *  http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

import org.eclipse.aether.RepositoryException;

Thrown in case of a checksum failure during an artifact/metadata download.
/** * Thrown in case of a checksum failure during an artifact/metadata download. */
public class ChecksumFailureException extends RepositoryException { private final String expected; private final String actual; private final boolean retryWorthy;
Creates a new exception with the specified expected and actual checksum. The resulting exception is retry-worthy.
Params:
  • expected – The expected checksum as declared by the hosting repository, may be null.
  • actual – The actual checksum as computed from the local bytes, may be null.
/** * Creates a new exception with the specified expected and actual checksum. The resulting exception is * {@link #isRetryWorthy() retry-worthy}. * * @param expected The expected checksum as declared by the hosting repository, may be {@code null}. * @param actual The actual checksum as computed from the local bytes, may be {@code null}. */
public ChecksumFailureException( String expected, String actual ) { super( "Checksum validation failed, expected " + expected + " but is " + actual ); this.expected = expected; this.actual = actual; retryWorthy = true; }
Creates a new exception with the specified detail message. The resulting exception is not retry-worthy.
Params:
  • message – The detail message, may be null.
/** * Creates a new exception with the specified detail message. The resulting exception is not * {@link #isRetryWorthy() retry-worthy}. * * @param message The detail message, may be {@code null}. */
public ChecksumFailureException( String message ) { this( false, message, null ); }
Creates a new exception with the specified cause. The resulting exception is not retry-worthy.
Params:
  • cause – The exception that caused this one, may be null.
/** * Creates a new exception with the specified cause. The resulting exception is not {@link #isRetryWorthy() * retry-worthy}. * * @param cause The exception that caused this one, may be {@code null}. */
public ChecksumFailureException( Throwable cause ) { this( "Checksum validation failed" + getMessage( ": ", cause ), cause ); }
Creates a new exception with the specified detail message and cause. The resulting exception is not retry-worthy.
Params:
  • message – The detail message, may be null.
  • cause – The exception that caused this one, may be null.
/** * Creates a new exception with the specified detail message and cause. The resulting exception is not * {@link #isRetryWorthy() retry-worthy}. * * @param message The detail message, may be {@code null}. * @param cause The exception that caused this one, may be {@code null}. */
public ChecksumFailureException( String message, Throwable cause ) { this( false, message, cause ); }
Creates a new exception with the specified retry flag, detail message and cause.
Params:
  • retryWorthy – true if the exception is retry-worthy, false otherwise.
  • message – The detail message, may be null.
  • cause – The exception that caused this one, may be null.
/** * Creates a new exception with the specified retry flag, detail message and cause. * * @param retryWorthy {@code true} if the exception is retry-worthy, {@code false} otherwise. * @param message The detail message, may be {@code null}. * @param cause The exception that caused this one, may be {@code null}. */
public ChecksumFailureException( boolean retryWorthy, String message, Throwable cause ) { super( message, cause ); expected = ""; actual = ""; this.retryWorthy = retryWorthy; }
Gets the expected checksum for the downloaded artifact/metadata.
Returns:The expected checksum as declared by the hosting repository or null if unknown.
/** * Gets the expected checksum for the downloaded artifact/metadata. * * @return The expected checksum as declared by the hosting repository or {@code null} if unknown. */
public String getExpected() { return expected; }
Gets the actual checksum for the downloaded artifact/metadata.
Returns:The actual checksum as computed from the local bytes or null if unknown.
/** * Gets the actual checksum for the downloaded artifact/metadata. * * @return The actual checksum as computed from the local bytes or {@code null} if unknown. */
public String getActual() { return actual; }
Indicates whether the corresponding download is retry-worthy.
Returns:true if retrying the download might solve the checksum failure, false if the checksum failure is non-recoverable.
/** * Indicates whether the corresponding download is retry-worthy. * * @return {@code true} if retrying the download might solve the checksum failure, {@code false} if the checksum * failure is non-recoverable. */
public boolean isRetryWorthy() { return retryWorthy; } }