lmntal / lavit

LMNtal IDE

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

lavitで2度コンパイルするとlavitが固まってしまう

m-nozo opened this issue · comments

LaViTで同じファイルを2度コンパイルするとエラーを吐いてLaViTが固まってしまう(動作を受け付けない)現象が起きました。

動作環境
・LaViT Version 2.8.7
・Windows8

エラー内容
java.lang.ClassCastException: javax.swing.text.DefaultStyledDocument cannot be cast to

lavit.multiedit.coloring.LmnDocument
at lavit.multiedit.coloring.LmnTextPane.getLMNDocument(Unknown Source)
at lavit.multiedit.coloring.LmnTextPane$1.caretUpdate(Unknown Source)
at javax.swing.text.JTextComponent.fireCaretUpdate(Unknown Source)
at javax.swing.text.JTextComponent$MutableCaretEvent.fire(Unknown Source)
at javax.swing.text.JTextComponent$MutableCaretEvent.stateChanged(Unknown Source)
at javax.swing.text.DefaultCaret.fireStateChanged(Unknown Source)
at javax.swing.text.DefaultCaret.changeCaretPosition(Unknown Source)
at javax.swing.text.DefaultCaret.handleSetDot(Unknown Source)
at javax.swing.text.DefaultCaret.setDot(Unknown Source)
at javax.swing.text.DefaultCaret.setDot(Unknown Source)
at javax.swing.text.DefaultCaret$Handler.propertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.fire(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)
at java.awt.Component.firePropertyChange(Unknown Source)
at javax.swing.text.JTextComponent.setDocument(Unknown Source)
at javax.swing.JTextPane.setDocument(Unknown Source)
at lavit.multiedit.coloring.LmnTextPane.setText(Unknown Source)
at lavit.multiedit.EditorPage.setText(Unknown Source)
at lavit.editor.EditorPanel.createPage(Unknown Source)
at lavit.editor.EditorPanel.openFile(Unknown Source)
at lavit.editor.EditorButtonPanel$1.processFinished(Unknown Source)
at lavit.runner.ProcessTask.dispatchProcessFinishEvent(Unknown Source)
at lavit.runner.ProcessTask.access$600(Unknown Source)
at lavit.runner.ProcessTask$MonitorThread.run(Unknown Source)

これは私も気づいています。単に2回コンパイルボタンを押してもたぶん
エラーは起きないですが、以下の操作をすると上記のエラーが出ます。
(1) あるファイルをコンパイルボタンでコンパイル
(2) できた .il タブに現れる中間命令のどこかをマウスクリック
(または編集)
(3) 再度元の .lmn ファイルを再度コンパイル
これで LaViT の全部ではないけど関連箇所が操作不能になります。

(メールからコメントを送ったら文字化けしたので消去しました)

#14 でたぶん治ったためcloseします。(誰かもし同じエラーが出ることを発見したらre-openしてください)