Re: 20000811: VisAD and Linux

Hi Don,

> We are having some problems with the latest release of
> visad.jar (Wed Aug  9 12:57:31 CDT 2000) on Linux.  If
> we click in any VisAD display window, the program crashes
> with a sigseg violation.  The specifics of our installation
> are:
> jdk1.2.2 from Blackdown
> java3d1_1_3
> If we use a previous visad.jar (Fri Jul 21 10:38:54 CDT 2000)
> we do not have this problem.

This is undoubtedly linked to the code that I added to
visad/ for you recently, so that translating
the display with the mouse would be precise.  Specifically,
the block of code:

            VisADRay start_ray = behavior.findRay(start_x, start_y);
            VisADRay start_ray_x = behavior.findRay(start_x + 100, start_y);
            VisADRay start_ray_y = behavior.findRay(start_x, start_y + 100);
            xmul = 0.01 * (start_ray_x.position[0] - start_ray.position[0]);
            ymul = 0.01 * (start_ray_y.position[1] - start_ray.position[1]);

            tstart = proj.getMatrix();
            double[] rot = new double[3];
            double[] scale = new double[1];
            double[] trans = new double[3];
            behavior.instance_unmake_matrix(rot, scale, trans, tstart);
            xmul = xmul * scale[0];
            ymul = ymul * scale[0];

added after:"

          if (mousePressed1 || mouseCombo1) {

and after:

          else if (mousePressed2 || mouseCombo2) {

is probably triggering some sort of bug in the Linux Java
implementation (Java code isn't supposed to cause segmentation
faults, as you know).

So might try rearranging this code I added, or even testing to
see if its dividing by zero or something like that.  If you
come up with a fix, feel free to update the system.

Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI  53706
hibbard@xxxxxxxxxxxxxxxxx  608-263-4427  fax: 608-263-6738