Menu

#692 QuestionCurrLineStartsWithSkipComments exception

3: Ugly
open
nobody
5
2008-08-05
2008-08-05
Dan Smith
No

Got this unexpected error when editing the attached file (from the DynamicJava sources) using r4592. I was able to reliably reproduce the exception by inserting a newline at the end of line 736 (between these two lines:

if (expected instanceof ArrayType) { elementType = ((ArrayType) expected).ofType(); }
else { throw new RuntimeException("Invalid expected type for array initializer

). (I would then undo to get back to the original text.) However, after saving the file, the bug is no longer reproducible.

Stack trace follows:

edu.rice.cs.util.UnexpectedException: java.lang.RuntimeException: Bug in QuestionCurrLineStartsWithSkipComments
at edu.rice.cs.drjava.model.definitions.indent.QuestionCurrLineStartsWithSkipComments.applyRule(QuestionCurrLineStartsWithSkipComments.java:123)
at edu.rice.cs.drjava.model.definitions.indent.IndentRuleQuestion.indentLine(IndentRuleQuestion.java:90)
at edu.rice.cs.drjava.model.definitions.indent.IndentRuleQuestion.indentLine(IndentRuleQuestion.java:92)
at edu.rice.cs.drjava.model.definitions.indent.IndentRuleQuestion.indentLine(IndentRuleQuestion.java:96)
at edu.rice.cs.drjava.model.definitions.indent.IndentRuleQuestion.indentLine(IndentRuleQuestion.java:96)
at edu.rice.cs.drjava.model.definitions.indent.IndentRuleQuestion.indentLine(IndentRuleQuestion.java:96)
at edu.rice.cs.drjava.model.definitions.indent.Indenter.indent(Indenter.java:158)
at edu.rice.cs.drjava.model.AbstractDJDocument._indentLine(AbstractDJDocument.java:1079)
at edu.rice.cs.drjava.model.AbstractDJDocument.indentLines(AbstractDJDocument.java:1023)
at edu.rice.cs.drjava.model.AbstractGlobalModel$ConcreteOpenDefDoc.indentLines(AbstractGlobalModel.java:3501)
at edu.rice.cs.drjava.ui.DefinitionsPane.indentLines(DefinitionsPane.java:1139)
at edu.rice.cs.drjava.ui.AbstractDJPane.indent(AbstractDJPane.java:212)
at edu.rice.cs.drjava.ui.DefinitionsPane$IndentKeyAction.actionPerformed(DefinitionsPane.java:403)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1641)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2849)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2884)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2812)
at edu.rice.cs.drjava.ui.DefinitionsPane.processKeyEvent(DefinitionsPane.java:612)
at java.awt.Component.processEvent(Component.java:5903)
at java.awt.Container.processEvent(Container.java:2102)
at java.awt.Component.dispatchEventImpl(Component.java:4497)
at java.awt.Container.dispatchEventImpl(Container.java:2160)
at java.awt.Component.dispatchEvent(Component.java:4327)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:697)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:962)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:834)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:661)
at java.awt.Component.dispatchEventImpl(Component.java:4369)
at java.awt.Container.dispatchEventImpl(Container.java:2160)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4327)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:300)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:210)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:195)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:187)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: java.lang.RuntimeException: Bug in QuestionCurrLineStartsWithSkipComments
... 39 more

Caused by:
java.lang.RuntimeException: Bug in QuestionCurrLineStartsWithSkipComments
at edu.rice.cs.drjava.model.definitions.indent.QuestionCurrLineStartsWithSkipComments.applyRule(QuestionCurrLineStartsWithSkipComments.java:123)
at edu.rice.cs.drjava.model.definitions.indent.IndentRuleQuestion.indentLine(IndentRuleQuestion.java:90)
at edu.rice.cs.drjava.model.definitions.indent.IndentRuleQuestion.indentLine(IndentRuleQuestion.java:92)
at edu.rice.cs.drjava.model.definitions.indent.IndentRuleQuestion.indentLine(IndentRuleQuestion.java:96)
at edu.rice.cs.drjava.model.definitions.indent.IndentRuleQuestion.indentLine(IndentRuleQuestion.java:96)
at edu.rice.cs.drjava.model.definitions.indent.IndentRuleQuestion.indentLine(IndentRuleQuestion.java:96)
at edu.rice.cs.drjava.model.definitions.indent.Indenter.indent(Indenter.java:158)
at edu.rice.cs.drjava.model.AbstractDJDocument._indentLine(AbstractDJDocument.java:1079)
at edu.rice.cs.drjava.model.AbstractDJDocument.indentLines(AbstractDJDocument.java:1023)
at edu.rice.cs.drjava.model.AbstractGlobalModel$ConcreteOpenDefDoc.indentLines(AbstractGlobalModel.java:3501)
at edu.rice.cs.drjava.ui.DefinitionsPane.indentLines(DefinitionsPane.java:1139)
at edu.rice.cs.drjava.ui.AbstractDJPane.indent(AbstractDJPane.java:212)
at edu.rice.cs.drjava.ui.DefinitionsPane$IndentKeyAction.actionPerformed(DefinitionsPane.java:403)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1641)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2849)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2884)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2812)
at edu.rice.cs.drjava.ui.DefinitionsPane.processKeyEvent(DefinitionsPane.java:612)
at java.awt.Component.processEvent(Component.java:5903)
at java.awt.Container.processEvent(Container.java:2102)
at java.awt.Component.dispatchEventImpl(Component.java:4497)
at java.awt.Container.dispatchEventImpl(Container.java:2160)
at java.awt.Component.dispatchEvent(Component.java:4327)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:697)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:962)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:834)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:661)
at java.awt.Component.dispatchEventImpl(Component.java:4369)
at java.awt.Container.dispatchEventImpl(Container.java:2160)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4327)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:300)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:210)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:200)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:195)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:187)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

System Properties:
DrJava Version drjava-20080717-r4592
DrJava Build Time 20080717-2202

drjava.debug.port = 52127
java.runtime.name = Java(TM) SE Runtime Environment
sun.boot.library.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Libraries
java.vm.version = 1.6.0_05-b13-52
awt.nativeDoubleBuffering = true
gopherProxySet = false
java.vm.vendor = Apple Inc.
java.vendor.url = http://www.apple.com/
path.separator = :
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg = sun.io
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.6.0_05-b13-120
java.awt.graphicsenv = apple.awt.CGraphicsEnvironment
java.endorsed.dirs = /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/endorsed
os.arch = x86_64
edu.rice.cs.drjava.icon = <anonymized user.dir>/DrJava-20080717.app/Contents/Resources/DrJava.icns
apple.awt.graphics.UseOpenGL = false
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 = <anonymized user.dir>/DrJava-20080717.app/Contents/Resources/Java:/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Resources:.:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
java.specification.name = Java Platform API Specification
java.class.version = 50.0
sun.management.compiler = HotSpot 64-Bit Server Compiler
os.version = 10.5.4
http.nonProxyHosts = local|*.local|169.254/16|*.169.254/16
user.home = <anonymized user.home>
user.timezone = America/Denver
java.awt.printerjob = apple.awt.CPrinterJob
file.encoding = MacRoman
java.specification.version = 1.6
java.class.path = <anonymized user.dir>/DrJava-20080717.app/Contents/Resources/Java/drjava.jar
user.name = <anonymized user.name>
apple.awt.graphics.UseQuartz = false
java.vm.specification.version = 1.0
java.home = /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
sun.arch.data.model = 64
user.language = en
java.specification.vendor = Sun Microsystems Inc.
awt.toolkit = apple.awt.CToolkit
java.vm.info = mixed mode
java.version = 1.6.0_05
java.ext.dirs = /Library/Java/Extensions:/System/Library/Java/Extensions:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/ext
sun.boot.class.path = /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/charsets.jar:/System/Library/PrivateFrameworks/JavaApplicationLauncher.framework/Resources/LauncherSupport.jar
java.vendor = Apple Inc.
file.separator = /
java.vendor.url.bug = http://bugreport.apple.com/
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
java.rmi.server.hostname = 127.0.0.1
mrj.version = 1040.1.6.0_05-120
socksNonProxyHosts = local|*.local|169.254/16|*.169.254/16
ftp.nonProxyHosts = local|*.local|169.254/16|*.169.254/16
sun.awt.exception.handler = edu.rice.cs.drjava.ui.DrJavaErrorHandler
sun.cpu.isalist =

#DrJava configuration file
#Tue Aug 05 12:03:33 MDT 2008
extra.classpath = <anonymized user.home>/Code/dj/drjava/lib/plt.jar
key.open.project = command O
key.find.next = command G
key.find.prev = command shift G
key.goto.line = command L
key.goto.file = command shift L
key.uncomment.lines = command option SLASH
key.previous.document = command UP
key.next.document = command DOWN
key.browse.forward = <none>
key.browse.back = <none>
key.compile = shift F4
key.compile.all = F4
key.begin.document = <none>
key.begin.line = command LEFT
key.previous.word = option LEFT
key.delete.next = shift DELETE
key.delete.previous = shift BACK_SPACE
key.end.document = <none>
key.end.line = command RIGHT
key.next.word = option RIGHT
key.follow.file = <none>
find.replace.match.case = false
find.replace.all.documents = true
interactions.exit.prompt = false
quit.prompt = false
interactions.reset.prompt = false
save.before.compile = true
open.folder.recursive = true
recent.files = [<anonymized user.home>/Code/safe/dynamicjava/src/koala/dynamicjava/parser/grammar.jj,<anonymized user.home>/Code/safe/dynamicjava/src/koala/dynamicjava/parser/impl/Parser.java,<anonymized user.home>/Code/misc/DebugTest.java,<anonymized user.home>/Code/safe/astgen/src/edu/rice/cs/astgen/UpdateVisitorGenerator.java,<anonymized user.home>/Code/safe/astgen/src/edu/rice/cs/astgen/DepthFirstVoidVisitorGenerator.java]
recent.projects = [<anonymized user.home>/Code/dj/dynamicjava.xml,<anonymized user.home>/Code/ast/ast.xml,<anonymized user.home>/Code/jlbench/jlbench.xml,<anonymized user.home>/Code/dj/plt.xml]
window.height = 776
window.width = 1231
window.x = 0
window.y = 22
window.state = 6
doc.list.width = 331
last.dir = <anonymized user.home>/Code/safe/dynamicjava/src/edu/rice/cs/dynamicjava/interpreter
last.interactions.dir = <anonymized user.home>/Code/dj
slave.jvm.xmx = 256
dialog.clipboard.history.state = 406 400 406 210
tabbedpanes.state = 640 400 700 400
dialog.drjava.error.popup.enabled = false
new.version.notification = all versions
new.version.notification.last = 1217879006975
drjava.survey.notification.last = 1217882625616
drjava.survey.result.last = http://www.drjava.org/submit-usage.php?rev=4592&os.name=Mac%20OS%20X&os.version=10.5.4&java.version=1.6.0_05&java.vendor=Apple%20Inc.

Used memory: about 40.27 megabytes
Free memory: about 11.22 megabytes
Total memory: about 51.49 megabytes
Total memory can expand to: about 80.50 megabytes

Discussion

  • Dan Smith

    Dan Smith - 2008-08-05

    Java source file

     
  • Dan Smith

    Dan Smith - 2008-08-05

    Logged In: YES
    user_id=1060117
    Originator: YES

    Just got the bug again in a different file, which makes me think it's not that obscure.

     
  • Mathias Ricken

    Mathias Ricken - 2008-08-05

    Logged In: YES
    user_id=1075744
    Originator: NO

    I just remembered that I saw and reported that bug once, after the identing system was changed.

    [ 2018136 ] Bug in QuestionCurrLineStartsWithSkipComments
    https://sourceforge.net/tracker/?func=detail&atid=438935&aid=2018136&group_id=44253

    I could never reproduce the problem, and my test file was very large, so I'm closing the original bug report as a duplicate, in favor of this more helpful report.

     
  • Dan Smith

    Dan Smith - 2008-08-28

    Logged In: YES
    user_id=1060117
    Originator: YES

    The try/catch the generated this error has been modified, so that the underlying exception will be propagated. Hopefully, if this occurs again, that will help to pinpoint the problem.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.