001package org.cache2k.impl; 002 003/* 004 * #%L 005 * cache2k core package 006 * %% 007 * Copyright (C) 2000 - 2015 headissue GmbH, Munich 008 * %% 009 * This program is free software: you can redistribute it and/or modify 010 * it under the terms of the GNU General Public License as 011 * published by the Free Software Foundation, either version 3 of the 012 * License, or (at your option) any later version. 013 * 014 * This program is distributed in the hope that it will be useful, 015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 017 * GNU General Public License for more details. 018 * 019 * You should have received a copy of the GNU General Public 020 * License along with this program. If not, see 021 * <http://www.gnu.org/licenses/gpl-3.0.html>. 022 * #L% 023 */ 024 025/** 026 * We use instances of the exception wrapper for the value field in the entry. 027 * This way we can store exceptions without needing additional memory, if no exceptions 028 * happen. 029 * 030 * @author Jens Wilke; created: 2013-07-12 031 */ 032public class ExceptionWrapper { 033 034 Throwable exception; 035 036 /** 037 * Store an additional exception message with the expiry time. 038 * Gets lazily set as soon as an exception is thrown. 039 */ 040 transient String additionalExceptionMessage = null; 041 042 public ExceptionWrapper(Throwable ex) { 043 exception = ex; 044 } 045 046 public Throwable getException() { 047 return exception; 048 } 049 050 public String toString() { 051 return exception.toString(); 052 } 053 054}