@ -45,8 +45,6 @@ package org.eclipse.jgit.dircache;
import java.io.File ;
import java.io.File ;
import java.io.FileOutputStream ;
import java.io.FileOutputStream ;
import java.io.IOException ;
import java.io.IOException ;
import java.nio.ByteBuffer ;
import java.nio.channels.FileChannel ;
import java.text.MessageFormat ;
import java.text.MessageFormat ;
import java.util.ArrayList ;
import java.util.ArrayList ;
import java.util.HashMap ;
import java.util.HashMap ;
@ -59,7 +57,6 @@ import org.eclipse.jgit.errors.CorruptObjectException;
import org.eclipse.jgit.errors.IncorrectObjectTypeException ;
import org.eclipse.jgit.errors.IncorrectObjectTypeException ;
import org.eclipse.jgit.errors.IndexWriteException ;
import org.eclipse.jgit.errors.IndexWriteException ;
import org.eclipse.jgit.errors.MissingObjectException ;
import org.eclipse.jgit.errors.MissingObjectException ;
import org.eclipse.jgit.lib.Constants ;
import org.eclipse.jgit.lib.FileMode ;
import org.eclipse.jgit.lib.FileMode ;
import org.eclipse.jgit.lib.ObjectId ;
import org.eclipse.jgit.lib.ObjectId ;
import org.eclipse.jgit.lib.ObjectLoader ;
import org.eclipse.jgit.lib.ObjectLoader ;
@ -836,21 +833,11 @@ public class DirCacheCheckout {
public static void checkoutEntry ( final Repository repo , File f , DirCacheEntry entry ,
public static void checkoutEntry ( final Repository repo , File f , DirCacheEntry entry ,
boolean config_filemode ) throws IOException {
boolean config_filemode ) throws IOException {
ObjectLoader ol = repo . open ( entry . getObjectId ( ) ) ;
ObjectLoader ol = repo . open ( entry . getObjectId ( ) ) ;
if ( ol = = null )
throw new MissingObjectException ( entry . getObjectId ( ) ,
Constants . TYPE_BLOB ) ;
byte [ ] bytes = ol . getCachedBytes ( ) ;
File parentDir = f . getParentFile ( ) ;
File parentDir = f . getParentFile ( ) ;
File tmpFile = File . createTempFile ( "._" + f . getName ( ) , null , parentDir ) ;
File tmpFile = File . createTempFile ( "._" + f . getName ( ) , null , parentDir ) ;
FileChannel channel = new FileOutputStream ( tmpFile ) . getChannel ( ) ;
FileOutputStream channel = new FileOutputStream ( tmpFile ) ;
ByteBuffer buffer = ByteBuffer . wrap ( bytes ) ;
try {
try {
int j = channel . write ( buffer ) ;
ol . copyTo ( channel ) ;
if ( j ! = bytes . length )
throw new IOException ( MessageFormat . format (
JGitText . get ( ) . couldNotWriteFile , tmpFile ) ) ;
} finally {
} finally {
channel . close ( ) ;
channel . close ( ) ;
}
}