JDK-6601004 : Application crash when JTable cell edited
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 6u2
  • Priority: P2
  • Status: Closed
  • Resolution: Not an Issue
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2007-09-05
  • Updated: 2011-01-19
  • Resolved: 2007-09-11
Related Reports
Relates :  
Description
FULL PRODUCT VERSION :
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b05)
Java HotSpot(TM) Client VM (build 1.6.0_02-b05, mixed mode, sharing)

ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows XP [Version 5.1.2600]

A DESCRIPTION OF THE PROBLEM :
I have a JTable which is binded with database table using new swing application framework (in NetBeans 6 M10). When I edit a table cell and move selection to other cell, application crashes. That table "masterTable" is target to "slaveTable" (masterTable represent Teams, and slaveTable represents players that belongs to selected team).


ERROR MESSAGES/STACK TRACES THAT OCCUR :
#
# An unexpected error has been detected by Java Runtime Environment:
#
#  EXCEPTION_FLT_STACK_CHECK (0xc0000092) at pc=0x0096cea9, pid=2172, tid=3580
#
# Java VM: Java HotSpot(TM) Client VM (1.6.0_02-b05 mixed mode, sharing)
# Problematic frame:
# v  ~RuntimeStub::resolve_opt_virtual_call
#
# 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 (0x02b7b400):  JavaThread "AWT-Windows" daemon [_thread_in_Java, id=3580]

siginfo: ExceptionCode=0xc0000092, ExceptionInformation=0x00000000 0x0317f2c4

Registers:
EAX=0x2b1ced48, EBX=0x2b1ced48, ECX=0x23194bd0, EDX=0x23165fb8
ESP=0x0317f258, EBP=0x0317f368, ESI=0x23194bd0, EDI=0x00a9c470
EIP=0x0096cea9, EFLAGS=0x00010212

  Top of Stack: (sp=0x0317f258)
0x0317f258:   ffff1372 ffff0020 ffffffff 00950369
0x0317f268:   073c001b 03cbf9e0 ffff0023 bf813fdd
0x0317f278:   bc6dfaa8 2af00046 2854b367 2afcb367
0x0317f288:   7ffae000 b36728c8 251424b4 5c0bb367
0x0317f298:   24e88059 7ffae6cc 0317f6f4 2af0e000
0x0317f2a8:   2854b367 2afcb367 00000000 b0000000
0x0317f2b8:   00004003 00000000 bffd8000 5ad8c3c0
0x0317f2c8:   02e05288 0317f378 00200110 02e051c0

Instructions: (pc=0x0096cea9)
0x0096ce99:   00 00 83 ec 6c dd 34 24 9b dd 24 24 dd 5c 24 6c
0x0096cea9:   dd 5c 24 74 dd 5c 24 7c dd 9c 24 84 00 00 00 dd


Stack: [0x03130000,0x03180000),  sp=0x0317f258,  free space=316k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
v  ~RuntimeStub::resolve_opt_virtual_call
J  java.lang.reflect.Field.getFieldAccessor(Ljava/lang/Object;)Lsun/reflect/FieldAccessor;
j  java.lang.reflect.Field.get(Ljava/lang/Object;)Ljava/lang/Object;+2
j  sun.awt.SunToolkit.getPrivateKey(Ljava/lang/Object;)Ljava/lang/Object;+30
j  sun.awt.SunToolkit.targetToPeer(Ljava/lang/Object;)Ljava/lang/Object;+14
j  sun.awt.windows.WToolkit.targetToPeer(Ljava/lang/Object;)Ljava/lang/Object;+1
j  sun.awt.windows.WObjectPeer.getPeerForTarget(Ljava/lang/Object;)Lsun/awt/windows/WObjectPeer;+1
v  ~StubRoutines::call_stub


---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x036d2800 JavaThread "TimerQueue" daemon [_thread_blocked, id=1684]
  0x002e6800 JavaThread "DestroyJavaVM" [_thread_blocked, id=2924]
  0x02b7c400 JavaThread "AWT-EventQueue-0" [_thread_in_native, id=3980]
=>0x02b7b400 JavaThread "AWT-Windows" daemon [_thread_in_Java, id=3580]
  0x02b26000 JavaThread "AWT-Shutdown" [_thread_blocked, id=3880]
  0x02b25400 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=1904]
  0x02ae3c00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=4012]
  0x02adf000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=308]
  0x02addc00 JavaThread "Attach Listener" daemon [_thread_blocked, id=3968]
  0x02add000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=2088]
  0x02aa1800 JavaThread "Finalizer" daemon [_thread_blocked, id=3256]
  0x02a9d400 JavaThread "Reference Handler" daemon [_thread_blocked, id=2356]

Other Threads:
  0x02a94000 VMThread [id=3268]
  0x02ae5400 WatcherThread [id=3628]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 def new generation   total 960K, used 840K [0x229b0000, 0x22ab0000, 0x22e90000)
  eden
[error occurred during error reporting, step 190, id 0xc0000092]

Dynamic libraries:
0x00400000 - 0x00423000 	C:\Sun\jdk\jre\bin\java.exe
0x7c900000 - 0x7c9b0000 	C:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c8f4000 	C:\WINDOWS\system32\kernel32.dll
0x77dd0000 - 0x77e6b000 	C:\WINDOWS\system32\ADVAPI32.dll
0x77e70000 - 0x77f01000 	C:\WINDOWS\system32\RPCRT4.dll
0x7c340000 - 0x7c396000 	C:\Sun\jdk\jre\bin\msvcr71.dll
0x6d870000 - 0x6dab9000 	C:\Sun\jdk\jre\bin\client\jvm.dll
0x77d40000 - 0x77dd0000 	C:\WINDOWS\system32\USER32.dll
0x77f10000 - 0x77f57000 	C:\WINDOWS\system32\GDI32.dll
0x76b40000 - 0x76b6d000 	C:\WINDOWS\system32\WINMM.dll
0x6d3c0000 - 0x6d3c8000 	C:\Sun\jdk\jre\bin\hpi.dll
0x76bf0000 - 0x76bfb000 	C:\WINDOWS\system32\PSAPI.DLL
0x6d820000 - 0x6d82c000 	C:\Sun\jdk\jre\bin\verify.dll
0x6d460000 - 0x6d47f000 	C:\Sun\jdk\jre\bin\java.dll
0x6d860000 - 0x6d86f000 	C:\Sun\jdk\jre\bin\zip.dll
0x6d0b0000 - 0x6d273000 	C:\Sun\jdk\jre\bin\awt.dll
0x73000000 - 0x73026000 	C:\WINDOWS\system32\WINSPOOL.DRV
0x77c10000 - 0x77c68000 	C:\WINDOWS\system32\msvcrt.dll
0x76390000 - 0x763ad000 	C:\WINDOWS\system32\IMM32.dll
0x774e0000 - 0x7761d000 	C:\WINDOWS\system32\ole32.dll
0x5ad70000 - 0x5ada8000 	C:\WINDOWS\system32\uxtheme.dll
0x73760000 - 0x737a9000 	C:\WINDOWS\system32\ddraw.dll
0x73bc0000 - 0x73bc6000 	C:\WINDOWS\system32\DCIMAN32.dll
0x7c9c0000 - 0x7d1d5000 	C:\WINDOWS\system32\shell32.dll
0x77f60000 - 0x77fd6000 	C:\WINDOWS\system32\SHLWAPI.dll
0x773d0000 - 0x774d3000 	C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll
0x5d090000 - 0x5d12a000 	C:\WINDOWS\system32\comctl32.dll
0x6d360000 - 0x6d3b3000 	C:\Sun\jdk\jre\bin\fontmanager.dll
0x6d620000 - 0x6d633000 	C:\Sun\jdk\jre\bin\net.dll
0x71ab0000 - 0x71ac7000 	C:\WINDOWS\system32\WS2_32.dll
0x71aa0000 - 0x71aa8000 	C:\WINDOWS\system32\WS2HELP.dll
0x6d640000 - 0x6d649000 	C:\Sun\jdk\jre\bin\nio.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
0x039c0000 - 0x039c8000 	C:\Program Files\Di recnik\ALTFHOOK.DLL
0x32600000 - 0x32776000 	C:\WINDOWS\system32\CC3260MT.DLL
0x77120000 - 0x771ac000 	C:\WINDOWS\system32\OLEAUT32.DLL

VM Arguments:
java_command: teampleyerreference.TeamPleyerReferenceApp
Launcher Type: SUN_STANDARD

Environment Variables:
JAVA_HOME=C:\Sun\jdk
CLASSPATH=.;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\jsf-api.jar;C:\Sun\SDK\javadb\lib\derbytools.jar;C:\Sun\SDK\javadb\lib\derby.jar;C:\Sun\SDK\javadb\lib\derbyclient.jar;C:\Sun\SDK\javadb\lib\derbynet.jar;C:\Program Files\Java\jre1.6.0_02\lib\ext\QTJava.zip
PATH=C:\Program Files\ActiveState Komodo Edit 4.1\;C:\watcom-1.3\binnt;C:\watcom-1.3\binw;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\wbem;c:\program files\microsoft sql server\90\tools\binn\;c:\program files\common files\gtk\2.0\bin;C:\Program Files\QuickTime\QTSystem\;C:\Sun\jdk\bin;C:\Sun\sdk\bin;C:\Python25;C:\Sun\sdk\lib\ant\bin;C:\Sun\SDK\javadb\bin;
USERNAME=Zlatko
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 15 Model 44 Stepping 2, AuthenticAMD



---------------  S Y S T E M  ---------------

OS: Windows XP Build 2600 Service Pack 2

CPU:total 1 (1 cores per cpu, 1 threads per core) family 15 model 44 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, mmxext, 3dnow, 3dnowext

Memory: 4k page, physical 1048048k(375592k free), swap 2518924k(1885976k free)

vm_info: Java HotSpot(TM) Client VM (1.6.0_02-b05) for windows-x86, built on Jun 14 2007 15:45:56 by "java_re" with unknown MS VC++:1310



REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
        entityManager = javax.persistence.Persistence.createEntityManagerFactory("leaguePU").createEntityManager();
        query = entityManager.createQuery(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getResourceMap(TeamPleyerReferenceView.class).getString("query.query")); // NOI18N
        list = com.sun.java.util.BindingCollections.observableList(query.getResultList());

        masterTable.setAutoCreateRowSorter(true);
        masterTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Id", "League", "Team Name"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Object.class, java.lang.String.class, java.lang.String.class
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }
        });
        masterTable.setName("masterTable"); // NOI18N

        javax.beans.binding.Binding binding = new javax.beans.binding.Binding(list, null, masterTable, "elements");
        javax.beans.binding.Binding childBinding = binding.addChildBinding("${id}", null);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN, 0);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN_CLASS, java.math.BigInteger.class);
        childBinding = binding.addChildBinding("${league}", null);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN, 1);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN_CLASS, String.class);
        childBinding = binding.addChildBinding("${teamName}", null);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN, 2);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN_CLASS, String.class);
        bindingContext.addBinding(binding);
        binding.bind();
        masterScrollPane.setViewportView(masterTable);

        idLabel.setText(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getResourceMap(TeamPleyerReferenceView.class).getString("idLabel.text")); // NOI18N

        leagueLabel.setText(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getResourceMap(TeamPleyerReferenceView.class).getString("leagueLabel.text")); // NOI18N

        teamnameLabel.setText(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getResourceMap(TeamPleyerReferenceView.class).getString("teamnameLabel.text")); // NOI18N

        bindingContext.addBinding(masterTable, "${selectedElement.id}", idField, "text");

        bindingContext.addBinding(masterTable, "${selectedElement.league}", leagueField, "text");

        bindingContext.addBinding(masterTable, "${selectedElement.teamName}", teamnameField, "text");

        saveButton.setAction(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getActionMap(TeamPleyerReferenceView.class, this).get("save"));

        refreshButton.setAction(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getActionMap(TeamPleyerReferenceView.class, this).get("refresh"));

        newButton.setAction(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getActionMap(TeamPleyerReferenceView.class, this).get("newRecord"));

        deleteButton.setAction(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getActionMap(TeamPleyerReferenceView.class, this).get("deleteRecord"));

        jLabel2.setText(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getResourceMap(TeamPleyerReferenceView.class).getString("jLabel2.text")); // NOI18N

        jLabel1.setText(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getResourceMap(TeamPleyerReferenceView.class).getString("jLabel1.text")); // NOI18N

        jerseyNumberField.setText(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getResourceMap(TeamPleyerReferenceView.class).getString("jerseyNumberField.text")); // NOI18N

        bindingContext.addBinding(slaveTable, "${selectedElement.jerseynumber}", jerseyNumberField, "text");

        firstNameField.setText(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getResourceMap(TeamPleyerReferenceView.class).getString("firstNameField.text")); // NOI18N

        bindingContext.addBinding(slaveTable, "${selectedElement.firstname}", firstNameField, "text");

        jLabel3.setText(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getResourceMap(TeamPleyerReferenceView.class).getString("jLabel3.text")); // NOI18N

        slaveScrollPane.setName("slaveScrollPanel"); // NOI18N

        slaveTable.setAutoCreateRowSorter(true);
        slaveTable.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Id", "First Name", "Last Name", "Jersey Name"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Object.class, java.lang.String.class, java.lang.String.class, java.lang.Integer.class
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }
        });

        binding = new javax.beans.binding.Binding(masterTable, "${selectedElement.players}", slaveTable, "elements");
        binding.setNullSourceValue(null);
        binding.setValueForIncompleteSourcePath(null);
        childBinding = binding.addChildBinding("${id}", null);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN, 0);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN_CLASS, java.math.BigInteger.class);
        childBinding = binding.addChildBinding("${firstname}", null);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN, 1);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN_CLASS, String.class);
        childBinding = binding.addChildBinding("${lastname}", null);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN, 2);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN_CLASS, String.class);
        childBinding = binding.addChildBinding("${jerseynumber}", null);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN, 3);
        childBinding.putParameter(javax.swing.binding.ParameterKeys.COLUMN_CLASS, Integer.class);
        bindingContext.addBinding(binding);
        binding.bind();
        slaveScrollPane.setViewportView(slaveTable);

        jLabel4.setText(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getResourceMap(TeamPleyerReferenceView.class).getString("jLabel4.text")); // NOI18N

        idField2.setText(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getResourceMap(TeamPleyerReferenceView.class).getString("idField2.text")); // NOI18N

        bindingContext.addBinding(slaveTable, "${selectedElement.id}", idField2, "text");

        lastNameFiled.setText(application.Application.getInstance(teampleyerreference.TeamPleyerReferenceApp.class).getContext().getResourceMap(TeamPleyerReferenceView.class).getString("lastNameFiled.text")); // NOI18N

        bindingContext.addBinding(slaveTable, "${selectedElement.lastname}", lastNameFiled, "text");

---------- END SOURCE ----------