Robert Schuster wrote:
+
+ // Throwing a BadLocationException is an observed behavior of the RI.
+ if (rect.isEmpty())
+ throw new BadLocationException("Unable to calculate view coordinates "
+ + "when allocation area is empty.", 5);
But now the Protege crashes with that new exception after attempt to
create the simpliest possible project from the Protege files. The
Protege works if we return the passed rect back as a result (empty to
empty). If we do want to throw an exception there, something else must
be changed, as Protege does not hang with Sun's library. The stack trace
may be useful because from it it is obvious that methods are executed.
java.lang.AssertionError: Unexpected bad location
at javax.swing.plaf.basic.BasicTextUI.damageRange(BasicTextUI.java:1104)
at javax.swing.plaf.basic.BasicTextUI.damageRange(BasicTextUI.java:998)
at
javax.swing.text.DefaultHighlighter.addHighlight(DefaultHighlighter.java:264)
at javax.swing.text.DefaultCaret.clearHighlight(DefaultCaret.java:725)
at javax.swing.text.DefaultCaret.setDotImpl(DefaultCaret.java:1054)
at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:1041)
at
javax.swing.text.DefaultCaret$DocumentHandler.removeUpdate(DefaultCaret.java:187)
at
javax.swing.text.AbstractDocument.fireRemoveUpdate(AbstractDocument.java:318)
at
javax.swing.text.AbstractDocument.removeImpl(AbstractDocument.java:741)
at
javax.swing.text.AbstractDocument.replaceImpl(AbstractDocument.java:781)
at javax.swing.text.AbstractDocument.replace(AbstractDocument.java:774)
at javax.swing.text.JTextComponent.setText(JTextComponent.java:1184)
at
edu.stanford.smi.protege.util.ComponentFactory$10.setText(ComponentFactory.java:616)
at
edu.stanford.smi.protege.widget.TextComponentWidget.setText(TextComponentWidget.java:181)
at
edu.stanford.smi.protege.widget.TextComponentWidget.setValues(TextComponentWidget.java:209)
at
edu.stanford.smi.protege.widget.AbstractSlotWidget.setWidgetValues(AbstractSlotWidget.java:500)
at
edu.stanford.smi.protege.widget.AbstractSlotWidget.loadValues(AbstractSlotWidget.java:337)
at
edu.stanford.smi.protege.widget.AbstractSlotWidget.setInstance(AbstractSlotWidget.java:392)
at
edu.stanford.smi.protege.widget.TextComponentWidget.setInstance(TextComponentWidget.java:200)
at
edu.stanford.smi.protege.widget.FormWidget.propagateSetInstanceToWidgets(FormWidget.java:800)
at
edu.stanford.smi.protege.widget.FormWidget.setInstance(FormWidget.java:1015)
at
edu.stanford.smi.protege.model.Project.createRuntimeClsWidget(Project.java:435)
at
edu.stanford.smi.protege.ui.InstanceDisplay.getWidget(InstanceDisplay.java:231)
at
edu.stanford.smi.protege.ui.InstanceDisplay.addRuntimeWidgets(InstanceDisplay.java:205)
at
edu.stanford.smi.protege.ui.InstanceDisplay.setInstance(InstanceDisplay.java:670)
at
edu.stanford.smi.protege.ui.InstanceDisplay.setInstance(InstanceDisplay.java:654)
at
edu.stanford.smi.protege.widget.ClsesTab.transmitSelection(ClsesTab.java:143)
at
edu.stanford.smi.protege.widget.ClsesTab.setInitialSelection(ClsesTab.java:119)
at edu.stanford.smi.protege.widget.ClsesTab.initialize(ClsesTab.java:106)
at
edu.stanford.smi.protege.widget.WidgetUtilities.createTabWidget(WidgetUtilities.java:94)
at edu.stanford.smi.protege.ui.ProjectView.addTab(ProjectView.java:159)
at
edu.stanford.smi.protege.ui.ProjectView.createTabbedPane(ProjectView.java:261)
at edu.stanford.smi.protege.ui.ProjectView.<init>(ProjectView.java:152)
at
edu.stanford.smi.protege.ui.ProjectManager.displayCurrentProject(ProjectManager.java:282)
at
edu.stanford.smi.protege.ui.ProjectManager.displayCurrentProject(ProjectManager.java:274)
at
edu.stanford.smi.protege.ui.ProjectManager.createNewProjectRequest(ProjectManager.java:546)
at
edu.stanford.smi.protege.ui.WelcomeDialog.newButton_actionPerformed(WelcomeDialog.java:298)
at
edu.stanford.smi.protege.ui.WelcomeDialog$2.actionPerformed(WelcomeDialog.java:138)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1097)
at javax.swing.AbstractButton$1.actionPerformed(AbstractButton.java:1907)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:298)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:403)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:187)
at
java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:344)
at
java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:344)
at java.awt.Component.processMouseEvent(Component.java:3103)
at java.awt.Component.processEvent(Component.java:2964)
at java.awt.Container.processEvent(Container.java:914)
at java.awt.Component.dispatchEventImpl(Component.java:5031)
at java.awt.Container.dispatchEventImpl(Container.java:1741)
at java.awt.Component.dispatchEvent(Component.java:2322)
at
java.awt.LightweightDispatcher.handleMouseEvent(LightweightDispatcher.java:197)
at
java.awt.LightweightDispatcher.dispatchEvent(LightweightDispatcher.java:116)
at java.awt.Container.dispatchEventImpl(Container.java:1732)
at java.awt.Window.dispatchEventImpl(Window.java:642)
at java.awt.Component.dispatchEvent(Component.java:2322)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:474)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:75)
Caused by: javax.swing.text.BadLocationException: Unable to calculate
view coordinates when allocation area is empty.
at
javax.swing.text.WrappedPlainView$WrappedLine.modelToView(WrappedPlainView.java:549)
at javax.swing.text.CompositeView.modelToView(CompositeView.java:232)
at javax.swing.text.BoxView.modelToView(BoxView.java:867)
at
javax.swing.plaf.basic.BasicTextUI$RootView.modelToView(BasicTextUI.java:286)
at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1204)
at javax.swing.plaf.basic.BasicTextUI.damageRange(BasicTextUI.java:1029)
...57 more