Opened 14 years ago
Closed 14 years ago
#81 closed defect (fixed)
JAlbum crash after Drag and Drop operation
Reported by: | Michaelhz | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | RC2 |
Component: | general | Version: | 1.6.0-b19 RC |
Severity: | low | Keywords: | |
Cc: |
Description
Dragging a jpg file on the top window of JAlbum Main Window crashes JVM:
[C:\programs\JAlbum]java.exe -jar JAlbum.jar
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x13e9ca55, pid=256, tid=167772
33
#
# JRE version: 6.0-b19
# Java VM: OpenJDK Client VM (16.0-b13 mixed mode os2-x86 )
# Problematic frame:
# C [SHELL32+0xca55]
#
# An error report file with more information is saved as:
# C:\programs\JAlbum\hs_err_pid256.log
SYS1808:
The process has stopped. The software diagnostic
code (exception code) is 0000.
Attachments (1)
Change History (4)
by , 14 years ago
Attachment: | hs_err_pid256.log added |
---|
comment:2 by , 14 years ago
The problem is really strange. Someone is corrupting the stack during DnD as I get weird values of variables and such. The crash place also randomly changes as I add/remove printf lines.
comment:3 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Turned out to be an Odin bug. A really fancy one: Odin headers defined APIENTRY as an OS/2 API _System calling convention (where the caller cleans the stack after a call) while this define is used by some Win32 APIs (where the calling convention is actually stdcall which implies that the stack is to be cleaned up by the callee). As a result, Java performed a DragQueryFile() call using the _System calling convention when the function is stdcall which further resulted into a double stack cleanup after each DragQueryFile() call and therefore completely messed the stack causing these strange failures I saw.
Fixed in Odin's r 21584.
log file from crash