Some of my plugins create dozens of images. After needing to see a
particular window and can not find it, I discovered they existed but had 0
width and 0 height. After several fixes were made in ImageJ's displaying
ImageWindow(s) they no longer showed as w0h0. Some time they show up with
incorrect imagecanvas width/height, but I figured out how to fix that.

I have had genericdialog(s) not display during development, although
infrequent and not reproducible; probably coding blunders.

There is a signal that you can send to the JVM that will give a backtrace
of each thread. This may give information as to if the thread with the
genericdialog got hung some how???

Fred

On Fri, November 15, 2024 9:08 pm, Kenneth Sloan wrote:
> yes - displaying the dialog box with 0 width and 0 height would explain
> the reported symptoms.
>
> Any idea what causes it?
>
> --
> Kenneth Sloan
> [email protected]
> Vision is the art of seeing what is invisible to others.
>
>
>
>
>
>> On Nov 15, 2024, at 17:13, Fred Damen <[email protected]> wrote:
>>
>> Greetings Kenneth,
>>
>> I have experienced the same, but different, angst(s) in the past. I had
>> ImageWindow(s) that were displayed with zero width and zero height, and,
>> I
>> created TextWindow(s) but never show(ed) them - but they stayed around
>> after the plugin exited; both hard to see / deal with using ImageJ GUI
>> menu commands. I wrote my FindWindow plugin to rectify these, and other,
>> issues. Its also helpful to work around the problems with the Window
>> menu.
>>
>> See attached (remove .txt extension as we can not attach .java files)
>>
>> Enjoy,
>>
>> Fred
>>
>> ps: On Linux you can see all the windows that exist. My naive
>> recollection
>> Windows / MacOS only shows the Application instances that exist, but you
>> may find a way to find all windows? I would assume that there is some
>> way
>> to ask the JVM what windows it thinks exists?
>>
>>
>> On Fri, November 15, 2024 12:00 am, Kenneth R Sloan wrote:
>>> yes - it works on my machine, too.  but, it fails (silently waiting,
>>> with
>>> no dialog displayed) on three other machines.  it had been workibg on
>>> those
>>> machines, too, for months.
>>>
>>> i was hoping this had happened to someone else.  i fully expect it to
>>> work
>>>
>>> i “fixed” it by commenting out this code, removing the user
>>> option to
>>> change these patameters, and all is well - even thought there is
>>> another
>>> NonBlockingGenericDialog further along in the cide.  I can’t
>>> remove that
>>> one!
>>>
>>> Behavior that cant be replicated is a bitch to debug!  I was hoping
>>> that
>>> someone else had run into this and knew what it was.
>>>
>>> The only thing common to the failing machines seems to be the local
>>> network.  And it is 1000 miles from me.
>>>
>>> even on the failing machines, it was working and then failed only 5
>>> minutes
>>> later, with no updates in between, as far as we know.   I’m not
>>> sure if
>>> they  restarted FIJI in between success and failure.
>>>
>>> I’m baffled!
>>>
>>> Thanks for confirming that it works somewhere other than my personal
>>> machine.  as near as i can determine, showDialog() is called, but dies
>>> nothing, and never returns, never displays anything, and does not throw
>>> an
>>> Exception.
>>>
>>> -Kenneth Sloan
>>>
>>>
>>> On Thu, Nov 14, 2024 at 22:33 Wayne Rasband <[email protected]
>>> <mailto:[email protected]>> wrote:
>>>
>>>> Hi Kenneth,
>>>>
>>>> I converted your test code to JavaScript,n fixed problems with missing
>>>> variable declarations and ran the script successfully on macOS, Linux
>>>> and
>>>> Windows, on my MacBook Air.nths
>>>>
>>>> -wayne
>>>>
>>>>  IJ.log("building dialog");
>>>>  gd = new NonBlockingGenericDialog("User Paraameters");
>>>>  IJ.log("created  gd");
>>>>  caseID = "noCaseID";
>>>>  gd.addStringField("Case ID:",caseID);
>>>>  IJ.log("added Case ID:  "+caseID);
>>>>  markerRoiRadius = 10;
>>>>  gd.addNumericField("Marker Radius(pixels):", markerRoiRadius,0);
>>>>  IJ.log("added Marker Radius");
>>>>  dialogX = 0;
>>>>  dialogY = 0;
>>>>  gd.setLocation(dialogX,dialogY);
>>>>  IJ.log("setLocation "+dialogX+"   "+dialogY);
>>>>  gd.showDialog();
>>>>  IJ.log("gd.wasCanceled()  =" + gd.wasCanceled());
>>>>  IJ.log("getting  caseID");
>>>>  caseID = gd.getNextString();
>>>>  IJ.log("caseID = "+caseID);
>>>>  markerRoiRadius = gd.getNextNumber();
>>>>  IJ.log("markerRoiRadius = "+markerRoiRadius);
>>>>
>>>>
>>>>> On Nov 14, 2024, at 3:43 PM, Kenneth Sloan <[email protected]
>>>>> <mailto:[email protected]>>
>>>> wrote:
>>>>>
>>>>> I have a plugin which has been working for 6 months.
>>>>>
>>>>> Today, I got a report that it failed, on both Windows and Mac
>>>> machines.
>>>>>
>>>>> I asked for the input, and tried to replicate the problem.  Its works
>>>> just fine on my MacBook Pro.
>>>>>
>>>>> All machines have been updated to the latest FIJI release.
>>>>>
>>>>> I added some logging, so the relevant code looks like this:
>>>>>
>>>>>      // get user-specified parameters
>>>>>      IJ.log("building dialog");
>>>>>      NonBlockingGenericDialog gdParms = new
>>>> NonBlockingGenericDialog("User Paraameters");
>>>>>      IJ.log("created  gdParms");
>>>>>      String caseID = "noCaseID";
>>>>>      gdParms.addStringField("Case ID:",caseID);
>>>>>      IJ.log("added Case ID:  "+caseID);
>>>>>      gdParms.addNumericField(“Marker Radius(pixels):”,
>>>>     markerRoiRadius,0);
>>>>>      IJ.log("added Marker Radius");
>>>>>      gdParms.setLocation(dialogX,dialogY);
>>>>>      IJ.log("setLocation "+dialogX+"   "+dialogY);
>>>>>      gdParms.showDialog();
>>>>>      IJ.log("gdParms.wasCanceled()  =" + gdParms.wasCanceled());
>>>>>      if(gdParms.wasCanceled()) return;
>>>>>      IJ.log("getting  caseID");
>>>>>      caseID = gdParms.getNextString();
>>>>>      IJ.log("caseID = "+caseID);
>>>>>      markerRoiRadius = (int)gdParms.getNextNumber();
>>>>>      IJ.log("markerRoiRadius = "+markerRoiRadius);
>>>>>
>>>>> The Log window ends with the line:
>>>>>
>>>>>      SetLocation  0     0
>>>>> So… the statement:
>>>>>
>>>>>      gdParms.showDialog();
>>>>>
>>>>> Appears to have been executed, but nothing appears on the screen, and
>>>> the program stalls.
>>>>>
>>>>> There is no relevant output in the Console window.
>>>>>
>>>>> We have rebooted, updated FIJI, all to no avail.
>>>>>
>>>>> It fails on 3 machines (2 Windows and one Mac) in a research lab in a
>>>> medical center, but works perfectly on my MacBook Pro, at home.
>>>>>
>>>>> The initial report claims that they were using the plugin on a series
>>>> of
>>>> cases.
>>>>> It worked on a bunch of cases, and then failed on the next (and has
>>>> failed at their location every time since).  Ss so…no FIJI
>>>> update or
>>>> OS
>>>> update between the last success and the first failure.
>>>>>
>>>>> I’m baffled.   Any ideas?
>>>>>
>>>>> Finally, the user reports that when the plugin stalls, all other FIJI
>>>> functions work properly.  It’s as if “showDialog()”
>>>> has either
>>>> terminated
>>>> the plugin (without anything in the Log or Console window), or is
>>>> waiting
>>>> for an input (but has not actually displayed the dialog box).  I asked
>>>> them
>>>> to hit ESC, which had no effect.
>>>>> --
>>>>> Kenneth Sloan
>>>>> [email protected]
>>>>> Vision is the art of seeing what is invisible to others.
>>>>>
>>>>> --
>>>>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>>>
>>>>
>>>> --
>>>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>>>
>>>
>>> --
>>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>>>
>>
>> --
>> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>> <FindWindow.java.txt>
>
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html

Reply via email to