Merge "Add ObjectId to the LargeObjectException"

This commit is contained in:
Chris Aniszczyk 2010-08-25 19:54:32 -04:00 committed by Code Review
commit e69dcc703d
1 changed files with 26 additions and 2 deletions

View File

@ -43,12 +43,15 @@
package org.eclipse.jgit.errors;
import org.eclipse.jgit.lib.AnyObjectId;
import org.eclipse.jgit.lib.ObjectId;
/** An object is too big to load into memory as a single byte array. */
public class LargeObjectException extends RuntimeException {
private static final long serialVersionUID = 1L;
private ObjectId objectId;
/** Create a large object exception, where the object isn't known. */
public LargeObjectException() {
// Do nothing.
@ -61,7 +64,28 @@ public LargeObjectException() {
* identity of the object that is too big to be loaded as a byte
* array in this JVM.
*/
public LargeObjectException(ObjectId id) {
super(id.name());
public LargeObjectException(AnyObjectId id) {
setObjectId(id);
}
/** @return identity of the object that is too large; may be null. */
public ObjectId getObjectId() {
return objectId;
}
/**
* Set the identity of the object, if its not already set.
*
* @param id
* the id of the object that is too large to process.
*/
public void setObjectId(AnyObjectId id) {
if (objectId == null)
objectId = id.copy();
}
@Override
public String getMessage() {
return objectId != null ? objectId.name() : getClass().getSimpleName();
}
}