LightZone
LightZone copied to clipboard
Crash on opening Minolta RAW (.mrw) files
Upon entering a directory (browse) that contains .mrw files, the following exception is generated, and LZ declines to show the content of the directory. If you navigate away, then all is well. If you quit, then subsequent starts of LZ don't work (presumably as it tries to make sense of the last working directory).
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Error initializing browser
at com.lightcrafts.app.ComboFrame.initImages(ComboFrame.java:1028)
at com.lightcrafts.app.ComboFrame.showFolder(ComboFrame.java:361)
at com.lightcrafts.app.ComboFrame.access$100(ComboFrame.java:59)
at com.lightcrafts.app.ComboFrame$2.folderSelectionChanged(ComboFrame.java:259)
at com.lightcrafts.ui.browser.folders.FolderTree.notifyFolderSelected(FolderTree.java:112)
at com.lightcrafts.ui.browser.folders.FolderTree$1.valueChanged(FolderTree.java:57)
at javax.swing.JTree.fireValueChanged(JTree.java:2919)
at javax.swing.JTree$TreeSelectionRedirector.valueChanged(JTree.java:3378)
at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:634)
at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1092)
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:293)
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:187)
at com.lightcrafts.ui.browser.folders.FolderTreeSelectionModel.setSelectionPath(FolderTreeSelectionModel.java:41)
at javax.swing.JTree.setSelectionPath(JTree.java:1631)
at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2372)
at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(BasicTreeUI.java:3588)
at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(BasicTreeUI.java:3527)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
at java.awt.Component.processMouseEvent(Component.java:6502)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
at java.awt.Component.processEvent(Component.java:6270)
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.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4489)
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: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)
Caused by: java.lang.NegativeArraySizeException
at com.lightcrafts.utils.bytebuffer.LCByteBuffer.getBytes(LCByteBuffer.java:112)
at com.lightcrafts.image.types.JPEGImageInfo$SegmentReader.gotSegment(JPEGImageInfo.java:141)
at com.lightcrafts.image.types.JPEGParser.parse(JPEGParser.java:103)
at com.lightcrafts.image.types.JPEGImageInfo$SegmentReader.readSegments(JPEGImageInfo.java:161)
at com.lightcrafts.image.types.JPEGImageInfo.
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Error initializing browser
at com.lightcrafts.app.ComboFrame.initImages(ComboFrame.java:1028)
at com.lightcrafts.app.ComboFrame.showFolder(ComboFrame.java:361)
at com.lightcrafts.app.ComboFrame.access$100(ComboFrame.java:59)
at com.lightcrafts.app.ComboFrame$2.folderSelectionChanged(ComboFrame.java:259)
at com.lightcrafts.ui.browser.folders.FolderTree.notifyFolderSelected(FolderTree.java:112)
at com.lightcrafts.ui.browser.folders.FolderTree$1.valueChanged(FolderTree.java:57)
at javax.swing.JTree.fireValueChanged(JTree.java:2919)
at javax.swing.JTree$TreeSelectionRedirector.valueChanged(JTree.java:3378)
at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:634)
at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1092)
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:293)
at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:187)
at com.lightcrafts.ui.browser.folders.FolderTreeSelectionModel.setSelectionPath(FolderTreeSelectionModel.java:41)
at javax.swing.JTree.setSelectionPath(JTree.java:1631)
at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2372)
at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(BasicTreeUI.java:3588)
at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(BasicTreeUI.java:3527)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
at java.awt.Component.processMouseEvent(Component.java:6502)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
at java.awt.Component.processEvent(Component.java:6270)
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.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4489)
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: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)
Caused by: java.lang.NegativeArraySizeException
at com.lightcrafts.utils.bytebuffer.LCByteBuffer.getBytes(LCByteBuffer.java:112)
at com.lightcrafts.image.types.JPEGImageInfo$SegmentReader.gotSegment(JPEGImageInfo.java:141)
at com.lightcrafts.image.types.JPEGParser.parse(JPEGParser.java:103)
at com.lightcrafts.image.types.JPEGImageInfo$SegmentReader.readSegments(JPEGImageInfo.java:161)
at com.lightcrafts.image.types.JPEGImageInfo.
Actually it may be a corrupted jpeg file. I'm still investigating. I think the example files here demonstrate the problem. Either way, the fact that a broken / confused file can cause subsequent starts to break (as it tries to return to last known directory) is a bug. http://jeddi.org/c/broken-mrw/