Avatar of KenBham
KenBham asked on

Repeated MFC42.dll crashes reported by Java (applet)

On many of our clients, we are seeing crash dumps like the ones attached.  They all seem to indicate a problem with MFC42.dll and it occurs at some point after they have exercised a scanning device through an applet.  The error does not prevent scanning, but seems to occur consistently  the log files are on their desktop when they close the browser (our application is applet-based).   My theory is that weve only just begun noticing it because Java changed the location of the crash dump files to the desktop, so they are visible to the user now.  In any case, they all indicate an EXCEPTION_ACCESS_VIOLATION in MFC42.dll and it seems that the native scanner driver utilizes this library somehow.  

Note: most of our clients do NOT experience this problem -- only some.

My Questions  are:
1)  what is this MFC42.dll (I think it is related to Microsoft Visual C++, but not sure).
2)  Why is MFC42.dll crashing on some machines and not others (with the same driver installation package)?
3)  Is it possible that these error have occured in the past, but that Java prior to 6u10 placed the dump files somewhere besides the desktop?
4)  Does anyone have any idea how I can attempt to stop these errors from dumping files to the desktop of the affected users?
# An unexpected error has been detected by Java Runtime Environment:
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x73dd11c7, pid=2848, tid=2872
# Java VM: Java HotSpot(TM) Client VM (11.0-b16 mixed mode, sharing windows-x86)
# Problematic frame:
# C  [MFC42.DLL+0x11c7]
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
---------------  T H R E A D  ---------------
Current thread (0x02a6dc00):  VMThread [stack: 0x02b50000,0x02ba0000] [id=2872]
siginfo: ExceptionCode=0xc0000005, reading address 0x00000004
EAX=0x00000000, EBX=0x00000000, ECX=0x00000000, EDX=0x00000002
ESP=0x02b9fa80, EBP=0x02b9fac0, ESI=0x0749d8c0, EDI=0x00000000
EIP=0x73dd11c7, EFLAGS=0x00010246
Top of Stack: (sp=0x02b9fa80)
0x02b9fa80:   0749d8c0 73dd6c03 00040358 00000000
0x02b9fa90:   00000000 0749d8c0 73dfdbc3 0749d8c0
0x02b9faa0:   73dd76f5 04279c90 02b27748 00000000
0x02b9fab0:   000be820 02b9faec 73e71efb 00000000
0x02b9fac0:   02b9faf8 73de6889 7c147840 0749d8d0
0x02b9fad0:   02b27688 7c1a6283 02b27688 02b27640
0x02b9fae0:   02b27688 04276e68 00000000 02b9fb28
0x02b9faf0:   7c211010 00000001 02b9fb34 7c1a62b2 
Instructions: (pc=0x73dd11c7)
0x73dd11b7:   3c de 05 00 5e c2 04 00 cc cc cc cc cc 8b ff 56
0x73dd11c7:   8b 71 04 85 f6 75 04 33 c0 eb 22 57 8b 7c 24 0c 
Stack: [0x02b50000,0x02ba0000],  sp=0x02b9fa80,  free space=318k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [MFC42.DLL+0x11c7]
C  [MFC42.DLL+0x16889]
C  [MFC71.DLL+0x662b2]
C  [MFC71.DLL+0x5ff7a]
C  [MFC71.DLL+0x172a9]
C  [MFC71.DLL+0x10c21]
C  [MFC71.DLL+0x10c8c]
C  [MFC71.DLL+0x10d09]
C  [MFC71.DLL+0x5c67]
C  [SILVER~1.OCX+0x3522f]
C  [ntdll.dll+0x118a]
C  [ntdll.dll+0x23aba]
C  [kernel32.dll+0x1ca96]
C  [kernel32.dll+0x1cb0e]
C  [msvcr71.dll+0x8d04]
VM_Operation (0x0090faf8): Exit, mode: safepoint, requested by thread 0x002b6c00
---------------  P R O C E S S  ---------------
Java Threads: ( => current thread )
  0x0435b400 JavaThread "AWT-Shutdown" [_thread_blocked, id=3220, stack(0x04070000,0x040c0000)]
  0x03009c00 JavaThread "Timer-2" [_thread_blocked, id=3724, stack(0x03300000,0x03350000)]
  0x030e0800 JavaThread "Thread-12" [_thread_in_native, id=2120, stack(0x04810000,0x04860000)]
  0x02f83c00 JavaThread "Browser Side Object Cleanup Thread" [_thread_blocked, id=3216, stack(0x033a0000,0x033f0000)]
  0x02f96000 JavaThread "Windows Tray Icon Thread" [_thread_in_native, id=172, stack(0x03490000,0x034e0000)]
  0x02f94800 JavaThread "CacheCleanUpThread" daemon [_thread_blocked, id=532, stack(0x03440000,0x03490000)]
  0x02fa9000 JavaThread "CacheMemoryCleanUpThread" daemon [_thread_blocked, id=3060, stack(0x033f0000,0x03440000)]
  0x02b40400 JavaThread "Java Plug-In Heartbeat Thread" [_thread_blocked, id=436, stack(0x02f10000,0x02f60000)]
  0x02b47800 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=3800, stack(0x031c0000,0x03210000)]
  0x02b48c00 JavaThread "traceMsgQueueThread" daemon [_thread_blocked, id=2868, stack(0x02ec0000,0x02f10000)]
  0x02ad9400 JavaThread "Timer-0" [_thread_blocked, id=3244, stack(0x02e20000,0x02e70000)]
  0x02a81800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=3616, stack(0x02d30000,0x02d80000)]
  0x02a7b800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=3208, stack(0x02ce0000,0x02d30000)]
  0x02a7a000 JavaThread "Attach Listener" daemon [_thread_blocked, id=1900, stack(0x02c90000,0x02ce0000)]
  0x02a78c00 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=1456, stack(0x02c40000,0x02c90000)]
  0x02a74000 JavaThread "Finalizer" daemon [_thread_blocked, id=3112, stack(0x02bf0000,0x02c40000)]
  0x02a6f400 JavaThread "Reference Handler" daemon [_thread_blocked, id=2768, stack(0x02ba0000,0x02bf0000)]
  0x002b6c00 JavaThread "main" [_thread_blocked, id=3072, stack(0x008c0000,0x00910000)]
Other Threads:
=>0x02a6dc00 VMThread [stack: 0x02b50000,0x02ba0000] [id=2872]
VM state:at safepoint (shutting down)
VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x002b5ba0] UNKNOWN - owner thread: 0x02a6dc00
 def new generation   total 960K, used 613K [0x22990000, 0x22a90000, 0x22e70000)
  eden space 896K,  61% used [0x22990000, 0x22a196a8, 0x22a70000)
  from space 64K, 100% used [0x22a70000, 0x22a80000, 0x22a80000)
  to   space 64K,   0% used [0x22a80000, 0x22a80000, 0x22a90000)
 tenured generation   total 4096K, used 3982K [0x22e70000, 0x23270000, 0x26990000)
   the space 4096K,  97% used [0x22e70000, 0x232539e0, 0x23253a00, 0x23270000)
 compacting perm gen  total 12288K, used 4788K [0x26990000, 0x27590000, 0x2a990000)
   the space 12288K,  38% used [0x26990000, 0x26e3d3a8, 0x26e3d400, 0x27590000)
    ro space 8192K,  63% used [0x2a990000, 0x2aea3ae8, 0x2aea3c00, 0x2b190000)
    rw space 12288K,  53% used [0x2b190000, 0x2b7f83f8, 0x2b7f8400, 0x2bd90000)
Dynamic libraries:
0x00400000 - 0x00424000 	C:\Program Files\Java\jre6\bin\java.exe
0x7c900000 - 0x7c9af000 	C:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c8f6000 	C:\WINDOWS\system32\kernel32.dll
0x77dd0000 - 0x77e6b000 	C:\WINDOWS\system32\ADVAPI32.dll
0x77e70000 - 0x77f02000 	C:\WINDOWS\system32\RPCRT4.dll
0x77fe0000 - 0x77ff1000 	C:\WINDOWS\system32\Secur32.dll
0x7c340000 - 0x7c396000 	C:\Program Files\Java\jre6\bin\msvcr71.dll
0x6d800000 - 0x6da56000 	C:\Program Files\Java\jre6\bin\client\jvm.dll
0x7e410000 - 0x7e4a1000 	C:\WINDOWS\system32\USER32.dll
0x77f10000 - 0x77f59000 	C:\WINDOWS\system32\GDI32.dll
0x76b40000 - 0x76b6d000 	C:\WINDOWS\system32\WINMM.dll
0x6d280000 - 0x6d288000 	C:\Program Files\Java\jre6\bin\hpi.dll
0x76bf0000 - 0x76bfb000 	C:\WINDOWS\system32\PSAPI.DLL
0x6d7b0000 - 0x6d7bc000 	C:\Program Files\Java\jre6\bin\verify.dll
0x6d320000 - 0x6d33f000 	C:\Program Files\Java\jre6\bin\java.dll
0x6d7f0000 - 0x6d7ff000 	C:\Program Files\Java\jre6\bin\zip.dll
0x6d430000 - 0x6d436000 	C:\Program Files\Java\jre6\bin\jp2native.dll
0x6d1c0000 - 0x6d1d3000 	C:\Program Files\Java\jre6\bin\deploy.dll
0x77a80000 - 0x77b15000 	C:\WINDOWS\system32\CRYPT32.dll
0x77b20000 - 0x77b32000 	C:\WINDOWS\system32\MSASN1.dll
0x77c10000 - 0x77c68000 	C:\WINDOWS\system32\msvcrt.dll
0x7c9c0000 - 0x7d1d7000 	C:\WINDOWS\system32\SHELL32.dll
0x77f60000 - 0x77fd6000 	C:\WINDOWS\system32\SHLWAPI.dll
0x774e0000 - 0x7761d000 	C:\WINDOWS\system32\ole32.dll
0x77120000 - 0x771ab000 	C:\WINDOWS\system32\OLEAUT32.dll
0x771b0000 - 0x7725a000 	C:\WINDOWS\system32\WININET.dll
0x7e1e0000 - 0x7e282000 	C:\WINDOWS\system32\urlmon.dll
0x77c00000 - 0x77c08000 	C:\WINDOWS\system32\VERSION.dll
0x773d0000 - 0x774d3000 	C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
0x6d6b0000 - 0x6d6f2000 	C:\Program Files\Java\jre6\bin\regutils.dll
0x7d1e0000 - 0x7d49c000 	C:\WINDOWS\system32\msi.dll
0x6d610000 - 0x6d623000 	C:\Program Files\Java\jre6\bin\net.dll
0x71ab0000 - 0x71ac7000 	C:\WINDOWS\system32\WS2_32.dll
0x71aa0000 - 0x71aa8000 	C:\WINDOWS\system32\WS2HELP.dll
0x6d630000 - 0x6d639000 	C:\Program Files\Java\jre6\bin\nio.dll
0x6d000000 - 0x6d138000 	C:\Program Files\Java\jre6\bin\awt.dll
0x73000000 - 0x73026000 	C:\WINDOWS\system32\WINSPOOL.DRV
0x76390000 - 0x763ad000 	C:\WINDOWS\system32\IMM32.dll
0x74720000 - 0x7476c000 	C:\WINDOWS\system32\MSCTF.dll
0x6d220000 - 0x6d274000 	C:\Program Files\Java\jre6\bin\fontmanager.dll
0x6d790000 - 0x6d798000 	C:\Program Files\Java\jre6\bin\sunmscapi.dll
0x68000000 - 0x68036000 	C:\WINDOWS\system32\rsaenh.dll
0x769c0000 - 0x76a74000 	C:\WINDOWS\system32\USERENV.dll
0x5b860000 - 0x5b8b5000 	C:\WINDOWS\system32\netapi32.dll
0x71a50000 - 0x71a8f000 	C:\WINDOWS\System32\mswsock.dll
0x76f20000 - 0x76f47000 	C:\WINDOWS\system32\DNSAPI.dll
0x76fb0000 - 0x76fb8000 	C:\WINDOWS\System32\winrnr.dll
0x76f60000 - 0x76f8c000 	C:\WINDOWS\system32\WLDAP32.dll
0x76fc0000 - 0x76fc6000 	C:\WINDOWS\system32\rasadhlp.dll
0x662b0000 - 0x66308000 	C:\WINDOWS\system32\hnetcfg.dll
0x71a90000 - 0x71a98000 	C:\WINDOWS\System32\wshtcpip.dll
0x10000000 - 0x10021000 	C:\WINDOWS\system32\EZJcomLib17.dll
0x04860000 - 0x04877000 	C:\WINDOWS\system32\JRangerMVX3.dll
0x76fd0000 - 0x7704f000 	C:\WINDOWS\system32\CLBCATQ.DLL
0x77050000 - 0x77115000 	C:\WINDOWS\system32\COMRes.dll
0x048b0000 - 0x049d5000 	C:\PROGRA~1\SILVER~1\Ranger\MVX\APIFIL~1\Ranger.ocx
0x7c140000 - 0x7c243000 	C:\WINDOWS\system32\MFC71.DLL
0x7c3a0000 - 0x7c41b000 	C:\WINDOWS\system32\MSVCP71.dll
0x71ad0000 - 0x71ad9000 	C:\WINDOWS\system32\WSOCK32.dll
0x5ad70000 - 0x5ada8000 	C:\WINDOWS\system32\UxTheme.dll
0x04b30000 - 0x04ead000 	C:\WINDOWS\system32\MVXApi.dll
0x040d0000 - 0x040ea000 	C:\WINDOWS\system32\WD_UTILS.dll
0x07210000 - 0x072d3000 	C:\PROGRA~1\COMMON~1\SILVER~1\IQA\SILVER~1.OCX
0x072e0000 - 0x07398000 	C:\WINDOWS\system32\ltocx14N.ocx
0x1fff0000 - 0x20068000 	C:\WINDOWS\system32\LTKRN14N.dll
0x1fc40000 - 0x1fc84000 	C:\WINDOWS\system32\LTEFX14N.dll
0x1ff70000 - 0x1ffba000 	C:\WINDOWS\system32\LTDIS14N.dll
0x073a0000 - 0x07483000 	C:\WINDOWS\system32\LTIMG14N.dll
0x1ffc0000 - 0x1ffee000 	C:\WINDOWS\system32\LTFIL14N.DLL
0x73dd0000 - 0x73ece000 	C:\WINDOWS\system32\MFC42.DLL
0x5edd0000 - 0x5ede7000 	C:\WINDOWS\system32\OLEPRO32.DLL
0x605d0000 - 0x605d9000 	C:\WINDOWS\system32\mslbui.dll
VM Arguments:
jvm_args: -D__jvm_launched=11127976504 -Xbootclasspath/a:C:\PROGRA~1\Java\jre6\lib\deploy.jar;C:\PROGRA~1\Java\jre6\lib\javaws.jar;C:\PROGRA~1\Java\jre6\lib\plugin.jar 
java_command: sun.plugin2.main.client.PluginMain write_pipe_name=jpi2_pid4000_pipe9,read_pipe_name=jpi2_pid4000_pipe8
Launcher Type: SUN_STANDARD
Environment Variables:
PATH=C:\PVSW\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Intel\DMIX
PROCESSOR_IDENTIFIER=x86 Family 15 Model 6 Stepping 5, GenuineIntel
---------------  S Y S T E M  ---------------
OS: Windows XP Build 2600 Service Pack 3
CPU:total 2 (2 cores per cpu, 1 threads per core) family 15 model 6 stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3
Memory: 4k page, physical 1555696k(1026152k free), swap 3497120k(3114732k free)
vm_info: Java HotSpot(TM) Client VM (11.0-b16) for windows-x86 JRE (1.6.0_11-b03), built on Nov 10 2008 02:15:12 by "java_re" with MS VC++ 7.1
time: Mon Dec 22 10:52:21 2008
elapsed time: 82 seconds

Open in new window

JavaMicrosoft Development

Avatar of undefined
Last Comment

8/22/2022 - Mon

Is this a signed applet? If so, it probably uses native code to access that Microsoft Foundation Class library, in which case, the error is more likely to be in the native code itself
Mick Barry

that dll contains the MFC functions.
very hard to tell what the problem is. may be a problem with that client installation.

Mick Barry

hardware can also sometimes cause those sort of errors, would be worth doing a thorough check of the ram on affected box.

Your help has saved me hundreds of hours of internet surfing.
Mick Barry

use the following option to put it somewhere else


The crash dump file is configurable with Dr Watson. See


I did fail to mention that this is a signed applet.  Moving the location of the log/dump file may be a last resort for me, but I'd prefer to correct the problem, if it is possible.  

Perhaps having the Dr. Watson crash analysis would be helpful.  I've looked at the linke provided by CEHJ, but need more clarification:  the exising dump files that show up on the desktop are produced by Java;  are you saying that I can have Dr. Watson invoked automatically when this happens by installing Dr. Watson as the "postmortem debugger" as outlined in the link?

thanks again...
Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.

I'm saying that you can configure the location of the crash dump file (amongst many other things) using Dr. Watson

What about this:  Assuming that this is a faulty or old version of MFC42.DLL that is the problem, (is this a valid hypothesis?), how could I go about getting the proper or latest version?  

>>Assuming that this is a faulty or old version of MFC42.DLL

That is not unreasonable, but it's more likely that the non-OS code the Windows one. The Windows one should get update in the natural course of Windows Update and i know you run that regularly don't you? ;-)

It looks like the MFC dll could be the culprit from the stack trace but that could be deceptive. It could be that the drivers (Canon?) simply crashed Windows through passing bad arguments or something

It would be worth seeing that you have the very latest drivers for the device
Experts Exchange is like having an extremely knowledgeable team sitting and waiting for your call. Couldn't do my job half as well as I do without it!
James Murphy

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
See how we're fighting big data
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
Mick Barry

> but I'd prefer to correct the problem, if it is possible.  

may not be easily possible.

> Assuming that this is a faulty or old version of MFC42.DLL that is the problem

it could be (as I already mentioned).

> how could I go about getting the proper or latest version?  

Doubt its a version thing, more likely to be a problem with the installation, or a hardware defect
Full memory check and a os reinstall would be the best to try


This is actually a Panini check scanner that is driven using Silver Bullet's Ranger API.  Again, we don't see his problem on most machines, just a few.  Given that the driver package works on most machines and only a few are having this problem, it seems that the drivers can't be implicated, unless (as you note) the driver installation is botched on these machines.  However, driver-reinstallation doesn't seem to fix the problem, so it still seems to point to a "bad" version/installation of MFC42.dll...would you agree?   Would a re-install of the latest Windows Service Pack "reset" the MFC42.dll to a proper installation?

Reinstalling the OS for end-users is not a viable option, but I will try doing memory checks on some affected machines to see if that turns up anything.  

thanks again...

You might check the versions of that dll on each installation and look for differences between 'good' and 'bad' ones
Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.

This is still an ongoing problem, but I think you're right to point to the vendor, Silver Bullet.  I'm in conversation with them about this, to try to determine what the problem really is.  Thanks for your replies

We're having the same problem with the same check scanner.  Their tech support ran out of ideas and told us it might be a bad USB port.  Have you made any progress figuring this out?

Also, can someone please clarify how we can redirect the location of those Java error files that are appearing on the desktop?  That might be an acceptable interim solution for us, but I don't really understand how we (as the end user) can specify a command-line option for an applet that runs from the web.
I started with Experts Exchange in 2004 and it's been a mainstay of my professional computing life since. It helped me launch a career as a programmer / Oracle data analyst
William Peck

Has anyone found a resolution for this? I am having the same issue.