i need some help

Dear all:

i am having some runtime errors trying to run my program  below: i get an
error like

Exception in thread "main" visad.SetException: SampledSet.init_samples:
sample dimension 1 doesn't match expected length 2

what i am trying to do is to create a flat plane and put spikes on it by
reading the data from a file.
i will be glad if this anomaly can be corrected, i have started compiling a
list of all possible visad errors like the above and their solutions, i will
post it when it gets enough.

see code below:

thanks in advance


 sample data
A2HS_HUMAN      39300   5.43    .16666666666666669
A2HS_HUMAN      39300   5.43    .6862056629875621


import javax.swing.*; 
import visad.*; 
import java.io.*;
import java.util.Vector;
import visad.java3d.DisplayImplJ3D; 
import visad.data.text.TextAdapter;
import java.util.StringTokenizer;

public class Gridd 
 private static FlatField vals_ff;
 private static  Set domain_set;
 private  static DataReferenceImpl data_ref;
  public static void main(String[] args) throws Exception 
  Vector nice = new Vector();
  BufferedReader fi = new BufferedReader(new FileReader("tryE.txt"));
        for(String p=fi.readLine();p!=null;p=fi.readLine())
        StringTokenizer tokenizer = new StringTokenizer (p);
        if (tokenizer.hasMoreTokens())
        String name = tokenizer.nextToken();
        float A =Float.parseFloat( tokenizer.nextToken());
        float B= Float.parseFloat(tokenizer.nextToken());
  float rat= Float.parseFloat(tokenizer.nextToken());
        nice.add(new prodat(name,A,B,rat));
       // range types for data 
    RealType ratio = RealType.getRealType("ratio"); 
    RealType mass = RealType.getRealType("mass"); 
    RealType pi = RealType.getRealType("pi"); 
    RealTupleType tuple = new RealTupleType(mass,pi); 

     FunctionType type = new FunctionType(
      new RealTupleType(mass, pi), ratio);
  float[][] protein =new float[1][nice.size()*nice.size()];
 float[][] range =new float[1][nice.size()];
  for(int z=0;z<protein.length;z++)
        prodat prox=(prodat)nice.get(z);
   //float[][] t_x = protein.floatTofloat(((FlatF)
  Irregular2DSet set = new Irregular2DSet(tuple,protein);
  vals_ff=new FlatField(type,set); 
  // try to create a plain grid and put ratio as spikes on the grid
    for(int i=0;i<protein.length;i++)
        for(int j=0;j<protein.length;j++)
                int ndx = (int)(i* protein[0][j] + j);
                if (i % protein.length == 0 && j % protein.length == 0 ) 
                        //float spike=Math.round(range[0][j]);
                        float spike=range[0][j];
                        //protein[0][ndx]= spike;
                        if(spike >0.5)
                 protein[0][ndx]= spike;
                  else protein[0][ndx] =-1*spike;

    // construct data reference 
    DataReferenceImpl ref = new DataReferenceImpl("ref"); 

    // construct display 
    DisplayImplJ3D display = new DisplayImplJ3D("display"); 
    display.addMap(new ScalarMap(ratio, Display.ZAxis)); 
    display.addMap(new ScalarMap(mass, Display.XAxis)); 
    display.addMap(new ScalarMap(pi, Display.YAxis)); 
     display.addMap(new ScalarMap(ratio,Display.RGB));

    // configure display 
    GraphicsModeControl gmc = display.getGraphicsModeControl(); 

    // display onscreen 
    JFrame frame = new JFrame("Isaac, visad graphics");