ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/java/org/apache/catalina/tribes/ChannelException.java

Path
ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/java/org/apache/catalina/tribes/ChannelException.java
Status
scanned
Type
file
Name
ChannelException.java
Extension
.java
Programming language
Java
Mime type
text/plain
File type
ASCII text, with CRLF line terminators
Tag

      
    
Rootfs path

      
    
Size
6200 (6.1 KB)
MD5
558d9559431bf7c263ff8dbefb9cc031
SHA1
6e308c9169ea60e8936bddc34a548c443d6d4e9d
SHA256
742cb0b554722c2ec9086e8ed2e9f5a66c74ab35d4af9c58fdd5a1197e10d0a6
SHA512

      
    
SHA1_git
0591e47d985d32b7233182095794c36444019d33
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
ChannelException.java | 6.1 KB |

/* * 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. */ package org.apache.catalina.tribes; import java.io.Serial; import java.util.ArrayList; /** * A channel exception is thrown when an internal error happens somewhere in the channel. * <p> * When a global error happens, the cause can be retrieved using <code>getCause()</code>. * <p> * If an application is sending a message and some of the recipients fail to receive it, the application can retrieve * what recipients failed by using the <code>getFaultyMembers()</code> method. This way, an application will always know * if a message was delivered successfully or not. */ public class ChannelException extends Exception { @Serial private static final long serialVersionUID = 1L; /** * Empty list to avoid reinstantiating lists */ protected static final FaultyMember[] EMPTY_LIST = new FaultyMember[0]; /** * Holds a list of faulty members */ private ArrayList<FaultyMember> faultyMembers = null; /** * Constructor, creates a ChannelException * * @see java.lang.Exception#Exception() */ public ChannelException() { super(); } /** * Constructor, creates a ChannelException with an error message * * @param message The error message * * @see java.lang.Exception#Exception(String) */ public ChannelException(String message) { super(message); } /** * Constructor, creates a ChannelException with an error message and a cause * * @param message The error message * @param cause Throwable * * @see java.lang.Exception#Exception(String,Throwable) */ public ChannelException(String message, Throwable cause) { super(message, cause); } /** * Constructor, creates a ChannelException with a cause * * @param cause Throwable * * @see java.lang.Exception#Exception(Throwable) */ public ChannelException(Throwable cause) { super(cause); } /** * Returns the message for this exception * * @return the error message * * @see java.lang.Exception#getMessage() */ @Override public String getMessage() { StringBuilder buf = new StringBuilder(super.getMessage()); if (faultyMembers == null || faultyMembers.isEmpty()) { buf.append("; No faulty members identified."); } else { buf.append("; Faulty members:"); for (FaultyMember mbr : faultyMembers) { buf.append(mbr.getMember().getName()); buf.append("; "); } } return buf.toString(); } /** * Adds a faulty member, and the reason the member failed. * * @param mbr Member * @param x Exception * * @return <code>true</code> if the member was added */ public boolean addFaultyMember(Member mbr, Exception x) { return addFaultyMember(new FaultyMember(mbr, x)); } /** * Adds a list of faulty members * * @param mbrs FaultyMember[] * * @return the number of members added */ public int addFaultyMember(FaultyMember[] mbrs) { int result = 0; for (int i = 0; mbrs != null && i < mbrs.length; i++) { if (addFaultyMember(mbrs[i])) { result++; } } return result; } /** * Adds a faulty member * * @param mbr FaultyMember * * @return <code>true</code> if the member was added */ public boolean addFaultyMember(FaultyMember mbr) { if (this.faultyMembers == null) { this.faultyMembers = new ArrayList<>(); } if (!faultyMembers.contains(mbr)) { return faultyMembers.add(mbr); } else { return false; } } /** * Returns an array of members that failed and the reason they failed. * * @return FaultyMember[] */ public FaultyMember[] getFaultyMembers() { if (this.faultyMembers == null) { return EMPTY_LIST; } return faultyMembers.toArray(new FaultyMember[0]); } /** * Represent a failure to a specific member when a message was sent to more than one member */ public static class FaultyMember { protected final Exception cause; protected final Member member; public FaultyMember(Member mbr, Exception x) { this.member = mbr; this.cause = x; } public Member getMember() { return member; } public Exception getCause() { return cause; } @Override public String toString() { return "FaultyMember:" + member.toString(); } @Override public int hashCode() { return (member != null) ? member.hashCode() : 0; } @Override public boolean equals(Object o) { if (member == null || (!(o instanceof FaultyMember)) || (((FaultyMember) o).member == null)) { return false; } return member.equals(((FaultyMember) o).member); } } }
Detected license expression
apache-2.0
Detected license expression (SPDX)
Apache-2.0
Percentage of license text
19.41
Copyrights

      
    
Holders

      
    
Authors

      
    
License detections License expression License expression SPDX
apache_2_0-4bde3f57-78aa-4201-96bf-531cba09e7de apache-2.0 Apache-2.0
URL Start line End line
http://www.apache.org/licenses/LICENSE-2.0 9 9