Issue 125741

Summary: Crash in Basic IDE on watch of Cell in TableShape
Product: App Dev Reporter: Regina Henschel <rb.henschel>
Component: scriptingAssignee: AOO issues mailing list <issues>
Status: CONFIRMED --- QA Contact:
Severity: Normal    
Priority: P3 CC: hanya.runo, marcelly.bernard, oliver.brinzing
Version: 4.0.1   
Target Milestone: ---   
Hardware: All   
OS: All   
Issue Type: DEFECT Latest Confirmation in: 4.2.0-dev
Developer Difficulty: ---
Description Flags
document with DrawTable and macro to access cell
Modified macro reading property ParaIsNumberingRestart none

Description Regina Henschel 2014-10-11 13:52:32 UTC
Created attachment 84056 [details]
document with DrawTable and macro to access cell

Set your OpenOffice to allow macros and close all other documents.
Open the attached document. It contains a macro.
Open the Basic IDE and set a breakpoint on line "dummy = 0" of macro "examine_Cell".
Go back to document. There should be a toolbar with button "examine_Cell" to run the macro.
Run the macro. It might be, that you need to run it twice to actually stop at the break point.
Open IDE. Add variable "oLeftTopCell" to the watch window.
Expand the + of it in the watch window.

My debug build gives the error messages:
Error: unknown which - dont ask me for defaults
with Id/Pos: 3903 From File c:/AOO_debugbuild_420/trunk/main/svl/source/items/itempool.cxx at Line 958
Error: Which-Id nicht im Pool-Bereich From File c:/AOO_debugbuild_420/trunk/main/svl/source/inc\poolio.hxx at Line 207

You can basically access the cell via macro, which is proved by the statement "msgbox oLeftTopCell.getString()". But the access via watch window is faulty.
Comment 1 mroe 2014-10-11 19:54:40 UTC
I can reproduce the described behaviour also with 4.0.1 and a 4.2.0-dev. (Not tested with 3.x.)
Comment 2 Oliver Brinzing 2014-10-12 07:48:55 UTC
maybe releated to:
basic ide: inspection of object crashes oo - memory leak
Comment 3 Regina Henschel 2014-10-12 10:48:04 UTC
I think, it is not related, see my comment in issue 84092. In addition the inspected object here is a TableShape, which does not exist in OOo2.3.
Comment 4 bmarcelly 2014-10-21 15:12:17 UTC
Created attachment 84096 [details]
Modified macro reading property ParaIsNumberingRestart

I reproduce the crash with attachment 84056 [details] on Apache OpenOffice 4.1.1 Windows 7.
But, doing various editing of the macros, sometimes there is no crash,  oLeftTopCell is correctly analyzed by the IDE watch.

The crash also happens if I use Xray to analyse oLeftTopCell. This is consistent because Xray and the watch window use the same introspection techniques.

Using a debugging version of Xray, I found that the crash occurs when trying to obtain the value of property ParaIsNumberingRestart (of service ParagraphProperties).

In my attachment the macro is modified (lines 16,17,18) to read the property oLeftTopCell.ParaIsNumberingRestart which is a boolean.
Run the macro, you will see :
  error 13 at line : 17
  Data type mismatch.

This error should not happen, this is the symptom of an internal bug.
Comment 5 hanya 2014-10-25 16:35:06 UTC
Each cells can contain multiple paragraphs even numbered and non-numbered together. 
Numbering related properties are paragraph dependent. So these properties should 
not be listed on the cell itself, in my opinion. 

The reson of the crash is these properties are there in the SfxItemPropertyMapEntry but 
the generated itemset do not have these entries because 
properties are processed by ::sdr::properties::CellProperties class. 
These properties should be processed in the each API methods.