Welcome to the Java Programming Forums


The professional, friendly Java community. 21,500 members and growing!


The Java Programming Forums are a community of Java programmers from all around the World. Our members have a wide range of skills and they all have one thing in common: A passion to learn and code Java. We invite beginner Java programmers right through to Java professionals to post here and share your knowledge. Become a part of the community, help others, expand your knowledge of Java and enjoy talking with like minded people. Registration is quick and best of all free. We look forward to meeting you.


>> REGISTER NOW TO START POSTING


Members have full access to the forums. Advertisements are removed for registered users.

Results 1 to 13 of 13

Thread: Syntax Highlighting errors and weirdness?

  1. #1
    Member
    Join Date
    Feb 2013
    Posts
    73
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Default Syntax Highlighting errors and weirdness?

    Hey guys. So, I am just trying to make some simple syntax highlighting WITHOUT my library. I am using a document:
    public class S80Document extends DefaultStyledDocument
    {
    	private static final long serialVersionUID = 1L;
     
    	private ArrayList<String> keywords;
    	private MutableAttributeSet normal;
    	private MutableAttributeSet keyword;
    	private MutableAttributeSet number;
     
    	public S80Document()
    	{
    		keywords = new ArrayList<String>();
    		for(S80Instruction s : S80Instruction.values())
    		{
    			if(!keywords.contains(s.getName()))
    				keywords.add(s.getName());
    		}
    		normal = new SimpleAttributeSet();
    		keyword = new SimpleAttributeSet();
    		number = new SimpleAttributeSet();
    		StyleConstants.setForeground(normal, Color.BLACK);
    		StyleConstants.setForeground(keyword, Color.BLUE);
    		StyleConstants.setForeground(number, Color.RED);
    	}
     
    	public void insertString(int offset, String str, AttributeSet a) throws BadLocationException
    	{
    		super.insertString(offset, str, a);
    		processChangedLines();
    	}
     
    	public void remove(int offset, int length) throws BadLocationException
    	{
    		super.remove(offset, length);
    		processChangedLines();
    	}
     
    	private void processChangedLines() throws BadLocationException
    	{
    		String[] lines = getText(0, getLength()).split("\n");
    		int offs = 0;
    		for(int l = 0; l < lines.length; l++)
    		{
    			String line = lines[l];
    			if(line.length() >= 3)
    			{
    				if(isKeyword(line.substring(0, 3)))
    				{
    					this.setCharacterAttributes(offs, 3, keyword, true);
    				}
    				if(line.length() >= 5)
    				{
    					if(line.charAt(4) == '#' || line.charAt(4) == '*')
    					{
    						this.setCharacterAttributes(offs+4, line.length()-(offs+4), number, true);
    					}
    				}
    			}
    			else
    			{
    				this.setCharacterAttributes(offs, line.length(), normal, true);
    			}
    			offs += line.length()+1;
    		}
    	}
     
    	private boolean isKeyword(String token)
    	{
    		return keywords.contains(token);
    	}
    }

    It sort of works.. but there are tons of issues with it... If I type this:
    LDA #42
    That works perfectly. Then, a new line:
    LDX *
    as soon as I type the *, the * X and D all disappear. Further editing of the text gives this:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.CompositeView.replace(CompositeView.java:187)
    	at javax.swing.text.View.updateChildren(View.java:1116)
    	at javax.swing.text.View.removeUpdate(View.java:741)
    	at javax.swing.text.FlowView.removeUpdate(FlowView.java:269)
    	at javax.swing.text.View.forwardUpdateToView(View.java:1209)
    	at javax.swing.text.View.forwardUpdate(View.java:1182)
    	at javax.swing.text.BoxView.forwardUpdate(BoxView.java:240)
    	at javax.swing.text.View.removeUpdate(View.java:747)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.removeUpdate(BasicTextUI.java:1616)
    	at javax.swing.plaf.basic.BasicTextUI$UpdateHandler.removeUpdate(BasicTextUI.java:1876)
    	at javax.swing.text.AbstractDocument.fireRemoveUpdate(AbstractDocument.java:260)
    	at javax.swing.text.AbstractDocument.handleRemove(AbstractDocument.java:623)
    	at javax.swing.text.AbstractDocument.remove(AbstractDocument.java:591)
    	at com.sci.cpu.S80Document.remove(S80Document.java:45)
    	at javax.swing.text.DefaultEditorKit$DeletePrevCharAction.actionPerformed(DefaultEditorKit.java:1071)
    	at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1661)
    	at javax.swing.JComponent.processKeyBinding(JComponent.java:2870)
    	at javax.swing.JComponent.processKeyBindings(JComponent.java:2917)
    	at javax.swing.JComponent.processKeyEvent(JComponent.java:2833)
    	at java.awt.Component.processEvent(Component.java:6282)
    	at java.awt.Container.processEvent(Container.java:2229)
    	at java.awt.Component.dispatchEventImpl(Component.java:4861)
    	at java.awt.Container.dispatchEventImpl(Container.java:2287)
    	at java.awt.Component.dispatchEvent(Component.java:4687)
    	at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1895)
    	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:762)
    	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1027)
    	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:899)
    	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:727)
    	at java.awt.Component.dispatchEventImpl(Component.java:4731)
    	at java.awt.Container.dispatchEventImpl(Container.java:2287)
    	at java.awt.Window.dispatchEventImpl(Window.java:2719)
    	at java.awt.Component.dispatchEvent(Component.java:4687)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    	at java.awt.EventQueue$4.run(EventQueue.java:702)
    	at java.awt.EventQueue$4.run(EventQueue.java:700)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.RepaintManager$2.run(RepaintManager.java:679)
    	at javax.swing.RepaintManager$2.run(RepaintManager.java:677)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:676)
    	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1650)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.RepaintManager$2.run(RepaintManager.java:679)
    	at javax.swing.RepaintManager$2.run(RepaintManager.java:677)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:676)
    	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1650)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1046)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1307)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.JViewport.validateView(JViewport.java:485)
    	at javax.swing.JViewport.scrollRectToVisible(JViewport.java:396)
    	at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3099)
    	at javax.swing.text.DefaultCaret.adjustVisibility(DefaultCaret.java:285)
    	at javax.swing.text.DefaultCaret.repaintNewCaret(DefaultCaret.java:1312)
    	at javax.swing.text.DefaultCaret$1.run(DefaultCaret.java:1286)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.ensureCurrentLayout(SynthTabbedPaneUI.java:740)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.paint(SynthTabbedPaneUI.java:443)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.update(SynthTabbedPaneUI.java:378)
    	at javax.swing.JComponent.paintComponent(JComponent.java:769)
    	at javax.swing.JComponent.paint(JComponent.java:1045)
    	at javax.swing.JComponent.paintChildren(JComponent.java:878)
    	at javax.swing.JComponent.paint(JComponent.java:1054)
    	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5212)
    	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
    	at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
    	at javax.swing.JComponent._paintImmediately(JComponent.java:5160)
    	at javax.swing.JComponent.paintImmediately(JComponent.java:4971)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
    	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
    	at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
    	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1651)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.ensureCurrentLayout(SynthTabbedPaneUI.java:740)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.paint(SynthTabbedPaneUI.java:443)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.update(SynthTabbedPaneUI.java:378)
    	at javax.swing.JComponent.paintComponent(JComponent.java:769)
    	at javax.swing.JComponent.paint(JComponent.java:1045)
    	at javax.swing.JComponent.paintChildren(JComponent.java:878)
    	at javax.swing.JComponent.paint(JComponent.java:1054)
    	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5212)
    	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
    	at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
    	at javax.swing.JComponent._paintImmediately(JComponent.java:5160)
    	at javax.swing.JComponent.paintImmediately(JComponent.java:4971)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
    	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
    	at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
    	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1651)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.ensureCurrentLayout(SynthTabbedPaneUI.java:740)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.paint(SynthTabbedPaneUI.java:443)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.update(SynthTabbedPaneUI.java:378)
    	at javax.swing.JComponent.paintComponent(JComponent.java:769)
    	at javax.swing.JComponent.paint(JComponent.java:1045)
    	at javax.swing.JComponent.paintChildren(JComponent.java:878)
    	at javax.swing.JComponent.paint(JComponent.java:1054)
    	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5212)
    	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
    	at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
    	at javax.swing.JComponent._paintImmediately(JComponent.java:5160)
    	at javax.swing.JComponent.paintImmediately(JComponent.java:4971)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
    	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
    	at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
    	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1651)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.ensureCurrentLayout(SynthTabbedPaneUI.java:740)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.paint(SynthTabbedPaneUI.java:443)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.update(SynthTabbedPaneUI.java:378)
    	at javax.swing.JComponent.paintComponent(JComponent.java:769)
    	at javax.swing.JComponent.paint(JComponent.java:1045)
    	at javax.swing.JComponent.paintChildren(JComponent.java:878)
    	at javax.swing.JComponent.paint(JComponent.java:1054)
    	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5212)
    	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
    	at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
    	at javax.swing.JComponent._paintImmediately(JComponent.java:5160)
    	at javax.swing.JComponent.paintImmediately(JComponent.java:4971)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
    	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
    	at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
    	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1651)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.ensureCurrentLayout(SynthTabbedPaneUI.java:740)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.paint(SynthTabbedPaneUI.java:443)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.update(SynthTabbedPaneUI.java:378)
    	at javax.swing.JComponent.paintComponent(JComponent.java:769)
    	at javax.swing.JComponent.paint(JComponent.java:1045)
    	at javax.swing.JComponent.paintChildren(JComponent.java:878)
    	at javax.swing.JComponent.paint(JComponent.java:1054)
    	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5212)
    	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
    	at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
    	at javax.swing.JComponent._paintImmediately(JComponent.java:5160)
    	at javax.swing.JComponent.paintImmediately(JComponent.java:4971)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
    	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
    	at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
    	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1651)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.ensureCurrentLayout(SynthTabbedPaneUI.java:740)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.paint(SynthTabbedPaneUI.java:443)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.update(SynthTabbedPaneUI.java:378)
    	at javax.swing.JComponent.paintComponent(JComponent.java:769)
    	at javax.swing.JComponent.paint(JComponent.java:1045)
    	at javax.swing.JComponent.paintChildren(JComponent.java:878)
    	at javax.swing.JComponent.paint(JComponent.java:1054)
    	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5212)
    	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
    	at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
    	at javax.swing.JComponent._paintImmediately(JComponent.java:5160)
    	at javax.swing.JComponent.paintImmediately(JComponent.java:4971)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
    	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
    	at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
    	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1651)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.ensureCurrentLayout(SynthTabbedPaneUI.java:740)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.paint(SynthTabbedPaneUI.java:443)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.update(SynthTabbedPaneUI.java:378)
    	at javax.swing.JComponent.paintComponent(JComponent.java:769)
    	at javax.swing.JComponent.paint(JComponent.java:1045)
    	at javax.swing.JComponent.paintChildren(JComponent.java:878)
    	at javax.swing.JComponent.paint(JComponent.java:1054)
    	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5212)
    	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
    	at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
    	at javax.swing.JComponent._paintImmediately(JComponent.java:5160)
    	at javax.swing.JComponent.paintImmediately(JComponent.java:4971)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
    	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
    	at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
    	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1651)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI.getPreferredSize(BasicTextUI.java:912)
    	at javax.swing.JComponent.getPreferredSize(JComponent.java:1651)
    	at javax.swing.JEditorPane.getPreferredSize(JEditorPane.java:1330)
    	at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:790)
    	at java.awt.Container.layout(Container.java:1503)
    	at java.awt.Container.doLayout(Container.java:1492)
    	at java.awt.Container.validateTree(Container.java:1688)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validateTree(Container.java:1697)
    	at java.awt.Container.validate(Container.java:1623)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.ensureCurrentLayout(SynthTabbedPaneUI.java:740)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.paint(SynthTabbedPaneUI.java:443)
    	at javax.swing.plaf.synth.SynthTabbedPaneUI.update(SynthTabbedPaneUI.java:378)
    	at javax.swing.JComponent.paintComponent(JComponent.java:769)
    	at javax.swing.JComponent.paint(JComponent.java:1045)
    	at javax.swing.JComponent.paintChildren(JComponent.java:878)
    	at javax.swing.JComponent.paint(JComponent.java:1054)
    	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5212)
    	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
    	at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
    	at javax.swing.JComponent._paintImmediately(JComponent.java:5160)
    	at javax.swing.JComponent.paintImmediately(JComponent.java:4971)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
    	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
    	at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
    	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1651)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at javax.swing.text.FlowView$LogicalView.getPreferredSpan(FlowView.java:732)
    	at javax.swing.text.FlowView.calculateMinorAxisRequirements(FlowView.java:233)
    	at javax.swing.text.ParagraphView.calculateMinorAxisRequirements(ParagraphView.java:724)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.getMinimumSpan(BoxView.java:568)
    	at javax.swing.text.BoxView.calculateMinorAxisRequirements(BoxView.java:903)
    	at javax.swing.text.BoxView.checkRequests(BoxView.java:935)
    	at javax.swing.text.BoxView.setSpanOnAxis(BoxView.java:343)
    	at javax.swing.text.BoxView.layout(BoxView.java:708)
    	at javax.swing.text.BoxView.setSize(BoxView.java:397)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1714)
    	at javax.swing.plaf.basic.BasicTextUI$RootView.paint(BasicTextUI.java:1433)
    	at javax.swing.plaf.basic.BasicTextUI.paintSafely(BasicTextUI.java:737)
    	at javax.swing.plaf.basic.BasicTextUI.paint(BasicTextUI.java:881)
    	at javax.swing.plaf.synth.SynthEditorPaneUI.paint(SynthEditorPaneUI.java:180)
    	at javax.swing.plaf.synth.SynthEditorPaneUI.update(SynthEditorPaneUI.java:168)
    	at javax.swing.JComponent.paintComponent(JComponent.java:769)
    	at javax.swing.JComponent.paint(JComponent.java:1045)
    	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5212)
    	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
    	at javax.swing.RepaintManager.paint(RepaintManager.java:1236)
    	at javax.swing.JComponent._paintImmediately(JComponent.java:5160)
    	at javax.swing.JComponent.paintImmediately(JComponent.java:4971)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
    	at javax.swing.RepaintManager$3.run(RepaintManager.java:784)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:784)
    	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:757)
    	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:706)
    	at javax.swing.RepaintManager.access$1000(RepaintManager.java:62)
    	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1651)
    	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:727)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:688)
    	at java.awt.EventQueue$3.run(EventQueue.java:686)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:697)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
    So.. uh... what? Lol WHY this no work?!?!? Gah, syntax highlighting is a pain! Someone PLEASE help me fix this!


  2. #2
    Grand Poobah
    Join Date
    Mar 2011
    Posts
    1,470
    My Mood
    Grumpy
    Thanks
    0
    Thanked 159 Times in 150 Posts

    Default Re: Syntax Highlighting errors and weirdness?

    You have a NPE on line 187 of CompositeView. Find out what on that line is null. Work out why it is null. Fix it.
    Improving the world one idiot at a time!

  3. #3
    Member
    Join Date
    Feb 2013
    Posts
    73
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Default Re: Syntax Highlighting errors and weirdness?

    ... uh... well since i havent touched that class at all... uh... i have no idea what that is being caused by...

  4. #4
    Administrator copeg's Avatar
    Join Date
    Oct 2009
    Location
    US
    Posts
    5,237
    Thanks
    176
    Thanked 817 Times in 760 Posts
    Blog Entries
    5

    Default Re: Syntax Highlighting errors and weirdness?

    First hit after googling the exception:
    https://netbeans.org/bugzilla/show_bug.cgi?id=219305
    I gather that if you are using netbeans, my advice would be to close any help pages and restart.

  5. #5
    Member
    Join Date
    Feb 2013
    Posts
    73
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Default Re: Syntax Highlighting errors and weirdness?

    I use eclipse.

  6. #6
    Administrator copeg's Avatar
    Join Date
    Oct 2009
    Location
    US
    Posts
    5,237
    Thanks
    176
    Thanked 817 Times in 760 Posts
    Blog Entries
    5

    Default Re: Syntax Highlighting errors and weirdness?

    Quote Originally Posted by sci4me View Post
    I use eclipse.
    Did you try to restart eclipse? If none of this works, post an SSCCE so that someone can try to reproduce the problem.

  7. #7
    Member
    Join Date
    Feb 2013
    Posts
    73
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Default Re: Syntax Highlighting errors and weirdness?

    ... if you use that class i posted as a document in a jtextpane, theres your sscce. just put a few keywords in the keywords arraylist since you dont have the other code... and there ya go. and yes i have tried restarting eclipse.

  8. #8
    Super Moderator helloworld922's Avatar
    Join Date
    Jun 2009
    Posts
    2,896
    Thanks
    23
    Thanked 619 Times in 561 Posts
    Blog Entries
    18

    Default Re: Syntax Highlighting errors and weirdness?

    I started debugging by "removing" code until things start to "work" (a.k.a. don't throw exceptions/do anything unexpected, not necessarily do what the final code should do).

    First, I commented out processChangedLines(), and things worked. Then I dug into processChangedLines() with a debugger, looking at lines which modified the state of the GUI and seeing what happens if these lines were removed. Low-and-behold, after a few minutes of digging the offending line is here:

    this.setCharacterAttributes(offs+4, line.length()-(offs+4), number, true);

    I'll leave it as an exercise for you to figure out why this is not right.

    Here's a hint link for helping to figure out what's wrong:

    Pay close attention to what the StyledDocument.setCharacterAttributes method expects as arguments.

  9. #9
    Member
    Join Date
    Feb 2013
    Posts
    73
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Default Re: Syntax Highlighting errors and weirdness?

    Alright so just line.length()... okay. Now... it doesnt crash but the syntax highlighting still isnt working properly.. ugh.

  10. #10
    Super Moderator helloworld922's Avatar
    Join Date
    Jun 2009
    Posts
    2,896
    Thanks
    23
    Thanked 619 Times in 561 Posts
    Blog Entries
    18

    Default Re: Syntax Highlighting errors and weirdness?

    Think about what portion of the given line you want to highlight: You want to highlight everything after the 4th character in a given line. The length of this is not just line.length(), but line.length() minus something. The question is what is that something? Hint: It has nothing to do with offs.

  11. #11
    Member
    Join Date
    Feb 2013
    Posts
    73
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Default Re: Syntax Highlighting errors and weirdness?

    oh its just length-4? or am i horribly confused?

  12. #12
    Super Moderator helloworld922's Avatar
    Join Date
    Jun 2009
    Posts
    2,896
    Thanks
    23
    Thanked 619 Times in 561 Posts
    Blog Entries
    18

    Default Re: Syntax Highlighting errors and weirdness?

    Yep, just line.length - 4.

  13. #13
    Member
    Join Date
    Feb 2013
    Posts
    73
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Default Re: Syntax Highlighting errors and weirdness?

    Thank you! It works like a charm!

Similar Threads

  1. Replies: 3
    Last Post: March 6th, 2012, 02:50 AM
  2. 2nd week with Java. Help with a few basic syntax errors?
    By D P in forum What's Wrong With My Code?
    Replies: 7
    Last Post: January 28th, 2012, 10:13 PM
  3. java syntax highlighting
    By Saulius in forum Java Theory & Questions
    Replies: 2
    Last Post: August 24th, 2011, 05:47 AM
  4. New Syntax Highlighting Feature!
    By JavaPF in forum Forum Updates & Feedback
    Replies: 15
    Last Post: July 14th, 2010, 09:20 AM
  5. Highlighting both row and column in JTable
    By bschneider14 in forum AWT / Java Swing
    Replies: 4
    Last Post: May 29th, 2010, 09:14 AM