Duplicate :
|
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) {