LightZone icon indicating copy to clipboard operation
LightZone copied to clipboard

Crash on opening Minolta RAW (.mrw) files

Open jedd opened this issue 11 years ago • 1 comments

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.(JPEGImageInfo.java:33) at com.lightcrafts.image.types.JPEGImageType.newAuxiliaryInfo(JPEGImageType.java:614) at com.lightcrafts.image.types.JPEGImageType.newAuxiliaryInfo(JPEGImageType.java:55) at com.lightcrafts.image.ImageInfo.getAuxiliaryInfo(ImageInfo.java:145) at com.lightcrafts.image.types.JPEGImageType.getFirstSegment(JPEGImageType.java:224) at com.lightcrafts.image.types.JPEGImageType.getFirstSegment(JPEGImageType.java:203) at com.lightcrafts.image.types.JPEGImageType.getTrueImageTypeOf(JPEGImageType.java:573) at com.lightcrafts.image.ImageInfo.determineFinalImageType(ImageInfo.java:560) at com.lightcrafts.image.ImageInfo.getImageType(ImageInfo.java:267) at com.lightcrafts.ui.editor.DocumentReader.read(DocumentReader.java:65) at com.lightcrafts.app.Application$8.getImageFile(Application.java:1764) at com.lightcrafts.ui.editor.assoc.DocumentDatabase.readFile(DocumentDatabase.java:215) at com.lightcrafts.ui.editor.assoc.DocumentDatabase.readDirectory(DocumentDatabase.java:249) at com.lightcrafts.ui.editor.assoc.DocumentDatabase.addDocumentDirectory(DocumentDatabase.java:151) at com.lightcrafts.app.ComboFrame$5.run(ComboFrame.java:1007) at com.lightcrafts.utils.thread.CancelableThreadMonitor.run(CancelableThreadMonitor.java:96)

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.(JPEGImageInfo.java:33) at com.lightcrafts.image.types.JPEGImageType.newAuxiliaryInfo(JPEGImageType.java:614) at com.lightcrafts.image.types.JPEGImageType.newAuxiliaryInfo(JPEGImageType.java:55) at com.lightcrafts.image.ImageInfo.getAuxiliaryInfo(ImageInfo.java:145) at com.lightcrafts.image.types.JPEGImageType.getFirstSegment(JPEGImageType.java:224) at com.lightcrafts.image.types.JPEGImageType.getFirstSegment(JPEGImageType.java:203) at com.lightcrafts.image.types.JPEGImageType.getTrueImageTypeOf(JPEGImageType.java:573) at com.lightcrafts.image.ImageInfo.determineFinalImageType(ImageInfo.java:560) at com.lightcrafts.image.ImageInfo.getImageType(ImageInfo.java:267) at com.lightcrafts.ui.editor.DocumentReader.read(DocumentReader.java:65) at com.lightcrafts.app.Application$8.getImageFile(Application.java:1764) at com.lightcrafts.ui.editor.assoc.DocumentDatabase.readFile(DocumentDatabase.java:215) at com.lightcrafts.ui.editor.assoc.DocumentDatabase.readDirectory(DocumentDatabase.java:249) at com.lightcrafts.ui.editor.assoc.DocumentDatabase.addDocumentDirectory(DocumentDatabase.java:151) at com.lightcrafts.app.ComboFrame$5.run(ComboFrame.java:1007) at com.lightcrafts.utils.thread.CancelableThreadMonitor.run(CancelableThreadMonitor.java:96)

jedd avatar Jun 20 '13 01:06 jedd

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/

jedd avatar Jun 20 '13 01:06 jedd