I use jedit 4.5 with java 1.6 on windows 7 64bits.
When I search in directories it happens sometimes that jedit opens a dialog (to ask me to ignore some files, or to use newest files, or for a problem with character encoding...). If I answer rapidly there is no problem, I obtain the results. But if not jedit freezes and I can't close it (except in the task manager).
Please provide a file that may cause a question and a later hang. I have exactly the same software and if an encoding message appears, I get no hang. I wait until the search ends and then press ok.
I was trying to make this error dialog not appear in standard output. During heavy test of hypersearch with encoding errors I discovered abnormalities.
The problem arises when there are 2 or more files with encoding errors. To reproduce have 2 copies of DisplayTokenHandler.java file (from current trunk) in a directory. Fire hypersearch several times. If 2 errors appear in one dialog, that's ok. But if only one appears, jedit is thrown out of balance. Probably because concurrent modification exception. I'll fix it soon.
The hang that I experience is inability to close jedit. Besides that it operates rather normally.
The multithreading issue is fixed now in svn, r21578. Probably tomorrow we'll have a daily build including the fix. I'll apply to fix this also in 4.5.2.
Fazerty, if you'll be able to confirm the fix, thanks in advance.
Our internal remark regarding the fix:
I tried to tighten the synchronization with:
synchronized(errorLock)
{
errorsCopy = new Vector(errors);
errors.clear();
error = false;
}
But that lead to many (at least 2) error dialogs appearing in the same time. So I currently don't see a perfect solution. The current one causes the dialogs to appear sequentially, one dialog for one error, although it is platform dependent. Windows is able to gather several errors in a single window, while Linux 32 (sun java 6) splits it into maximal number of popups.
The best testing is having several errogenous files.
a patch generating overlapping popups, but not stopping hypersearch