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

Compiler Error in J2MEWT

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • None
    • unknown
    • tools
    • x86
    • windows_nt

            g.drawString("*** PAUSED ***", dcenterx, dheight, g.BOTTOM|g.HCENTER);
            g.drawString("*** PAUSED ***", dcenterx, 0, g.TOP|g.HCENTER);
            //g.drawString("*** "+dwidth+", "+dheight+" ***", dcenterx, 0,
      g.TOP|g.HCENTER);
          }

          if(blackNums[0] != null)
          {
            g.drawImage(blackNums[0], 0, 0, g.TOP|g.HCENTER);
          }
        }
      }



      package palm;

      /**
       * Title: ClassCapture
       * Description: Class audio and notation capture program.
       * Records audio in the classroom environment and
       * denotes which group of students the teacher
       * is currently speaking with.
       * Copyright: Copyright (c) 2001
       * Company: Acuitus
       * @author Eric Bailey
       * @version 1.0
       */
      /* MIDP for Palm MIDlet for turning the palm into a wireless remote control
       */

      import javax.microedition.midlet.*;
      import javax.microedition.lcdui.*;

      public class RemCap extends MIDlet
      {
        private MainDisplay md;

        public RemCap()
        {
          md = new MainDisplay(this);
        }

        // -- startApp --
        // --------------
        // Sets the display with our UI
        protected void startApp() {
          Display.getDisplay(this).setCurrent(md);
        }

        protected void pauseApp() {}
        protected void destroyApp(boolean u) {}

        // -- exit --
        // ----------
        // Closes down the connection and exits the app
        public void exit()
        {
          destroyApp(false);
          notifyDestroyed();
        }
      }

      ---------- END SOURCE ----------
      (Review ID: 138689)
      ======================================================================
      Name: Asaf Volshtein ###@###.### Date:03/14/2002

      This bug was sent to us by a customer, his description follows mine.

      FULL PRODUCT VERSION :
      j2sdk1.4.0

      FULL OPERATING SYSTEM VERSION : Win NT 4.0

      A DESCRIPTION OF THE PROBLEM :
      The compiler does not recognise classes when using their name Myclass.class.

      When writing a MIDLet adding the following line :
      InputStream is = HelloMIDlet.class.getResourceAsStream("/HelloMIDlet.png");
      will cause the comiler to throw an exeption :

      An exception has occurred in the compiler (1.4.0). Please file a bug at the Java Developer Connection (http://java.sun.com/cgi-bin/bugreport.cgi) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you.
      com.sun.tools.javac.v8.code.Symbol$CompletionFailure: file java\lang\NoClassDefFoundError.class not found
      at com.sun.tools.javac.v8.code.ClassReader.fillIn(ClassReader.java:1020)
      at com.sun.tools.javac.v8.code.ClassReader.complete(ClassReader.java:977)
      at com.sun.tools.javac.v8.code.Symbol.complete(Symbol.java:375)
      at com.sun.tools.javac.v8.code.Symbol$ClassSymbol.complete(Symbol.java:697)
      at com.sun.tools.javac.v8.code.Symbol$ClassSymbol.flags(Symbol.java:594)
      at com.sun.tools.javac.v8.comp.Resolve.findMethod(Resolve.java:386)
      at com.sun.tools.javac.v8.comp.Resolve.resolveQualifiedMethod(Resolve.java:835)
      at com.sun.tools.javac.v8.comp.Resolve.resolveConstructor(Resolve.java:875)
      at com.sun.tools.javac.v8.comp.TransInner.makeNewClass(TransInner.java:256)
      at com.sun.tools.javac.v8.comp.TransInner.classDollarSym(TransInner.java:1275)
      at com.sun.tools.javac.v8.comp.TransInner.classOfType(TransInner.java:1375)
      at com.sun.tools.javac.v8.comp.TransInner.classOf(TransInner.java:1339)
      at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1755)
      at com.sun.tools.javac.v8.tree.Tree$Select.visit(Tree.java:1063)
      at com.sun.tools.javac.v8.comp.TransInner.translate(TransInner.java:1432)
      at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1753)
      at com.sun.tools.javac.v8.tree.Tree$Select.visit(Tree.java:1063)
      at com.sun.tools.javac.v8.comp.TransInner.translate(TransInner.java:1432)
      at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1684)
      at com.sun.tools.javac.v8.tree.Tree$Apply.visit(Tree.java:869)
      at com.sun.tools.javac.v8.comp.TransInner.translate(TransInner.java:1432)
      at com.sun.tools.javac.v8.tree.TreeTranslator._case(TreeTranslator.java:115)
      at com.sun.tools.javac.v8.tree.Tree$VarDef.visit(Tree.java:503)
      at com.sun.tools.javac.v8.comp.TransInner.translate(TransInner.java:1432)
      at com.sun.tools.javac.v8.tree.TreeTranslator.translate(TreeTranslator.java:56)
      at com.sun.tools.javac.v8.tree.TreeTranslator._case(TreeTranslator.java:124)
      at com.sun.tools.javac.v8.tree.Tree$Block.visit(Tree.java:539)
      at com.sun.tools.javac.v8.comp.TransInner.translate(TransInner.java:1432)
      at com.sun.tools.javac.v8.tree.TreeTranslator._case(TreeTranslator.java:172)
      at com.sun.tools.javac.v8.tree.Tree$Try.visit(Tree.java:689)
      at com.sun.tools.javac.v8.comp.TransInner.translate(TransInner.java:1432)
      at com.sun.tools.javac.v8.tree.TreeTranslator.translate(TreeTranslator.java:56)
      at com.sun.tools.javac.v8.tree.TreeTranslator._case(TreeTranslator.java:124)
      at com.sun.tools.javac.v8.tree.Tree$Block.visit(Tree.java:539)
      at com.sun.tools.javac.v8.comp.TransInner.translate(TransInner.java:1432)
      at com.sun.tools.javac.v8.tree.TreeTranslator._case(TreeTranslator.java:109)
      at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1557)
      at com.sun.tools.javac.v8.tree.Tree$MethodDef.visit(Tree.java:474)
      at com.sun.tools.javac.v8.comp.TransInner.translate(TransInner.java:1432)
      at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1488)
      at com.sun.tools.javac.v8.tree.Tree$ClassDef.visit(Tree.java:435)
      at com.sun.tools.javac.v8.comp.TransInner.translate(TransInner.java:1432)
      at com.sun.tools.javac.v8.comp.TransInner.translate(TransInner.java:1450)
      at com.sun.tools.javac.v8.comp.TransInner.translateTopLevelClass(TransInner.java:1785)
      at com.sun.tools.javac.v8.JavaCompiler.compile(JavaCompiler.java:417)
      at com.sun.tools.javac.v8.Main.compile(Main.java:526)
      at com.sun.tools.javac.Main.compile(Main.java:32)
      at sun.reflect.GeneratedMethodAccessor37.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at com.sun.kvem.ktools.Compiler.compile(Unknown Source)
      at com.sun.kvem.ktools.Build.compile(Unknown Source)
      at com.sun.kvem.ktools.Build.build(Unknown Source)
      at com.sun.kvem.ktools.Main.run(Unknown Source)
      at com.sun.kvem.toolbar.MainWindow$CompilerThread.run(Unknown Source)

      If you use instead the following line the comilation will succeed:
      InputStream is = Class.forName("HelloMIDlet")
          .getResourceAsStream("/HelloMIDlet.png");

      The same thing hapens when trying to compile the line :
        System.out.println(HelloMIDlet.class);
      An exeption is thrown, but the compilation of the line :
        System.out.println(Class.forName("HelloMIDlet"));
      ends successfully.


      Name: gm110360 Date: 02/05/2002


      FULL PRODUCT VERSION :
      build 1.3.0-c


      FULL OPERATING SYSTEM VERSION : Win NT 4.0 sp4




      A DESCRIPTION OF THE PROBLEM :
      cannot build my app.

      Hitting the build button in the toolbar app results in the
      exception below

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1.Open my project, then hit build



      EXPECTED VERSUS ACTUAL BEHAVIOR :
      Should build, instead, I get the exception

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      An exception has occurred in the compiler (1.3.0). Please file a bug at the
      Java Developer Connection (http://java.sun.com/cgi-bin/bugreport.cgi). Include
      your program and the following diagnostic in your report. Thank you.

      com.sun.tools.javac.v8.code.Symbol$CompletionFailure: file
      java\lang\NoClassDefFoundError.class not found

      at com.sun.tools.javac.v8.code.ClassReader.fillIn(ClassReader.java:997)

      at com.sun.tools.javac.v8.code.ClassReader.complete
      (ClassReader.java:952)

      at com.sun.tools.javac.v8.code.Symbol.complete(Symbol.java:366)

      at com.sun.tools.javac.v8.code.Symbol$ClassSymbol.flags(Symbol.java:578)

      at com.sun.tools.javac.v8.comp.Resolve.findMethod(Resolve.java:367)

      at com.sun.tools.javac.v8.comp.Resolve.resolveQualifiedMethod
      (Resolve.java:808)

      at com.sun.tools.javac.v8.comp.Resolve.resolveConstructor
      (Resolve.java:827)

      at com.sun.tools.javac.v8.comp.TransInner.makeNewClass
      (TransInner.java:239)

      at com.sun.tools.javac.v8.comp.TransInner.classDollarSym
      (TransInner.java:1198)

      at com.sun.tools.javac.v8.comp.TransInner.classOf(TransInner.java:1291)

      at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1554)

      at com.sun.tools.javac.v8.tree.Tree$Select.visit(Tree.java:963)

      at com.sun.tools.javac.v8.tree.TreeTranslator.translate
      (TreeTranslator.java:35)

      at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1552)

      at com.sun.tools.javac.v8.tree.Tree$Select.visit(Tree.java:963)

      at com.sun.tools.javac.v8.tree.TreeTranslator.translate
      (TreeTranslator.java:35)

      at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1485)

      at com.sun.tools.javac.v8.tree.Tree$Apply.visit(Tree.java:785)

      at com.sun.tools.javac.v8.tree.TreeTranslator.translate
      (TreeTranslator.java:35)

      at com.sun.tools.javac.v8.tree.TreeTranslator._case
      (TreeTranslator.java:106)

      at com.sun.tools.javac.v8.tree.Tree$VarDef.visit(Tree.java:470)

      at com.sun.tools.javac.v8.tree.TreeTranslator.translate
      (TreeTranslator.java:35)

      at com.sun.tools.javac.v8.tree.TreeTranslator.translate
      (TreeTranslator.java:47)

      at com.sun.tools.javac.v8.tree.TreeTranslator._case
      (TreeTranslator.java:111)

      at com.sun.tools.javac.v8.tree.Tree$Block.visit(Tree.java:492)

      at com.sun.tools.javac.v8.tree.TreeTranslator.translate
      (TreeTranslator.java:35)

      at com.sun.tools.javac.v8.tree.TreeTranslator._case
      (TreeTranslator.java:159)

      at com.sun.tools.javac.v8.tree.Tree$Try.visit(Tree.java:642)

      at com.sun.tools.javac.v8.tree.TreeTranslator.translate
      (TreeTranslator.java:35)

      at com.sun.tools.javac.v8.tree.TreeTranslator.translate
      (TreeTranslator.java:47)

      at com.sun.tools.javac.v8.tree.TreeTranslator._case
      (TreeTranslator.java:111)

      at com.sun.tools.javac.v8.tree.Tree$Block.visit(Tree.java:492)

      at com.sun.tools.javac.v8.tree.TreeTranslator.translate
      (TreeTranslator.java:35)

      at com.sun.tools.javac.v8.tree.TreeTranslator._case
      (TreeTranslator.java:100)

      at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1418)

      at com.sun.tools.javac.v8.tree.Tree$MethodDef.visit(Tree.java:441)

      at com.sun.tools.javac.v8.tree.TreeTranslator.translate
      (TreeTranslator.java:35)

      at com.sun.tools.javac.v8.comp.TransInner._case(TransInner.java:1355)

      at com.sun.tools.javac.v8.tree.Tree$ClassDef.visit(Tree.java:402)

      at com.sun.tools.javac.v8.tree.TreeTranslator.translate
      (TreeTranslator.java:35)

      at com.sun.tools.javac.v8.comp.TransInner.translate
      (TransInner.java:1317)

      at com.sun.tools.javac.v8.comp.TransInner.translateTopLevelClass
      (TransInner.java:1583)

      at com.sun.tools.javac.v8.JavaCompiler.compile(JavaCompiler.java:397)

      at com.sun.tools.javac.v8.Main.compile(Main.java:247)

      at com.sun.tools.javac.Main.compile(Main.java:26)

      at java.lang.reflect.Method.invoke(Native Method)

      at com.sun.kvem.ktools.Compiler.compile(Unknown Source)

      at com.sun.kvem.ktools.Build.compile(Unknown Source)

      at com.sun.kvem.ktools.Build.build(Unknown Source)

      at com.sun.kvem.ktools.Main.run(Unknown Source)

      at com.sun.kvem.toolbar.MainWindow$CompilerThread.run(Unknown Source)

      com.sun.kvem.ktools.ExecutionException

      Build failed



      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      package palm;

      /**
       * Title: ClassCapture
       * Description: Class audio and notation capture program.
       * Records audio in the classroom environment and
       * denotes which group of students the teacher
       * is currently speaking with.
       * Copyright: Copyright (c) 2001
       * Company: Acuitus
       * @author Eric Bailey
       * @version 1.0
       */

      import javax.microedition.lcdui.*;
      import java.io.*;

      public class MainDisplay extends Canvas
      {
        // main app pointer
        private RemCap remCap;

        // commands
        private Command cmdExit;

        // remote stats
        private boolean isPaused;
        private int groupNum;
        private boolean groupNumChanged;
        private int MAX_GROUPS;

        // drawing vars
        private Font groupFont;
        private int dwidth, dheight, dcenterx, dcentery;

        private Image[] blackNums, whiteNums;
        private byte[] imageData;


        public MainDisplay(RemCap rc)
        {
          super();

          remCap = rc;

          isPaused = false;
          groupNum = -1;
          groupNumChanged = false;
          MAX_GROUPS = 99;

          cmdExit = new Command("EXIT", Command.EXIT, 1);
          addCommand(cmdExit);

          groupFont = Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD,
      Font.SIZE_LARGE);
          dwidth = getWidth();
          dheight = getHeight();
          dcenterx = dwidth / 2;
          dcentery = dheight / 2;

          loadImages();
        }

      ////////////////////////////////////////////////////////////////////////////////
      // METHODS
      ////////////////////////////////////////////////////////////////////////////////

        // -- sendGroup --
        // --------------
        // After a group change, we send the new group to the server
        private void sendGroup()
        {

        }

        // -- sendPauseOrResume --
        // -----------------------
        //
        private void sendPauseOrResume()
        {
          String msg;
          if(isPaused) msg = "pause";
          else msg = "resume";


        }

        // -- loadImages --
        // ----------------
        // Loads the number images 0-9.
        //
        private void loadImages()
        {
          blackNums = new Image[10];
          whiteNums = new Image[10];

          imageData = new byte[50000];

          blackNums[0] = getImageFromResource("resources/0.png");
        }
        // -- getImagePath --
        // ------------------
        private Image getImageFromResource(String resource)
        {
          try
          {
            InputStream is = MainDisplay.class.getResourceAsStream(resource);
            int len = is.read(imageData);

            Image im = Image.createImage(imageData, 0, len);
            return im;
          }
          catch(Exception e) { e.printStackTrace(); }
          return null;
        }

      ////////////////////////////////////////////////////////////////////////////////
      // USER INTERACTION
      ////////////////////////////////////////////////////////////////////////////////

        // ** BUTTONS **
        public void keyPressed(int keyCode)
        {
          int gameCode = getGameAction(keyCode);
          switch(gameCode)
          {
            case Canvas.UP: // next group num
            {
              if(groupNum < MAX_GROUPS) groupNum++;
              //sendGroup();
              groupNumChanged = true;
              repaint();
              break;
            }
            case Canvas.DOWN: // prev group num
            {
              if(groupNum > 0) groupNum--;
              //sendGroup();
              groupNumChanged = true;
              repaint();
              break;
            }
            case Canvas.FIRE: // pause recording
            {
              if(!isPaused) return;
              isPaused = false;
              repaint();
              sendPauseOrResume();
              break;
            }
            case Canvas.LEFT: // make group selection/send current group
            {
              if(isPaused) return;
              isPaused = true;
              repaint();
              sendPauseOrResume();
              break;
            }
            case Canvas.RIGHT:
            {
              if(!groupNumChanged) break; //don't send useless data
      groupNumChanged = false;
              repaint();
              sendGroup();
              break;
            }
            default: break;
          }
        }
        public void keyReleased(int keyCode)
        {

        }
        public void keyRepeated(int keyCode)
        {
          int gameCode = getGameAction(keyCode);
          switch(gameCode)
          {
            case Canvas.UP: // next group num
            {
              if(groupNum < MAX_GROUPS) groupNum++;
              //sendGroup();
              groupNumChanged = true;
              repaint();
              break;
            }
            case Canvas.DOWN: // prev group num
            {
              if(groupNum > 0) groupNum--;
              //sendGroup();
              groupNumChanged = true;
              repaint();
              break;
            }
            default: break;
          }
        }

        // ** COMMANDS **
        public void commandAction(Command c, Displayable d)
        {
          if(c == cmdExit) { remCap.exit(); }
        }

      ////////////////////////////////////////////////////////////////////////////////
      // DRAWING
      ////////////////////////////////////////////////////////////////////////////////

        // -- paint --
        // -----------
        // All of the drawing for this class
        protected void paint(Graphics g)
        {
          // background
          if(groupNumChanged) g.setColor(0, 0, 0); // white text, black background
          else g.setColor(255, 255, 255);

          g.fillRect(0, 0, dwidth, dheight);

          // text
          if(groupNumChanged) g.setColor(255, 255, 255); // white text, black
      background
          else g.setColor(0, 0, 0);

          // group num
          g.setFont(groupFont);
          g.drawString(Integer.toString(groupNum), dcenterx, dcentery,
      g.BASELINE|g.HCENTER);

          // paused
          if(isPaused)
          {

            gafter Neal Gafter (Inactive)
            gmanwanisunw Girish Manwani (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: