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


Reply via email to