ktgw0316 / LightZone

LightZone is a photo editor for Mac, Windows, and Linux.
BSD 3-Clause "New" or "Revised" License
310 stars 49 forks source link

v. 4.1.4/Linux: Exception in thread "AWT-EventQueue-1" java.util.ConcurrentModificationException #164

Closed mjhuurre closed 8 years ago

mjhuurre commented 8 years ago

When trying to open a photo for editing (using mouse click), I get a empty (black) window with a menu. Only way out is either with killing the LightZone process, or when started with CLI, hitting CTLR+C.

When I start LightZone using command line, I get following output:

Starting LightZone version 4.1.4 ...
with options :
This is LightZone 4.1.4 ()
Verifying Libraries
Initializing Engine Utilities
Max Memory:    3689414656
Total Memory:   124780544
Running on 4 processors
Allocating 437MB for the image cache.
Not a valid color profile at /usr/share/color/icc/FOGRA40L.ti3: Invalid ICC Profile Data
Not a valid color profile at /usr/share/color/icc/TR003.ti3: Invalid ICC Profile Data
Not a valid color profile at /usr/share/color/icc/TR002.ti3: Invalid ICC Profile Data
Not a valid color profile at /usr/share/color/icc/FOGRA39L.ti3: Invalid ICC Profile Data
Not a valid color profile at /usr/share/color/icc/TR005.ti3: Invalid ICC Profile Data
Not a valid color profile at /usr/share/color/icc/TR006.ti3: Invalid ICC Profile Data
Not a valid color profile at /usr/share/color/icc/FOGRA29L.ti3: Invalid ICC Profile Data
Not a valid color profile at /usr/share/color/icc/FOGRA30L.ti3: Invalid ICC Profile Data
Not a valid color profile at /usr/share/color/icc/FOGRA28L.ti3: Invalid ICC Profile Data
Malformed display profile at (sRGB default)
Loading Classes
Scanning Color Profiles
Restoring Preferences
Starting Logging
Scanning Saved Documents
Opening...
Light Crafts JAI Library - 02/05/07
Opening /home/ubuntu/Processing/Esilajittelu/2014/12/00_jt/01_jkl/20141224_205853_JT_IMG_0050.JPG
Exception in thread "AWT-EventQueue-1" java.util.ConcurrentModificationException
    at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:953)
    at java.util.LinkedList$ListItr.next(LinkedList.java:886)
    at com.lightcrafts.model.ImageEditor.ImageEditorDisplay.reshape(ImageEditorDisplay.java:61)
    at java.awt.Component.setBounds(Component.java:2247)
    at java.awt.Component.move(Component.java:2095)
    at java.awt.Component.setLocation(Component.java:2084)
    at com.lightcrafts.ui.mode.ModeOverlay.doUnderlayLayout(ModeOverlay.java:264)
    at com.lightcrafts.ui.mode.ModeOverlay.doLayout(ModeOverlay.java:231)
    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.validateTree(Container.java:1697)
    at java.awt.Container.validateTree(Container.java:1697)
    at java.awt.Container.validateTree(Container.java:1697)
    at java.awt.Container.validateTree(Container.java:1697)
    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.JLayeredPane.addImpl(JLayeredPane.java:231)
    at java.awt.Container.add(Container.java:966)
    at javax.swing.JRootPane.setContentPane(JRootPane.java:625)
    at javax.swing.JFrame.setContentPane(JFrame.java:687)
    at com.lightcrafts.app.ComboFrame.showEditorPerspective(ComboFrame.java:711)
    at com.lightcrafts.app.ComboFrame.setDocument(ComboFrame.java:629)
    at com.lightcrafts.app.Application.show(Application.java:1525)
    at com.lightcrafts.app.Application.access$000(Application.java:76)
    at com.lightcrafts.app.Application$1.documentInitialized(Application.java:219)
    at com.lightcrafts.app.DocumentInitializer$3.run(DocumentInitializer.java:109)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:706)
    at java.awt.EventQueue$3.run(EventQueue.java:704)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:715)
    at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.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)

Like said, menu is working and if I try File|Exit I get:

Exception in thread "AWT-EventQueue-1" java.lang.ArrayIndexOutOfBoundsException: 0
    at com.lightcrafts.ui.templates.TemplatePreview.doLayout(TemplatePreview.java:101)
    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 com.lightcrafts.ui.toolkit.FadingContainer.nextComponent(FadingContainer.java:62)
    at com.lightcrafts.ui.layout.FadingTabbedPanel$TabListener.itemStateChanged(FadingTabbedPanel.java:52)
    at javax.swing.AbstractButton.fireItemStateChanged(AbstractButton.java:2046)
    at javax.swing.AbstractButton$Handler.itemStateChanged(AbstractButton.java:2348)
    at javax.swing.DefaultButtonModel.fireItemStateChanged(DefaultButtonModel.java:455)
    at javax.swing.JToggleButton$ToggleButtonModel.setSelected(JToggleButton.java:272)
    at javax.swing.AbstractButton.setSelected(AbstractButton.java:348)
    at com.lightcrafts.ui.layout.FadingTabbedPanel.setSelected(FadingTabbedPanel.java:104)
    at com.lightcrafts.app.AbstractLayout.restoreFaders(AbstractLayout.java:268)
    at com.lightcrafts.app.AbstractLayout.restoreLayout(AbstractLayout.java:167)
    at com.lightcrafts.app.EditorLayout.updateEditor(EditorLayout.java:63)
    at com.lightcrafts.app.ComboFrame.setDocument(ComboFrame.java:671)
    at com.lightcrafts.app.Application.closeDocument(Application.java:779)
    at com.lightcrafts.app.Application.close(Application.java:746)
    at com.lightcrafts.app.Application.quit(Application.java:802)
    at com.lightcrafts.app.menu.ExitMenuItem.actionPerformed(ExitMenuItem.java:22)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
    at java.awt.Component.processMouseEvent(Component.java:6516)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
    at java.awt.Component.processEvent(Component.java:6281)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4872)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4698)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:706)
    at java.awt.EventQueue$3.run(EventQueue.java:704)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:720)
    at java.awt.EventQueue$4.run(EventQueue.java:718)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
    at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.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-1" java.lang.ArrayIndexOutOfBoundsException: 0
    at com.lightcrafts.ui.templates.TemplatePreview.doLayout(TemplatePreview.java:101)
    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.validateTree(Container.java:1697)
    at java.awt.Container.validateTree(Container.java:1697)
    at java.awt.Container.validate(Container.java:1623)
    at javax.swing.RepaintManager$2.run(RepaintManager.java:691)
    at javax.swing.RepaintManager$2.run(RepaintManager.java:689)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77)
    at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:688)
    at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1676)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745)
    at java.awt.EventQueue.access$300(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:706)
    at java.awt.EventQueue$3.run(EventQueue.java:704)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:715)
    at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.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)

... and LightZone won't quit.

Currently unable to edit photos in any way. I cannot return to browse mode. Using Ubuntu 15.10; Linux hauki 4.2.0-18-generic #22-Ubuntu SMP Fri Nov 6 18:25:50 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Problem with LightZone or somewhere else? As far I can now tell the computer is working normally.

vlad2 commented 8 years ago

Hello,

Same here, also on Ubuntu 15.10. Although, I found a workaround: if I resize/maximize the window after the exception is thrown, the second time the image can be loaded and I'm able to edit it. But it's very frustrating, because I cannot return to 'Browse' mode. Also, the "Done" button that was before is missing. Is this intentional? I have to click 'Save' then select a name ...._lzn.jpg, press enter , etc instead of just pressing "Done" ?

ps: The same thing happens with Lightzone 4.1.3. The sjavaame thing happens with java8 or java7 (openjdk from Ubuntu's repositories).

_ps2: This happens only with the OpenJDK. It works with Oracle Java 1.8.065.

Stack trace: Opening /home/vlad/Downloads/various pictures/936322_10151610668750325_604293772_n.jpg Exception in thread "AWT-EventQueue-1" java.util.ConcurrentModificationException at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:966) at java.util.LinkedList$ListItr.next(LinkedList.java:888) at com.lightcrafts.model.ImageEditor.ImageEditorDisplay.reshape(ImageEditorDisplay.java:61) at java.awt.Component.setBounds(Component.java:2263) at java.awt.Component.move(Component.java:2111) at java.awt.Component.setLocation(Component.java:2100) at com.lightcrafts.ui.mode.ModeOverlay.doUnderlayLayout(ModeOverlay.java:264) at com.lightcrafts.ui.mode.ModeOverlay.doLayout(ModeOverlay.java:231) at java.awt.Container.validateTree(Container.java:1695) at java.awt.Container.validateTree(Container.java:1704) at java.awt.Container.validateTree(Container.java:1704) at java.awt.Container.validateTree(Container.java:1704) at java.awt.Container.validateTree(Container.java:1704) at java.awt.Container.validateTree(Container.java:1704) at java.awt.Container.validateTree(Container.java:1704) at java.awt.Container.validateTree(Container.java:1704) at java.awt.Container.validateTree(Container.java:1704) at java.awt.Container.validate(Container.java:1630) at javax.swing.JLayeredPane.addImpl(JLayeredPane.java:232) at java.awt.Container.add(Container.java:973) at javax.swing.JRootPane.setContentPane(JRootPane.java:626) at javax.swing.JFrame.setContentPane(JFrame.java:698) at com.lightcrafts.app.ComboFrame.showEditorPerspective(ComboFrame.java:711) at com.lightcrafts.app.ComboFrame.setDocument(ComboFrame.java:629) at com.lightcrafts.app.Application.show(Application.java:1525) at com.lightcrafts.app.Application.access$000(Application.java:76) at com.lightcrafts.app.Application$1.documentInitialized(Application.java:219) at com.lightcrafts.app.DocumentInitializer$3.run(DocumentInitializer.java:109) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:697) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Opening /home/vlad/Downloads/various pictures/yoga-on-the-beach-238012.jpg Exception in thread "AWT-EventQueue-1" java.util.ConcurrentModificationException at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:966) at java.util.LinkedList$ListItr.next(LinkedList.java:888) at com.lightcrafts.model.ImageEditor.ImageEditorDisplay.reshape(ImageEditorDisplay.java:61) at java.awt.Component.setBounds(Component.java:2263) at java.awt.Component.resize(Component.java:2186) at java.awt.Component.setSize(Component.java:2175) at java.awt.Component.resize(Component.java:2215) at java.awt.Component.setSize(Component.java:2206) at com.lightcrafts.ui.mode.ModeOverlay.doUnderlayLayout(ModeOverlay.java:265) at com.lightcrafts.ui.mode.ModeOverlay.getTransform(ModeOverlay.java:220) at com.lightcrafts.ui.editor.ModeManager.getOverlayTransform(ModeManager.java:382) at com.lightcrafts.ui.editor.ModeManager.getInitialCropBounds(ModeManager.java:521) at com.lightcrafts.ui.editor.ModeManager.setUnderlayBounds(ModeManager.java:402) at com.lightcrafts.ui.editor.ModeManager.access$500(ModeManager.java:37) at com.lightcrafts.ui.editor.ModeManager$3.componentResized(ModeManager.java:142) at com.lightcrafts.model.ImageEditor.ImageEditorDisplay.reshape(ImageEditorDisplay.java:62) at java.awt.Component.setBounds(Component.java:2263) at java.awt.Component.move(Component.java:2111)

mjhuurre commented 8 years ago

Can confirm that the resize/maximize allows me to edit photo, although it appeared zoomed to '1:1' instead of 'fit'.

$ java -version
java version "1.7.0_91"
OpenJDK Runtime Environment (IcedTea 2.6.3) (7u91-2.6.3-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)

ps2: This happens only with the OpenJDK. It works with Oracle Java 1.8.0_65.

Oh well, probably time to feel the embrace of Oracle...

mjhuurre commented 8 years ago

ps2: This happens only with the OpenJDK. It works with Oracle Java 1.8.0_65.

Oh well, probably time to feel the embrace of Oracle...

Yep, working with

ubuntu@hauki:~$ java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)

ubuntu@hauki:~$ javac -version
javac 1.8.0_66

but IMHO should not depend on proprietary Java version.

vlad2 commented 8 years ago

Yup, of course it shouldn't depend on Oracle Java. Especially since it's hard to install it on Ubuntu, not something that any user can do. Let's hope someone fixes this bug.

ktgw0316 commented 8 years ago

Thanks for the reports, I've just fixed it.