Community
Participate
Working Groups
JGS & DW Primitive arrays don't implement toString(), so we need a method for allowing clients to supply a toString()-like 'pretty printer' for primitive arrays. Could we extend this to also allow client-supplied pretty printers for arbitrary types? As a first pass, we could just supply the primitive array pretty printers.
Currently when I select an array in the variables view, the detail area shows "Receiver does not implement selector {0} and signature {1}". Two problems (1) Our error message is not being filled in properly (should say "toString" and "()Ljava.lang.String". (2) We need pretty printers for arrays.
The JDIModelPresentation will provide a default style for rendering "toString ()" details for arrays - a simple "toString()" of each value placed inside square brackets, seperated by commas.
Released first pass. This is based on an interface implementation, IValueDetailProvider (though it isn't exposed yet), that is an inner class to JDIModelPresentation. We no longer lock up the UI thread while doing evaluation of toString(). Arbitrary arrays (Object[]) are handled. The API of IDebugModelPresentation has changed to support callback notification of eval results to requestor. There are several known issues: (1) toString() evals that time out result in a thread collapse in DebugView, which clears the VariableView until the eval thread has finished. We need a way to avoid this collapse from affecting the VariablesView. (2) Eval thread could keep running forever. Alternative is on timeout to pop up dialog informing user of situation and asking if they want to kill the program. (3) The timeout for evaluation should probably be a preference. This could also be mentioned in the timeout dialog in (2).
Fixed toString for multi-dimensional arrays. The if statement did a check in the wrong order (first checked if instanceof IJavaObject, rather an IJavaArray).
Related to bug# 6417
Related to bug# 8322
*** This bug has been marked as a duplicate of 8322 ***