|
From: SourceForge.net <no...@so...> - 2008-03-27 03:48:28
|
Bugs item #1926776, was opened at 2008-03-26 22:48 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=438935&aid=1926776&group_id=44253 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: DynamicJava Group: None Status: Open Resolution: None Priority: 9 Private: No Submitted By: Mathias Ricken (mgricken) Assigned to: Dan Smith (dlsmith) Summary: DynamicJava throws NullPointerException Initial Comment: At the end of the following interactions, DynamicJava throws a NullPointerException (see Stack Trace 1 below), even though it should print "null". Example 1: Welcome to DrJava. Working directory is /Users/Shared/drjava > import java.lang.ref.WeakReference; > WeakReference<String> wref > String s = "foo" > wref = new WeakReference<String>(s); > wref.get() "foo" > wref.clear() > wref.get() After clearing the weak reference, WeakReference.get() returns null. The return value of wref.get() is null; therefore, the second call to wref.get(), the one that throws the exception, should produce the same result as Welcome to DrJava. Working directory is /Users/Shared/drjava > null null Furthermore, I have noticed additional strange behavior after wref.clear(). For example: Example 2: Welcome to DrJava. Working directory is /Users/Shared/drjava > import java.lang.ref.WeakReference; > WeakReference<String> wref > String s = "foo" > wref = new WeakReference<String>(s) java.lang.ref.WeakReference@8523a0 > wref.get() "foo" > wref.clear() > Boolean boo = new Boolean(wref.get()==null) > boo Static Error: Undefined name 'boo' Why is 'boo' not recognized? When I ran the example 2 on a "fresh" DrJava, one that had not experienced the NullPointerException from example 1, I got another NullPointerException, the one shown in Stack Trace 2 below. Apparently "Reset Interactions Pane" is not enough to completely reset DynamicJava; the InteractionsPane never recuperated from the NullPointerException in example 1. Another example: Example 3: Welcome to DrJava. Working directory is /Users/Shared/drjava > import java.lang.ref.WeakReference; > WeakReference<String> wref > String s = "foo" > wref = new WeakReference<String>(s) java.lang.ref.WeakReference@8523a0 > wref.get() "foo" > wref.clear() > (wref.get()==null) > Why does the comparison not produce any output? It should produce > (wref.get()==null) true > Again, if I ran this on a "fresh" DrJava, I got the NullPointerException shown in Stack Trace 2. A final example: Example 4: Welcome to DrJava. Working directory is /Users/mgricken/Documents/Java > import java.lang.ref.WeakReference; > String s = "foo" > WeakReference<String> wref = new WeakReference<String>(s) > wref.get() "foo" > wref.clear() > boolean b = true > b true > b = (wref.get()!=null) > b true > The value of b did not change. The result at the end, of course, should have been > b = (wref.get()!=null) > b false > Again, if run on a "fresh" DrJava, I got the NullPointerException in Stack Trace 2. ------------------------------ Stack Trace 1: edu.rice.cs.util.UnexpectedException: java.lang.NullPointerException at edu.rice.cs.drjava.model.repl.newjvm.MainJVM$ResultHandler.forUnexpectedException(MainJVM.java:790) at edu.rice.cs.drjava.model.repl.newjvm.MainJVM$ResultHandler.forUnexpectedException(MainJVM.java:744) at edu.rice.cs.drjava.model.repl.newjvm.InterpretResult$UnexpectedExceptionResult.apply(InterpretResult.java:95) at edu.rice.cs.drjava.model.repl.newjvm.MainJVM.interpret(MainJVM.java:190) at edu.rice.cs.drjava.model.repl.RMIInteractionsModel._interpret(RMIInteractionsModel.java:72) at edu.rice.cs.drjava.model.repl.InteractionsModel.interpret(InteractionsModel.java:181) at edu.rice.cs.drjava.model.repl.InteractionsModel.interpretCurrentInteraction(InteractionsModel.java:164) at edu.rice.cs.drjava.ui.InteractionsController$10$1.run(InteractionsController.java:455) Caused by: java.lang.NullPointerException at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.value(ExpressionEvaluator.java:44) at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.visit(StatementEvaluator.java:103) at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.visit(StatementEvaluator.java:29) at koala.dynamicjava.tree.ExpressionStatement.acceptVisitor(ExpressionStatement.java:106) at edu.rice.cs.dynamicjava.interpreter.Interpreter.evaluate(Interpreter.java:87) at edu.rice.cs.dynamicjava.interpreter.Interpreter.interpret(Interpreter.java:48) at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:253) at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:229) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) at sun.rmi.transport.Transport$1.run(Transport.java:153) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:149) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707) at java.lang.Thread.run(Thread.java:613) Caused by: java.lang.NullPointerException at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.value(ExpressionEvaluator.java:44) at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.visit(StatementEvaluator.java:103) at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.visit(StatementEvaluator.java:29) at koala.dynamicjava.tree.ExpressionStatement.acceptVisitor(ExpressionStatement.java:106) at edu.rice.cs.dynamicjava.interpreter.Interpreter.evaluate(Interpreter.java:87) at edu.rice.cs.dynamicjava.interpreter.Interpreter.interpret(Interpreter.java:48) at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:253) at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:229) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) at sun.rmi.transport.Transport$1.run(Transport.java:153) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:149) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707) at java.lang.Thread.run(Thread.java:613) ------------------------------ Stack Trace 2: edu.rice.cs.util.UnexpectedException: java.lang.NullPointerException at edu.rice.cs.drjava.model.repl.newjvm.MainJVM$ResultHandler.forUnexpectedException(MainJVM.java:787) at edu.rice.cs.drjava.model.repl.newjvm.MainJVM$ResultHandler.forUnexpectedException(MainJVM.java:741) at edu.rice.cs.drjava.model.repl.newjvm.InterpretResult$UnexpectedExceptionResult.apply(InterpretResult.java:95) at edu.rice.cs.drjava.model.repl.newjvm.MainJVM.interpret(MainJVM.java:190) at edu.rice.cs.drjava.model.repl.RMIInteractionsModel._interpret(RMIInteractionsModel.java:73) at edu.rice.cs.drjava.model.repl.InteractionsModel.interpret(InteractionsModel.java:212) at edu.rice.cs.drjava.model.repl.InteractionsModel.interpretCurrentInteraction(InteractionsModel.java:193) at edu.rice.cs.drjava.ui.InteractionsController$10$1.run(InteractionsController.java:459) Caused by: java.lang.NullPointerException at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.value(ExpressionEvaluator.java:44) at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.visit(ExpressionEvaluator.java:227) at koala.dynamicjava.tree.EqualExpression.acceptVisitor(EqualExpression.java:72) at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.value(ExpressionEvaluator.java:39) at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.visit(StatementEvaluator.java:103) at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.visit(StatementEvaluator.java:29) at koala.dynamicjava.tree.ExpressionStatement.acceptVisitor(ExpressionStatement.java:106) at edu.rice.cs.dynamicjava.interpreter.Interpreter.evaluate(Interpreter.java:87) at edu.rice.cs.dynamicjava.interpreter.Interpreter.interpret(Interpreter.java:48) at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:250) at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:227) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) at sun.rmi.transport.Transport$1.run(Transport.java:153) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:149) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707) at java.lang.Thread.run(Thread.java:613) Caused by: java.lang.NullPointerException at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.value(ExpressionEvaluator.java:44) at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.visit(ExpressionEvaluator.java:227) at koala.dynamicjava.tree.EqualExpression.acceptVisitor(EqualExpression.java:72) at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.value(ExpressionEvaluator.java:39) at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.visit(StatementEvaluator.java:103) at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.visit(StatementEvaluator.java:29) at koala.dynamicjava.tree.ExpressionStatement.acceptVisitor(ExpressionStatement.java:106) at edu.rice.cs.dynamicjava.interpreter.Interpreter.evaluate(Interpreter.java:87) at edu.rice.cs.dynamicjava.interpreter.Interpreter.interpret(Interpreter.java:48) at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:250) at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:227) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) at sun.rmi.transport.Transport$1.run(Transport.java:153) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:149) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707) at java.lang.Thread.run(Thread.java:613) System Properties: DrJava Version 20080327-0151 DrJava Revision 4418 drjava.debug.port = 55787 java.runtime.name = Java(TM) 2 Runtime Environment, Standard Edition sun.boot.library.path = /Applications/Dev/YourKit Java Profiler 6.0.12.app/bin/mac:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries java.vm.version = 1.5.0_13-121 awt.nativeDoubleBuffering = true gopherProxySet = false java.vm.vendor = "Apple Computer, Inc." java.vendor.url = http://apple.com/ path.separator = : java.vm.name = Java HotSpot(TM) Client VM file.encoding.pkg = sun.io sun.java.launcher = SUN_STANDARD user.country = US sun.os.patch.level = unknown java.vm.specification.name = Java Virtual Machine Specification user.dir = <anonymized user.dir> java.runtime.version = 1.5.0_13-b05-241 java.awt.graphicsenv = apple.awt.CGraphicsEnvironment java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/endorsed os.arch = i386 java.io.tmpdir = /tmp line.separator = "\u000a" java.vm.specification.vendor = Sun Microsystems Inc. os.name = Mac OS X apple.laf.useScreenMenuBar = true sun.jnu.encoding = MacRoman java.library.path = /Applications/Dev/YourKit Java Profiler 6.0.12.app/bin/mac:.:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java java.specification.name = Java Platform API Specification java.class.version = 49.0 sun.management.compiler = HotSpot Client Compiler os.version = 10.4.11 user.home = <anonymized user.home> user.timezone = America/Chicago java.awt.printerjob = apple.awt.CPrinterJob file.encoding = MacRoman java.specification.version = 1.5 java.class.path = drjava-15.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar user.name = <anonymized user.name> apple.awt.graphics.UseQuartz = true java.vm.specification.version = 1.0 java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home sun.arch.data.model = 32 user.language = en java.specification.vendor = Sun Microsystems Inc. awt.toolkit = apple.awt.CToolkit java.vm.info = mixed mode, sharing java.version = 1.5.0_13 java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/charsets.jar java.vendor = Apple Computer, Inc. file.separator = / java.vendor.url.bug = http://developer.apple.com/java/ sun.io.unicode.encoding = UnicodeLittle sun.cpu.endian = little java.rmi.server.hostname = 127.0.0.1 mrj.version = 1040.1.5.0_13-241 sun.awt.exception.handler = edu.rice.cs.drjava.ui.DrJavaErrorHandler sun.cpu.isalist = #DrJava configuration file #Wed Mar 26 22:33:23 CDT 2008 font.line.numbers = Monaco-10 lineenum.enabled = true key.delete.next = shift DELETE key.delete.previous = shift BACK_SPACE find.replace.match.case = false interactions.exit.prompt = false open.folder.recursive = true recent.files = [<anonymized user.home>/Documents/Java/WeakRef.java,<anonymized user.home>/Documents/Java/Tiny.java,<anonymized user.dir>/src/edu/rice/cs/drjava/config/EagerFileProperty.java,<anonymized user.dir>/src/edu/rice/cs/drjava/CodeStatus.java,<anonymized user.dir>/src/edu/rice/cs/drjava/Version.java] recent.projects = [<anonymized user.dir>.pjt,<anonymized user.home>/Documents/Semester 8 Spring 2008/COMP 312/hw1/solution/hw1sol.pjt,<anonymized user.home>/Documents/Research/Concutest/MSThesis.defense/RCSC-20071004/listings/rscs-20071004.pjt,<anonymized user.home>/Documents/Semester 8 Spring 2008/COMP 312/hw1/assignment/hw1.pjt] window.height = 776 window.width = 1276 window.x = 0 window.y = 22 doc.list.width = 277 last.dir = <anonymized user.home>/Documents/Java/WeakRef.java last.interactions.dir = <anonymized user.home>/Documents/Java master.jvm.xmx = 512 dialog.clipboard.history.state = 425 400 425 210 dialog.completeword.scan.class.files = true dialog.completeword.javaapi = true find.replace.focus.in.defpane = true Used memory: about 12.61 megabytes Free memory: about 767.16 kilobytes Total memory: about 13.36 megabytes Total memory can expand to: about 508.06 megabytes ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=438935&aid=1926776&group_id=44253 |