3333import java .util .List ;
3434import java .util .Map ;
3535import java .util .Set ;
36+ import java .util .function .Supplier ;
3637import java .util .logging .Level ;
3738import java .util .logging .Logger ;
3839import org .eclipse .jgit .diff .DiffEntry ;
4748import org .eclipse .jgit .lib .ObjectReader ;
4849import org .eclipse .jgit .lib .Repository ;
4950import org .eclipse .jgit .revwalk .RevWalk ;
50- import org .eclipse .jgit .treewalk .*;
51+ import org .eclipse .jgit .treewalk .EmptyTreeIterator ;
52+ import org .eclipse .jgit .treewalk .FileTreeIterator ;
53+ import org .eclipse .jgit .treewalk .TreeWalk ;
5154import org .eclipse .jgit .treewalk .filter .AndTreeFilter ;
5255import org .eclipse .jgit .treewalk .filter .NotTreeFilter ;
5356import org .eclipse .jgit .treewalk .filter .OrTreeFilter ;
@@ -189,7 +192,7 @@ protected void run () throws GitException {
189192 Collection <TreeFilter > subTreeFilters = getSubtreeFilters (pathFilters , path );
190193 if (!subTreeFilters .isEmpty ()) {
191194 // caller requested a status for a file under an ignored folder
192- treeWalk .setFilter (AndTreeFilter .create (treeWalk .getFilter (), OrTreeFilter .create (NotTreeFilter .create (PathFilter .create (path )),
195+ treeWalk .setFilter (AndTreeFilter .create (treeWalk .getFilter (), OrTreeFilter .create (NotTreeFilter .create (PathFilter .create (path )),
193196 subTreeFilters .size () > 1 ? OrTreeFilter .create (subTreeFilters ) : subTreeFilters .iterator ().next ())));
194197 treeWalk .enterSubtree ();
195198 }
@@ -217,11 +220,11 @@ protected void run () throws GitException {
217220 } else {
218221 statusIndexWC = GitStatus .Status .STATUS_ADDED ;
219222 }
220- } else if (!isExistingSymlink (mIndex , mWorking ) && (differ (mIndex , mWorking , checkExecutable )
223+ } else if (!isExistingSymlink (mIndex , mWorking ) && (differ (mIndex , mWorking , checkExecutable )
221224 || (mWorking != 0 && mWorking != FileMode .TREE .getBits () && fti .isModified (indexEntry , true , od )))
222225 || GitStatus .Status .STATUS_MODIFIED == getGitlinkStatus (
223- mWorking , treeWalk .getObjectId (T_WORKSPACE ),
224- mIndex , treeWalk .getObjectId (T_INDEX ))) {
226+ mWorking , () -> treeWalk .getObjectId (T_WORKSPACE ),
227+ mIndex , () -> treeWalk .getObjectId (T_INDEX ))) {
225228 statusIndexWC = GitStatus .Status .STATUS_MODIFIED ;
226229 } else {
227230 statusIndexWC = GitStatus .Status .STATUS_NORMAL ;
@@ -237,8 +240,8 @@ protected void run () throws GitException {
237240 && (statusIndexWC != GitStatus .Status .STATUS_NORMAL || statusHeadIndex != GitStatus .Status .STATUS_NORMAL )
238241 && !treeWalk .getObjectId (T_COMMIT ).equals (fti .getEntryObjectId ())))
239242 || GitStatus .Status .STATUS_MODIFIED == getGitlinkStatus (
240- mHead , treeWalk .getObjectId (T_WORKSPACE ),
241- mHead , treeWalk .getObjectId (T_COMMIT ))) {
243+ mHead , () -> treeWalk .getObjectId (T_WORKSPACE ),
244+ mHead , () -> treeWalk .getObjectId (T_COMMIT ))) {
242245 statusHeadWC = GitStatus .Status .STATUS_MODIFIED ;
243246 } else {
244247 statusHeadWC = GitStatus .Status .STATUS_NORMAL ;
@@ -444,13 +447,13 @@ private void handleSymlink (List<GitStatus> symLinks, String workTreePath) {
444447 }
445448 }
446449
447- private GitStatus .Status getGitlinkStatus (int mode1 , ObjectId id1 , int mode2 , ObjectId id2 ) {
450+ private GitStatus .Status getGitlinkStatus (int mode1 , Supplier < ObjectId > id1 , int mode2 , Supplier < ObjectId > id2 ) {
448451 if (mode1 == FileMode .TYPE_GITLINK || mode2 == FileMode .TYPE_GITLINK ) {
449452 if (mode1 == FileMode .TYPE_MISSING ) {
450453 return GitStatus .Status .STATUS_REMOVED ;
451454 } else if (mode2 == FileMode .TYPE_MISSING ) {
452455 return GitStatus .Status .STATUS_ADDED ;
453- } else if (!id1 .equals (id2 )) {
456+ } else if (!id1 .get (). equals (id2 . get () )) {
454457 return GitStatus .Status .STATUS_MODIFIED ;
455458 }
456459 }
0 commit comments