Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4253405

nonfatal JIT error

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: P4 P4
    • None
    • 1.2.0, 1.2.2
    • vm-legacy
    • x86
    • windows_95, windows_98, windows_nt

      .vecmath.Point3f;
      import java.util.Observer;
      import java.util.Observable;
      import java.util.ArrayList;

      import org.w3c.dom.*;
      //import com.ibm.xml.dom.*;

      /*import from local packages: */
      import kernel.shapes.Shape;
      import kernel.bricks.ControlPoint;
      import kernel.bricks.Face;

      public class Brick extends Shape {
        protected Shape3D shape = new Shape3D();
        protected final static int numberOfFaces = 6;
        public final static int patchDegree = 3;
        
        protected Face[] faces = new Face[numberOfFaces];
        protected ControlPoint[][][] controlPoints;

        public Brick (Locale locale, Canvas3D canvas, double size) {
          vertices = new ArrayList((patchDegree+1)*(patchDegree+1)*(patchDegree+1) -
      (patchDegree-1)*(patchDegree-1)*(patchDegree-1));
          controlPoints = new
      ControlPoint[patchDegree+1][patchDegree+1][patchDegree+1];
          representation = new Group();
          ControlPoint[][] tmpControlPointArray = new
      ControlPoint[patchDegree+1][patchDegree+1];
          for (int i=0; i<=patchDegree; i++)
            for (int j=0; j<=patchDegree; j++)
      for (int k=0; k<=patchDegree; k++)
      if (this instanceof TransformableBrick)
      controlPoints[i][j][k] = new MovableControlPoint(locale, canvas, i,
      j, k,
      size*(-1.0 +
      2.0*i/(patchDegree)),
      size*(-1.0 +
      2.0*j/(patchDegree)),
      size*(-1.0 +
      2.0*k/(patchDegree)),
      size/15
      );
      else
      controlPoints[i][j][k] = new ControlPoint(locale, canvas, i, j, k,
      size*(-1.0 +
      2.0*i/(patchDegree)),
      size*(-1.0 +
      2.0*j/(patchDegree)),
      size*(-1.0 +
      2.0*k/(patchDegree)),
      size/15
      );

          // erase the inner control points: (we do not need them)
          for (int i=1; i<patchDegree; i++)
            for (int j=1; j<patchDegree; j++)
      for (int k=1; k<patchDegree; k++)
      controlPoints[i][j][k] = null;

          for (int i=0; i<=patchDegree; i++)
            for (int j=0; j<=patchDegree; j++)
      for (int k=0; k<=patchDegree; k++)
      if (controlPoints[i][j][k] != null) {

      representation.addChild(controlPoints[i][j][k].getSceneGraphRepresentation());
      vertices.add(controlPoints[i][j][k].getCoordinates());
      }

          for (int i=0; i<=patchDegree; i++)
            for (int j=0; j<=patchDegree; j++)
      tmpControlPointArray[i][j] = controlPoints[i][j][0];
          faces[0] = new Face(tmpControlPointArray);
          
          for (int i=0; i<=patchDegree; i++)
            for (int j=0; j<=patchDegree; j++)
      tmpControlPointArray[i][j] = controlPoints[i][j][patchDegree];
          faces[1] = new Face(tmpControlPointArray);

          for (int i=0; i<=patchDegree; i++)
            for (int j=0; j<=patchDegree; j++)
      tmpControlPointArray[i][j] = controlPoints[i][0][j];
          faces[2] = new Face(tmpControlPointArray);

          for (int i=0; i<=patchDegree; i++)
            for (int j=0; j<=patchDegree; j++)
      tmpControlPointArray[i][j] = controlPoints[i][patchDegree][j];
          faces[3] = new Face(tmpControlPointArray);

          for (int i=0; i<=patchDegree; i++)
            for (int j=0; j<=patchDegree; j++)
      tmpControlPointArray[i][j] = controlPoints[0][i][j];
          faces[4] = new Face(tmpControlPointArray);

          for (int i=0; i<=patchDegree; i++)
            for (int j=0; j<=patchDegree; j++)
      tmpControlPointArray[i][j] = controlPoints[patchDegree][i][j];
          faces[5] = new Face(tmpControlPointArray);

          for (int i=0; i<numberOfFaces; i++)
            representation.addChild(faces[i].getSceneGraphRepresentation());
        }

        public String getXMLRepresentation (int indentLevel) {
          StringBuffer sb = new StringBuffer();
          String indentString = "";
          for (int i=0; i<indentLevel; i++)
            indentString = indentString + "\t";
          sb.append(indentString+"<Brick kind=\"interpolated\"
      degree=\""+patchDegree+"\">\n");
          /*
          for (int i=0; i<numberOfFaces; i++)
            sb.append(faces[i].getXMLRepresentation(indentLevel+1));
          */
          for (int i=0; i<=patchDegree; i++)
            for (int j=0; j<=patchDegree; j++)
      for (int k=0; k<=patchDegree; k++)
      if (controlPoints[i][j][k] != null)

      sb.append(controlPoints[i][j][k].getXMLRepresentation(indentLevel+1));
          sb.append(indentString+"</Brick>\n");
          return sb.toString();
        }

        /* It is just a quick hack. The function is to be implemented properly later*/
        public void initializeFromXML (org.w3c.dom.Node node_) {
          Document document = (Document) node_;
          Element root = document.getDocumentElement();
          System.out.println(root.getTagName());
          System.out.println(root.getAttributeNode("kind").getValue());
          System.out.println(root.getAttributeNode("degree").getValue());
          NodeList nodeList = root.getChildNodes();
          int size = nodeList.getLength();
          for (int i=0; i<size; i++) {
            org.w3c.dom.Node node = nodeList.item(i); // node = control point
      representation
            //System.out.println(node.getClass().getName());
            if (node instanceof Element) {
      Element element = (Element) node;
      //System.out.println("x_index=\t"+element.getAttribute("x_index"));
      //System.out.println("y_index=\t"+element.getAttribute("y_index"));
      //System.out.println("z_index=\t"+element.getAttribute("z_index"));
      //System.out.println("x=\t"+element.getAttribute("x"));
      //System.out.println("y=\t"+element.getAttribute("y"));
      //System.out.println("z=\t"+element.getAttribute("z"));
      int ii = Integer.parseInt(element.getAttribute("x_index"));
      int jj = Integer.parseInt(element.getAttribute("y_index"));
      int kk = Integer.parseInt(element.getAttribute("z_index"));
      double xx = Double.parseDouble(element.getAttribute("x"));
      double yy = Double.parseDouble(element.getAttribute("y"));
      double zz = Double.parseDouble(element.getAttribute("z"));
      //controlPoints[ii][jj][kk].set(xx, yy, zz);
      controlPoints[ii][jj][kk].notifyObservers();
            }
          }
        }
        /*
        public String toString() {
          StringBuffer sb = new StringBuffer();
           for (int i=0; i<=patchDegree; i++)
            for (int j=0; j<=patchDegree; j++)
      for (int k=0; k<=patchDegree; k++)
      if (controlPoints[i][j][k] != null)
      sb.append("("+i+", "+j+",
      "+k+")\t"+controlPoints[i][j][k].getCoordinates().toString()+"\n");
           return sb.toString();
        }
        */
      }
      (Review ID: 100521)
      ======================================================================


      Name: skT88420 Date: 07/12/99


      A nonfatal internal JIT (3.10.107(x)) error 'GetRegisterA' has occurred in :
        'engine/MoveGeneration.bitBlackMoves (I)Lengine/MoveList;': Interpreting method.
        Please report this error in detail to http://java.sun.com/cgi-bin/bugreport.cgi

      code for this method:

        public static final MoveList bitBlackMoves(int flags) {
      // try {
            moves.index = 0;
            long piece = 0;
            long board = 0;
            long promotions = 0;

            // black pawn moves

            piece = BitBoards.blackPawns;
            int fromsq = 0;
            int sq = 0;
            int sq2 = 0;
            while(piece != 0) {
              fromsq = BitBoards.firstOne(piece);
              piece &= BitBoards.clear_mask[fromsq];

              board = bPawnCaptures(fromsq);

              // capture promotions

              promotions = board & BitBoards.RANK1;

              while(promotions != 0) {
                sq = BitBoards.firstOne(promotions);
                promotions ^= (one << sq);
                addPromote(PBP,fromsq, sq);
              }
              board &= ~BitBoards.RANK1;
              // en passent

              if((BitBoards.bpawnAttacks[fromsq] & Engine.passentTarget[Engine.moves]) != 0) {
                sq2 = BitBoards.firstOne(Engine.passentTarget[Engine.moves]);
                moves.add(fromsq,sq2,0,PBP,Board.squares[sq2+8].piece,CAPTURE);
              }

              while(board != 0) {
                sq = BitBoards.firstOne(board);
                board ^= (one << sq);
                moves.add(fromsq,sq,Board.pieces[pieceOnSquare(fromsq)].value + Board.squares[sq].value,PBP,Board.squares[sq].piece,CAPTURE);
              }

              board = BitBoards.bpawnMoves[fromsq];

              if((BitBoards.mask[fromsq] & BitBoards.RANK7) != 0) {
                if((BitBoards.mask[fromsq-8] & BitBoards.allPieces) == 0 && (BitBoards.mask[fromsq-16] & BitBoards.allPieces) == 0) {
                  board |= BitBoards.mask[fromsq-16];
                }
              }
              board &= ~BitBoards.allPieces;

              // move promotions

              promotions = board & BitBoards.RANK1;

              while(promotions != 0) {
                sq = BitBoards.firstOne(promotions);
                promotions ^= (one << sq);
                addPromote(PBP,fromsq, sq);
              }
              board &= ~BitBoards.RANK1;
              while(board != 0) {
                sq = BitBoards.firstOne(board);
                board ^= (one << sq);
                moves.add(fromsq,sq,history_h[fromsq][sq],PBP,-1,0);
              }
            }

            // black knight moves
            piece = BitBoards.blackKnights;
            while(piece != 0) {
              fromsq = BitBoards.firstOne(piece);
              piece &= BitBoards.clear_mask[fromsq];

              board = bKnightCaptures(fromsq);

              while(board != 0) {
                sq = BitBoards.firstOne(board);
                board ^= (one << sq);
                moves.add(fromsq,sq,Board.pieces[pieceOnSquare(fromsq)].value + Board.squares[sq].value,PBN,Board.squares[sq].piece,CAPTURE);
              }

              board = knightMoves(fromsq);

              while(board != 0) {
                sq = BitBoards.firstOne(board);
                board ^= (one << sq);
                moves.add(fromsq,sq,history_h[fromsq][sq],PBN,-1,0);
              }
            }
            // black bishop moves
            piece = BitBoards.blackBishops;
            while(piece != 0) {
              fromsq = BitBoards.firstOne(piece);
              piece &= BitBoards.clear_mask[fromsq];

              board = bBishopCaptures(fromsq);

              while(board != 0) {
                sq = BitBoards.firstOne(board);
                board ^= (one << sq);
                moves.add(fromsq,sq,Board.pieces[pieceOnSquare(fromsq)].value + Board.squares[sq].value,PBB,Board.squares[sq].piece,CAPTURE);
              }

              board = bishopMoves(fromsq);

              while(board != 0) {
                sq = BitBoards.firstOne(board);
                board ^= (one << sq);
                moves.add(fromsq,sq,history_h[fromsq][sq],PBB,-1,0);
              }
            }
            // black rook moves
            piece = BitBoards.blackRooks;
            while(piece != 0) {
              fromsq = BitBoards.firstOne(piece);
              piece &= BitBoards.clear_mask[fromsq];

              board = bRookCaptures(fromsq);

              while(board != 0) {
                sq = BitBoards.firstOne(board);
                board ^= (one << sq);
                moves.add(fromsq,sq,Board.pieces[pieceOnSquare(fromsq)].value + Board.squares[sq].value,PBR,Board.squares[sq].piece,CAPTURE);
              }

              board = rookMoves(fromsq);

              while(board != 0) {
                sq = BitBoards.firstOne(board);
                board ^= (one << sq);
                moves.add(fromsq,sq,history_h[fromsq][sq],PBR,-1,0);
              }
            }
            // black queen moves
            piece = BitBoards.blackQueens;
            while(piece != 0) {
              fromsq = BitBoards.firstOne(piece);
              piece &= BitBoards.clear_mask[fromsq];

              board = bQueenCaptures(fromsq);

              while(board != 0) {
                sq = BitBoards.firstOne(board);
                board ^= (one << sq);
                moves.add(fromsq,sq,Board.pieces[pieceOnSquare(fromsq)].value + Board.squares[sq].value,PBQ,Board.squares[sq].piece,CAPTURE);
              }

              board = queenMoves(fromsq);

              while(board != 0) {
                sq = BitBoards.firstOne(board);
                board ^= (one << sq);
                moves.add(fromsq,sq,history_h[fromsq][sq],PBQ,-1,0);
              }
            }
            // black king moves
            fromsq = BitBoards.bksq;

            if(Board.pieces[BK].square == E8 && Board.pieces[BK].moved == 0 && Board.pieces[BKR].moved == 0 && !Board.pieces[BKR].taken) {
              if((BitBoards.allPieces & BitBoards.mask[F8]) == 0 &&
                 (BitBoards.allPieces & BitBoards.mask[G8]) == 0) {
                if(!blackInCheck(E8) &&
                  !blackInCheck(F8) &&
                  !blackInCheck(G8)) {
                  moves.add(E8,G8,40+history_h[E8][G8],PBK,-1,BCKS);
                }
              }
            }

            if(Board.pieces[BK].square == E8 && Board.pieces[BK].moved == 0 && Board.pieces[BQR].moved == 0 && !Board.pieces[BQR].taken) {
              if((BitBoards.allPieces & BitBoards.mask[D8]) == 0 &&
                 (BitBoards.allPieces & BitBoards.mask[C8]) == 0 &&
                 (BitBoards.allPieces & BitBoards.mask[B8]) == 0) {
                if(!blackInCheck(E8) &&
                  !blackInCheck(D8) &&
                  !blackInCheck(C8)) {
                  moves.add(E8,C8,40+history_h[E8][C8],PBK,-1,BCQS);
                }
              }
            }

            board = bKingCaptures(fromsq);

            while(board != 0) {
              sq = BitBoards.firstOne(board);
              board ^= (one << sq);
              moves.add(fromsq,sq,Board.pieces[pieceOnSquare(fromsq)].value + Board.squares[sq].value,PBK,Board.squares[sq].piece,CAPTURE);
            }

            board = kingMoves(fromsq);

            while(board != 0) {
              sq = BitBoards.firstOne(board);
              board ^= (one << sq);
              moves.add(fromsq,sq,history_h[fromsq][sq],PBK,-1,0);
            }
            return moves;
      // }
      // catch(Exception e) {
      // e.printStackTrace();
      // Board.print();
      // for(int t = 0;t < Search.eTotal;t++) {
      // System.out.print(Search.current[t] + " ");
      // }
      // System.exit(0);
      // }
      // return null;
        }
      (Review ID: 85485)
      ======================================================================

      Name: krT82822 Date: 11/02/99


      (see 4196473, 4253405, 4253789, 4270318) --eval1127@eng, 11/2/99

      java version "1.2.2"
      Classic VM (build JDK-1.2.2-W, native threads, symcjit)

      JAVA SOURCE:
      import java.awt.*;

      public class RootApplet extends javax.swing.JApplet {
              int number;

              public void init() {
                      number = 225;
              }

              public void paint(Graphics screen) {
                       super.paint (screen);
                      Graphics2D screen2D = (Graphics2D) screen;
                      screen2D.drawString("The square root of " +
                      number +
      " is " +
      Math.sqrt(number), 5, 50);
              }
      }
      NO ERRORS ON javac COMPILATION.
      EXACT TEXT OF ERROR MESSAGES UPON EXECUTION OF appletviewer:
      "D:\j24wrk>appletviewer RootApplet.html
      A nonfatal internal JIT (3.10.107(x)) error 'GetRegisterA' has occurred in :
        'java/util/Hashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Obje
      ct;': Interpreting method.
        Please report this error in detail to http://java.sun.com/cgi-bin/bugreport.cg
      i"
      NOTE: appletviewer displays program output successfully.
      (Review ID: 97329)
      ======================================================================

      Name: rlT66838 Date: 11/24/99


      java version "1.2.2"
      Classic VM (build JDK-1.2.2-W, native threads, symcjit)

      I received this message when I ran my program:

      A nonfatal internal JIT (3.10.107(x)) error 'GetRegisterA' has occurred in :
        'LifeCanvas.paint (Ljava/awt/Graphics;)V': Interpreting method.
        Please report this error in detail to
      http://java.sun.com/cgi-bin/bugreport.cgi

      Here is the paint method in my LifeCanvas class:
          public void paint(Graphics g)
          {
              int[] x=new int[3];
              int[] y=new int[3];

              g.setColor(Color.blue);
              for(int k=0;k<cells.size();k++)
              {
                  Point p=(Point)cells.elementAt(k);
                  int j=p.x;
                  int i=p.y;
                  if(j>=0 && j<=38 && i>=0 && i<=19)
                  {
                      x[0]=j*12;
                      x[1]=j*12+9;
                      x[2]=j*12+18;

                      if((i+j)%2==0)
                      {
                          y[0]=18*i;
                          y[1]=18*i+15;
                          y[2]=18*i;
                      }
                      else
                      {
                          y[0]=18*i+15;
                          y[1]=18*i;
                          y[2]=18*i+15;
                      }
                      g.fillPolygon(x,y,3);
                  }
              }

              g.setColor(Color.red);
              for(int i=0;i<20;i++)
                  for(int j=0;j<39;j++)
                  {
                      x[0]=j*12;
                      x[1]=j*12+9;
                      x[2]=j*12+18;

                      if((i+j)%2==0)
                      {
                          y[0]=18*i;
                          y[1]=18*i+15;
                          y[2]=18*i;
                      }
                      else
                      {
                          y[0]=18*i+15;
                          y[1]=18*i;
                          y[2]=18*i+15;
                      }
                      g.drawPolygon(x,y,3);
                  }
          }
      (Review ID: 98253)
      ======================================================================

      Name: krT82822 Date: 12/26/99


      java version "1.2.2"
      Classic VM (build JDK-1.2.2-001, native threads, symcjit)


      A nonfatal internal JIT (3.10.107(x)) error 'GetRegisterA' has occurred in :
        'nwcheck/types/IP.<init> (Ljava/lang/String;)V': Interpreting method.
        Please report this error in detail to http://java.sun.com/cgi-
      bin/bugreport.cgi

      source code :

      package nwcheck.types;

      import java.io.StreamTokenizer;
      import java.io.StringReader;
      import java.io.IOException;

      public class IP
      {
      private static final long BIT31 = -2147483648;
      private static final long[] maskIDHote =
      {
      16777215, 65535, 255, 0, 0
      };

      private static final String[] libellesClasses =
      {
      "class A","class B","class C","multicast","undefined"
      };

      private byte classe = 0;
      private long adresse;

      public IP(String s) throws IOException
      {
      byte etat = 0;
      long v = 0;

      adresse = 0;

      StreamTokenizer analyseur = new StreamTokenizer(new StringReader
      (s));
      analyseur.resetSyntax();
      analyseur.whitespaceChars(0,32);
      analyseur.wordChars('0','9');

      while (etat != 3)
      {
      switch (etat)
      {
      case 0:
      {
      switch (analyseur.nextToken())
      {
      case StreamTokenizer.TT_WORD:
      {
      if ((analyseur.nval >=
      0) && (analyseur.nval <= 255))
      {
      adresse =
      adresse << 8 + Long.parseLong(analyseur.sval);
      etat = 1;
      }
      else
      etat = 2;
      break;
      }
      default:
      etat = 2;
      }
      break;
      }
      case 1:
      {
      switch (analyseur.nextToken())
      {
      case StreamTokenizer.TT_EOF:
      {
      etat = 3;
      break;
      }
      case '.':
      {
      etat = 0;
      break;
      }
      default:
      etat = 2;
      }
      break;
      }
      case 2:
      throw new IOException("Adresse IP non
      reconnue");
      }
      }
      v = BIT31;
      while ((classe < 4) && ((adresse & v) != 0))
      {
      classe++;
      v = v >> 1;
      }
      }

      public String image()
      {
      StringBuffer image = new StringBuffer();
      long v = adresse;

      image.insert(0,v % 256);
      v /= 256;
      while (v > 0)
      {
      image.insert(0,'.');
      image.insert(0,v % 256);
      v /= 256;
      }

      return image.toString();
      }

      public boolean estReseau()
      {
      return ((adresse & maskIDHote[classe]) == 0);
      }

      public boolean egalite(IP adr)
      {
      return (adresse == adr.adresse);
      }

      public boolean egaliteReseau(IP adr)
      {
      return ((adresse & (~maskIDHote[classe])) ==
      (adr.adresse & (~maskIDHote[adr.classe])));
      }

      public boolean egaliteSousReseau(IP adr,IP mask)
      {
      return ((adresse & mask.adresse) ==
      (adr.adresse & mask.adresse));
      }

      public String libelleClasse()
      {
      return libellesClasses[classe];
      }
      }
      (Review ID: 99341)
      ======================================================================

      Name: krT82822 Date: 01/06/2000


      java version "1.2.2"
      Classic VM (build JDK-1.2.2-001, native threads, symcjit)

      The following not easily reproducible error occurs when calling an entity bean
      from a stateful session bean, each in a separate container-managed transaction:

      A nonfatal internal JIT (3.10.107(x)) error 'GetRegisterA' has occurred in :
        'com/sun/corba/ee/internal/iiop/CDRInputStream.start_block ()V': Interpreting
      method.
        Please report this error in detail to http://java.sun.com/cgi-bin/bugreport.cg
      i
      (Review ID: 99664)
      ======================================================================

      Name: krT82822 Date: 01/16/2000


      java version "1.2"
      Classic VM (build JDK-1.2-V, native threads)


      When running a simple character shifting the error occurs, X[] is an char array
      with the alphbet.

      public static String shiftby(String data, int x) {

       char temp;
       String newdata = "";
       int newvalue = 0;
           for(int i=0; i < data.length(); i++) {
               temp = data.charAt(i);
               newvalue = chvalue(temp);
               newvalue -= x;
                if(newvalue < 0) {
                    newvalue += 25;
                }
               newdata += X[newvalue];
           }
           return newdata;
       }
      (Review ID: 100013)
      ======================================================================

      Name: krT82822 Date: 01/30/2000


      bash.exe: warning: could not find /tmp, please create!
      bash-2.02$ java -version
      java version "1.2.2"
      Classic VM (build JDK-1.2.2-001, native threads, symcjit)
      bash-2.02$ java -fullversion
      java full version "JDK-1.2.2-001"
      bash-2.02$

      A nonfatal internal JIT (3.10.107(x)) error 'GetRegisterA' has occurred in :
      'kernel/bricks/Brick.<init>
      (Ljavax/media/j3d/Locale;Ljavax/media/j3d/Canvas3D;D)V': Interpreting method.
      Please report this error in detail to http://java.sun.com/cgi-bin/bugreport.cgi

      My program causes an error (see above). I think the error could be caused
      by following construct:

      if (this instanceof ...) {
      ...
      }

      (The error arouse after I had inserted this line)
      ----------------------------Source code----------------------------------
      package kernel.bricks;

      import javax.media.j3d.*;
      import javax.vecmath.Color3f;
      //import javax

            Unassigned Unassigned
            skonchad Sandeep Konchady
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: