This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 188626

Summary: Unwanted call of getValue()
Product: javafx Reporter: Martin Ryzl <mryzl>
Component: DebuggerAssignee: Michal Skvor <misk>
Status: VERIFIED FIXED    
Severity: normal CC: mentlicher
Priority: P1    
Version: 6.x   
Hardware: PC   
OS: Windows XP   
Issue Type: DEFECT Exception Reporter:
Bug Depends on:    
Bug Blocks: 173187    
Attachments: IDE screenshot

Description Martin Ryzl 2010-07-13 11:19:53 UTC
for the following fragment of code:

05: var c = bind d;
06: var d = 10;
07: d = 11;
08: d = 12;
09: d = 13;
10: println(d);

with a breakpoint on whatever line, variables view always shows the value of c and not 'Invalid value'. Here is the stacktrace with the caller for line 07:

java.lang.Exception: ---fxjdi: ReferenceType.getValue() called for javafxapplication6.Main.c
	at com.sun.javafx.jdi.FXReferenceType.getValue(FXReferenceType.java:379)
	at org.netbeans.modules.debugger.jpda.jdi.ReferenceTypeWrapper.getValue(ReferenceTypeWrapper.java:1111)
	at org.netbeans.modules.debugger.jpda.models.JPDAClassTypeImpl.staticFields(JPDAClassTypeImpl.java:222)
	at org.netbeans.modules.debugger.jpda.models.LocalsTreeModel.getChildrenImpl(LocalsTreeModel.java:175)
	at org.netbeans.modules.debugger.jpda.models.LocalsTreeModel.getChildren(LocalsTreeModel.java:129)
	at org.netbeans.spi.viewmodel.Models$DelegatingTreeModel.getChildren(Models.java:1516)
	at org.netbeans.modules.debugger.jpda.ui.models.VariablesTreeModelFilterSI.getChildren(VariablesTreeModelFilterSI.java:165)
	at org.netbeans.spi.viewmodel.Models$CompoundTreeModel.getChildren(Models.java:774)
	at org.netbeans.modules.debugger.jpda.ui.models.VariablesTreeModelFilter.getChildren(VariablesTreeModelFilter.java:221)
	at org.netbeans.spi.viewmodel.Models$CompoundTreeModel.getChildren(Models.java:774)
	at org.netbeans.modules.javafx.debugger.variablesfiltering.JavaFXVariablesFilter.getChildren(JavaFXVariablesFilter.java:112)
	at org.netbeans.spi.viewmodel.Models$CompoundTreeModel.getChildren(Models.java:774)
	at org.netbeans.spi.viewmodel.Models$CompoundModel.getChildren(Models.java:3798)
	at org.netbeans.modules.debugger.ui.views.ViewModelListener$1.getChildren(ViewModelListener.java:298)
	at org.netbeans.modules.viewmodel.TreeModelHyperNode$HyperModelChildren.getModelChildren(TreeModelHyperNode.java:238)
	at org.netbeans.modules.viewmodel.TreeModelNode$TreeModelChildren.run(TreeModelNode.java:1245)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
	at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1957)
java.lang.Exception: ---fxjdi: ReferenceType.getValue() called for javafxapplication6.Main.d
	at com.sun.javafx.jdi.FXReferenceType.getValue(FXReferenceType.java:379)
	at org.netbeans.modules.debugger.jpda.jdi.ReferenceTypeWrapper.getValue(ReferenceTypeWrapper.java:1111)
	at org.netbeans.modules.debugger.jpda.models.JPDAClassTypeImpl.staticFields(JPDAClassTypeImpl.java:222)
	at org.netbeans.modules.debugger.jpda.models.LocalsTreeModel.getChildrenImpl(LocalsTreeModel.java:175)
	at org.netbeans.modules.debugger.jpda.models.LocalsTreeModel.getChildren(LocalsTreeModel.java:129)
	at org.netbeans.spi.viewmodel.Models$DelegatingTreeModel.getChildren(Models.java:1516)
	at org.netbeans.modules.debugger.jpda.ui.models.VariablesTreeModelFilterSI.getChildren(VariablesTreeModelFilterSI.java:165)
	at org.netbeans.spi.viewmodel.Models$CompoundTreeModel.getChildren(Models.java:774)
	at org.netbeans.modules.debugger.jpda.ui.models.VariablesTreeModelFilter.getChildren(VariablesTreeModelFilter.java:221)
	at org.netbeans.spi.viewmodel.Models$CompoundTreeModel.getChildren(Models.java:774)
	at org.netbeans.modules.javafx.debugger.variablesfiltering.JavaFXVariablesFilter.getChildren(JavaFXVariablesFilter.java:112)
	at org.netbeans.spi.viewmodel.Models$CompoundTreeModel.getChildren(Models.java:774)
	at org.netbeans.spi.viewmodel.Models$CompoundModel.getChildren(Models.java:3798)
	at org.netbeans.modules.debugger.ui.views.ViewModelListener$1.getChildren(ViewModelListener.java:298)
	at org.netbeans.modules.viewmodel.TreeModelHyperNode$HyperModelChildren.getModelChildren(TreeModelHyperNode.java:238)
	at org.netbeans.modules.viewmodel.TreeModelNode$TreeModelChildren.run(TreeModelNode.java:1245)
	at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
	at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1957)
Comment 1 Martin Entlicher 2010-07-13 11:34:16 UTC
Should be fixed by issue #188447.
It's not integrated in release691 yet, since it was not verified yet.
Comment 2 Michal Skvor 2010-07-22 09:52:20 UTC
This is already fixed in trunk.
Comment 3 Alexandr Scherbatiy 2010-07-22 11:45:07 UTC
I use the NetBeans IDE Dev (Build 201007220001)
and still see the 'Invalid value' message.

See the attached screen-shot.
Comment 4 Alexandr Scherbatiy 2010-07-22 11:51:45 UTC
Created attachment 100973 [details]
IDE screenshot
Comment 5 Michal Skvor 2010-07-22 12:49:39 UTC
The invalid value message is for binded variables. This is feature when you don't call getValue for binded variables to prevent triggers which could be handled on this variable. Click on the circled arrow button in the table field to manually evaluate the variable.
Comment 6 Martin Ryzl 2010-07-22 12:50:45 UTC
That's correct behavior - the value of the bound variable has not been computed
yet and you have to click the Refresh icon to trigger the evaluation. One of
the features of JavaFX 1.3 is lazy binding, i.e. the bind expression is not
computed until the code actually access the bound variable. Instead of that the
variable is marked as invalid. Taking the same approach as Java, i.e. show the
real values could trigger chain of evaluation, changing the state of the
application significantly, something like Schroedinger cat. Perhaps the text
should be different - 'Not evaluated yet'?
Comment 7 Alexandr Scherbatiy 2010-08-03 07:59:41 UTC
verified in NetBeans IDE Dev (Build 201008030001)