NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: Cannot merge sets

Hi Doug,

This may be the bug that Randall Simons uncovered in:

  http://www.unidata.ucar.edu/staff/russ/visad/msg02789.html

This would be consistent with Steve's theory.

The fix isn't yet on our ftp server, but is in the attached
fix.jar file.

Good luck,
Bill

Doug Lindholm wrote:
> 
> I'm getting the following exception while contructing my display with
> several fields with different time domains:
> 
> visad.VisADException: Cannot merge sets
>     at visad.Set.merge1DSets(Set.java:376)
>     at visad.DataShadow.setAnimationSampling(DataShadow.java:72)
>     at visad.SimpleSet.setAnimationSampling(SimpleSet.java:107)
>     at visad.SampledSet.computeRanges(SampledSet.java:208)
>     at visad.FieldImpl.computeRanges(FieldImpl.java:2708)
>     at visad.DataRenderer.computeRanges(DataRenderer.java:278)
>     at visad.DataRenderer.prepareAction(DataRenderer.java:243)
>     at visad.DisplayRenderer.prepareAction(DisplayRenderer.java:633)
>     at visad.DisplayImpl.doAction(DisplayImpl.java:1383)
>     at visad.ActionImpl.run(ActionImpl.java:238)
>     at visad.util.ThreadPool$ThreadMinnow.run(ThreadPool.java:95)
> visad.VisADError: Action.run: visad.VisADException: Cannot merge sets
>     at visad.ActionImpl.run(ActionImpl.java:271)
>     at visad.util.ThreadPool$ThreadMinnow.run(ThreadPool.java:95)
> 
> It is not consistant (and neither is my data) so I'm wondering if it is
> due to the nature of my data. I've looked at the relevant bit of Set
> code:
> 
>     // find indices of set not covered by this
>     int set_length = set.getLength();
>     boolean[] set_indices = new boolean[set_length];
>     for (int i=0; i<set_length; i++) set_indices[i] = true;
>     if (set_length > 1) {
>       // set indices for values in this
>       int[] test_indices = set.doubleToIndex(values);
>       try {
>         for (int i=0; i<length; i++) {
>           if (test_indices[i] > -1) set_indices[test_indices[i]]
> false;
>         }
>       } catch (ArrayIndexOutOfBoundsException aioobe) {
>         throw new VisADException("Cannot merge sets");
>       }
>     }
> 
> but don't quite understand what conditions would lead to this exception.
> 
> Let me know if there is something obvious, otherwise I'll try to make a
> reproducible case for debugging.
> 
> Thanks,
> Doug
> 
> --
> *----------------------------------------------------------------------*
> | Doug Lindholm, Software Engineer          |  E-mail: lind@xxxxxxxx   |
> | Research Applications Program             |   Phone: 303-497-8374    |
> | National Center for Atmospheric Research  |                          |
> | P.O. Box 3000                             |     There's no place     |
> | Boulder, Colorado 80307-3000              |        like $HOME        |
> *----------------------------------------------------------------------*

-- 
----------------------------------------------------------
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI  53706
hibbard@xxxxxxxxxxxxxxxxx  608-263-4427  fax: 608-263-6738
http://www.ssec.wisc.edu/~billh/vis.html

Attachment: fix.jar
Description: application/java-archive

  • 2002 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the visad archives: