Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jgit-dev] DirCacheTree: ArrayIndexOutOfBoundsExceptio

On 13.12.2010 17:30, Shawn Pearce wrote:
> On Mon, Dec 13, 2010 at 12:47 AM, Marc Strapetz
> <marc.strapetz@xxxxxxxxxxx> wrote:
>> According to his bug report, he had to re-clone the repository to get
>> rid of the problem. Shall I ask user for anything else which may be
>> helpful to track down the cause?
> Was the TreeWalk an instance of TreeWalk, or NameConflictTreeWalk?

It's a plain TreeWalk.

> You said the user got rid of the problem by re-cloning the repository.
>  That seems to suggest that the user just needed to throw away his
> current $GIT_DIR/index file and start from scratch, which meant the
> DirCacheIterator above is an iterator over the current $GIT_DIR/index
> file.  Somehow the trees within that file confused the iterator state.

You are right:

final DirCache dirCache = new DirCache(repository.getIndexFile(), fs);;

final TreeWalk treeWalk = new TreeWalk(repository);
treeWalk.addTree(new DirCacheIterator(dirCache));
treeWalk.setFilter(new SkipWorkTreeFilter(0));

Then treeWalk is used in a loop which basically looks like:

while ( {
	// Only treeWalk.getXXX()-access, no back() call

>  Do you know if he ever used C Git against that repository?

Unfortunately, I don't have that information. However, I would expect
that he has at least used C Git before problems occurred in SmartGit,
because SmartGit performs all non-read-only operations with C Git. Clone
is also performed using C Git.

Is there some helpful information I should log to the bug-report-file in
case of this ArrayIndexOutOfBoundsException?

Best regards,
Marc Strapetz
syntevo GmbH

Back to the top