From: SourceForge.net <no...@so...> - 2010-01-06 19:26:58
|
Bugs item #2418439, was opened at 2008-12-11 13:34 Message generated for change (Comment added) made by ezust You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100588&aid=2418439&group_id=588 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: editor core >Group: normal bug Status: Open Resolution: None Priority: 7 Private: No Submitted By: Jesse Pavel (jpavel) Assigned to: Nobody/Anonymous (nobody) Summary: 4.3pre16 repeated ArrayIndexOutOfBoundsExceptions Initial Comment: With 4.3pre16 this exception periodically is thrown: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 42 at org.gjt.sp.jedit.textarea.ChunkCache.updateChunksUpTo(ChunkCache.java:603) at org.gjt.sp.jedit.textarea.ChunkCache.getLineInfo(ChunkCache.java:256) at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:102) at org.gjt.sp.jedit.textarea.Gutter.paintComponent(Gutter.java:153) at javax.swing.JComponent.paint(JComponent.java:1006) at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4972) at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4925) at javax.swing.JComponent._paintImmediately(JComponent.java:4868) at javax.swing.JComponent.paintImmediately(JComponent.java:4675) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:451) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:114) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:461) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) Windows XP, Java 1.5.0_14 ---------------------------------------------------------------------- >Comment By: Alan Ezust (ezust) Date: 2010-01-06 11:26 Message: oops. please ignore previous two comments. Wrong item. ---------------------------------------------------------------------- Comment By: Alan Ezust (ezust) Date: 2010-01-06 11:26 Message: and I see it with only one view. ---------------------------------------------------------------------- Comment By: Alan Ezust (ezust) Date: 2010-01-06 11:25 Message: It happens in many other situations too, such as "close all buffers". ---------------------------------------------------------------------- Comment By: Jesse Pavel (jpavel) Date: 2009-10-28 12:34 Message: I can reproduce this exception reliably now, running pre17. The key is to have a second view on a second monitor, and to resize that view so that it is larger than the resolution of the first monitor. So to reproduce this, you'll need a setup (like mine, unfortunately) where the secondary monitor is running at a higher vertical resolution than the primary monitor. If I keep my second jEdit view sized below the primary monitor's resolution, I get no exceptions. If I resize it to be larger, this exception gets thrown whenever the secondary view is repainted. The stack trace for pre17 is this: java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 45 at org.gjt.sp.jedit.textarea.ChunkCache.updateChunksUpTo(ChunkCache.java:620) at org.gjt.sp.jedit.textarea.ChunkCache.getLineInfo(ChunkCache.java:261) at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:102) at org.gjt.sp.jedit.textarea.TextAreaPainter.paint(TextAreaPainter.java:758) at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4972) at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4925) at javax.swing.JComponent._paintImmediately(JComponent.java:4868) at javax.swing.JComponent.paintImmediately(JComponent.java:4675) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:451) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:114) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:461) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) ---------------------------------------------------------------------- Comment By: Jesse Pavel (jpavel) Date: 2009-08-03 14:59 Message: One more point I noticed: - it only seems to happen if one of the two views is placed on the secondary monitor, and resized to be larger than the resolution of the primary monitor. Is this a possible factor (given a knowledge of that area of jEdit's core), or just coincidence? ---------------------------------------------------------------------- Comment By: Jesse Pavel (jpavel) Date: 2009-07-27 13:32 Message: I cannot reproduce it with only one view - also, I can't reproduce it with two views on a one monitor system. It only happens with two views, on a dual monitor machine. But I can't find a reliable way to reproduce it deterministically. It happens even if SideKick is unloaded. I'll keep hammering at it. ---------------------------------------------------------------------- Comment By: Alan Ezust (ezust) Date: 2009-07-21 12:12 Message: jpavel, could you please attach a test file to use as a testcase and instructions on how to reproduce it? Can it be reproduced with only one view? Perhaps sidekick is parsing the same document in two views at the same time after saving the document? That might be one way sidekick could perhaps enter a critical area and cause havoc. ---------------------------------------------------------------------- Comment By: Jesse Pavel (jpavel) Date: 2009-07-21 11:12 Message: Odd..it seems to have something to do with the position and geometry of my window. I got that exception every time I tried to save, across jEdit restarts. Then, I dragged my jEdit window from Monitor #2 to Monitor #1, made it slightly smaller, and tried saving. It saved without error. ---------------------------------------------------------------------- Comment By: Jesse Pavel (jpavel) Date: 2009-07-21 11:05 Message: This is still happening with pre17: Every time I try to save a certain file, even after quitting/restarting jEdit, and splitting views, I get this exception java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 43 at org.gjt.sp.jedit.textarea.ChunkCache.updateChunksUpTo(ChunkCache.java:620) at org.gjt.sp.jedit.textarea.ChunkCache.getLineInfo(ChunkCache.java:261) at org.gjt.sp.jedit.textarea.ExtensionManager.paintScreenLineRange(ExtensionManager.java:102) at org.gjt.sp.jedit.textarea.TextAreaPainter.paint(TextAreaPainter.java:758) at javax.swing.JComponent.paintWithOffscreenBuffer(JComponent.java:4972) at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:4925) at javax.swing.JComponent._paintImmediately(JComponent.java:4868) at javax.swing.JComponent.paintImmediately(JComponent.java:4675) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:451) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:114) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:461) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) It happens with and without SideKick loaded. ---------------------------------------------------------------------- Comment By: dmusicant (dmusicant) Date: 2009-01-14 13:11 Message: I get this problem on both pre15 AND pre 16. When I use jEdit 4.2, the issue dissapears. This problem has made jedit 4.3 unusable. At first it simply throws the error, but after a few times, it will no longer switch between different files, only displaying whatever was the last file displayed. Using 4.2, I have ZERO problems. ---------------------------------------------------------------------- Comment By: Jesse Pavel (jpavel) Date: 2009-01-03 00:06 Message: Wow, it sounds like these recent changes might be the end of these deep-rooted jEdit woes! - Without Sidekick loaded, the problem doesn't occur. - With the patched SideKick posted a week or so ago (before the root cause in JEditBuffer was found), this problem doesn't occur either. - The machine I'm running on now doesn't have all the SVN, jEdit source, etc. set up to try the patch, but if someone can link to a built JAR of the SVN version, I'd definitely try it. ---------------------------------------------------------------------- Comment By: Dale Anson (daleanson) Date: 2008-12-28 18:56 Message: I believe I was seeing this stack trace quite a lot when trying to fix tracker 1633393. After I applied the last patch attached to 1633393 (JEditBuffer.java.diff), this went away. From your description, I think it is reasonable that without applying the patch, you would have this sort of trouble editing the same buffer in 2 different views. Would you try applying the patch and see if it fixes this problem also? My version of jEdit has this patch applied, and I am unable to reproduce this bug following your steps. ---------------------------------------------------------------------- Comment By: Shlomy Reinstein (shlomy) Date: 2008-12-28 11:46 Message: I cannot reproduce this manually. Jesse, can you perhaps record a Marathon script that reproduces it? Perhaps I don't understand the steps to reproduce well enough. Can you maybe attach a screenshot of the screen with the 2 views after step 4 and mark in the screenshot the line that you delete in step 5? Thanks. If I could reproduce that manually, I'd create a Marathon script for this myself and attach it to this bug so every one can reproduce it. ---------------------------------------------------------------------- Comment By: Alan Ezust (ezust) Date: 2008-12-28 10:50 Message: I see this sometimes, although I have not reliably reproduced this. I think this is an excellent candidate for creating a reproducible test case with a tool such as Marathon. Can we have a volunteer who can make one up? Incidentally, you should be able to bring jEdit back into a usable state without exiting or closing anything, but by simply splitting and then unsplitting the View, like the other "confused textarea" types of bugs I've seen. Have you seen this without the use of SideKick? ---------------------------------------------------------------------- Comment By: Jesse Pavel (jpavel) Date: 2008-12-15 18:50 Message: I found a method of reproducing this bug consistently: 1. Open two views of the same buffer. Both must be visible (this is why the two monitor setup helped to find it). 2. The buffer has explicit folding (let's say F1 through F4, with all folds collapsed.) 3. In view one, expand F1. 4. In view two, expand F3. Note that in view two, F1 cannot be visible or the bug does not occur! 5. In view one, delete a line with Ctrl-D. Then undo the deletion. One my setup here, the bug is triggered every time this sequence occurs. This pretty much prevents jEdit from editing the same buffer on a dual-monitor setup. ---------------------------------------------------------------------- Comment By: Jesse Pavel (jpavel) Date: 2008-12-11 13:57 Message: This problem seems to be greatly exacerbated when I have two views open, one on each of two monitors in a dual setup. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100588&aid=2418439&group_id=588 |