notification-portlet-api/src/main/java/org/jasig/portlet/notice/NotificationResponse.java
public NotificationResponse cloneIfNotCloned() {
        try {
            return isCloned() ? this : (NotificationResponse) this.clone();
        } catch (CloneNotSupportedException e) {
            log.error("Failed to clone() the sourceResponse", e);
        }
        return this;
    }
public NotificationResponse cloneIfNotCloned() {
        try {
            return isCloned() ? this : (NotificationResponse) this.clone();
        } catch (CloneNotSupportedException e) {
            log.error("Failed to clone() the sourceResponse", e);
        }
        return this;
    }
public NotificationResponse cloneIfNotCloned ( ) { try { return isCloned ( ) ? this : ( NotificationResponse ) this . clone ( ) ; } catch ( CloneNotSupportedException e ) { log . error ( "Failed to clone() the sourceResponse" , e ) ; } return this ; }
Best guess as to the reason this method exists: beans that produce fresh
{@link NotificationResponse} objects (without cloning them) may safely cache them.  They need
not fear that another bean will transform their copy.  Beans that do clone them, however, can
safely operate on a clone.
Best guess as to the reason this method exists : beans that produce fresh {