findAll: endless loop when only using hasNext() - matches have to be consumed with next()
This bug report was converted into a question: question #680207: findAll: endless loop when only using hasNext() - matches have to be consumed with next() .
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SikuliX |
Invalid
|
High
|
RaiMan |
Bug Description
Hi RaiMan
I have a simple Java method witch will reproduce a extrem critical problem. I can run the following method between 1-3 mins, but always after a unspecific timespan my complete java app is frozen/hanging (no exception, no further log, no stacktrace). The last log lines before the error occurs are:
[debug] RobotDesktop: captureScreen: [1213,115, 150x400]
[840595 debug] Finder2: makeMat: INT_RGB (150x400)
[840595 debug] Finder2: doFind: start
[840600 debug] Finder2: doFind: in original: %99,9901 (?90) 5 msec
[840602 debug] Finder2: doFind: end 7 msec
[840602 debug] Region: findAll: BuildQueueEntry.png has appeared
It seems that the appearing of my image on the screen causes this critical bug. After this event the java app hanging for ever
// The intention of this method is to count the occurence of my image
private static int getBuildQueueSi
dsoService.
int counter = 0;
Region searchRegion = Region.create(1213, 115, 150, 400);
Iterator<Match> it = null;
while (true) {
try {
it = searchRegion.
while (it.hasNext()) {
}
} catch (FindFailed findFailed) {
}
}
}
OS: Win10
Java: 1.8.0_181
Sikuli: 1.1.4-SNAPSHOT
IDE: Intellij Idea
Window Commandline Execution
I hope you can help me with a Fix or Workaround!
Joe
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in sikuli: | |
milestone: | 1.1.4 → none |
Might be, that you run into a problem with the revised implementation of findAll (I am working on that).
as a workaround you might limit the counter in the hasNext() loop to a max value that makes sense.