Uploaded image for project: 'Clover'
  1. Clover
  2. CLOV-1131

Unicode CR/LF characters in javadoc causes Eclipse/IntelliJ editors get out of sync

    XMLWordPrintable

Details

    Description

      Try the following example:

      class Unicode {   
          void foo() {
          	System.out.println("1");
          	/** {@code \u000a} LF */
          }
          
          
          
          void goo() {
          	System.out.println("2");    	
          	/** {@code \u000d} CR */
          }
          
          
          
          void hoo() {
          	System.out.println("3");
          }
          
          
          
      } // end
      

      In Eclipse editor, every CR/LF written in unicode causes that it interprets it as newline character. As a result left ruler "sees" more lines and all subsequent coverage blocks are shifted down.

      In IntelliJ it's even worse, as we get exception. Stack trace:

      Error during dispatching of java.awt.event.InvocationEvent[INVOCATION_DEFAULT,runnable=com.cenqua.clover.idea.content.ContentPlugin$1@789e7511,notifier=null,catchExceptions=false,when=1343648365649] on sun.awt.windows.WToolkit@2018aa27: Wrong end: 270; document length=249; start=246
      java.lang.IllegalArgumentException: Wrong end: 270; document length=249; start=246
      	at com.intellij.openapi.editor.impl.RangeMarkerImpl.<init>(RangeMarkerImpl.java:47)
      	at com.intellij.openapi.editor.impl.DocumentImpl.createRangeMarker(DocumentImpl.java:303)
      	at com.intellij.openapi.editor.impl.RangeHighlighterImpl.<init>(RangeHighlighterImpl.java:58)
      	at com.intellij.openapi.editor.impl.MarkupModelImpl.a(MarkupModelImpl.java:119)
      	at com.intellij.openapi.editor.impl.MarkupModelImpl.addRangeHighlighter(MarkupModelImpl.java:135)
      	at com.cenqua.clover.idea.content.DocMarkupPlugin$HighlightMarkupBuilder.highlightStatement(DocMarkupPlugin.java:286)
      	at com.cenqua.clover.idea.content.DocMarkupPlugin$HighlightMarkupBuilder.process(DocMarkupPlugin.java:220)
      	at com.cenqua.clover.idea.content.DocMarkupPlugin.updateMarkups(DocMarkupPlugin.java:136)
      	at com.cenqua.clover.idea.content.DocMarkupPlugin.refresh(DocMarkupPlugin.java:424)
      	at com.cenqua.clover.idea.content.ContentPlugin$1.run(ContentPlugin.java:96)
      	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
      	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:646)
      	at java.awt.EventQueue.access$000(EventQueue.java:84)
      	at java.awt.EventQueue$1.run(EventQueue.java:607)
      	at java.awt.EventQueue$1.run(EventQueue.java:605)
      	at java.security.AccessController.doPrivileged(Native Method)
      	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
      	at java.awt.EventQueue.dispatchEvent(EventQueue.java:616)
      	at com.intellij.ide.IdeEventQueue.f(IdeEventQueue.java:627)
      	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:508)
      	at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:405)
      	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:369)
      	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
      	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
      	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
      	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
      	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
      	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
      
      

      Attachments

        Issue Links

          Activity

            People

              mparfianowicz Marek Parfianowicz
              mparfianowicz Marek Parfianowicz
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - 16h
                  16h
                  Remaining:
                  Remaining Estimate - 16h
                  16h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified