Steps from bug 163715 comment 9: 0. Open attachment 199447 [details] 1. Copy content of A1:K4 and paste in a new spreadsheet. 2. Select A2:E4 and choose menu Insert - Chart - XY (Scatter) - Lines Only (could be other subtype), Next, (·) Data series in rows, [x] First row as label, [x] First column as label, Finish. 3. Edit the chart. 4. Choose menu Insert - Y Error Bars, (·) Cell Range, select H3:K4 range for Positive (+), OK The bars do not appear. Bibisected with linux-64-25.2 to 290c8f6e048fedf63437e3fdf629555ac89dd3ad Before step 3, get out of edit mode and move chart out of the way. In step 4, either select with the mouse after clicking the button next to the range field or use: $Sheet1.$H$3:$K$4
The bars do appear in Windows: Version: 25.2.0.3 (X86_64) / LibreOffice Community Build ID: e1cf4a87eb02d755bce1a01209907ea5ddc8f069 CPU threads: 4; OS: Windows 10 X86_64 (10.0 build 17763); UI render: Skia/Raster; VCL: win Locale: es-MX (es_AR); UI: en-US Calc: threaded And here there is no need to move the chart away, it is created starting from A5 (below the data). In version 24.7.2 it is created starting from F2 (at the right of the data).
Reproduced on macOS with: Version: 25.2.0.3 (AARCH64) / LibreOffice Community Build ID: e1cf4a87eb02d755bce1a01209907ea5ddc8f069 CPU threads: 8; OS: macOS 15.3.1; UI render: default; VCL: osx Locale: en-GB (en_GB.UTF-8); UI: en-US Calc: threaded "$Sheet4.$H$3:$K$4" displays the +ve error bars "$H$3:$K$4" does not display the +ve error bars
Checked, happens as described - as far as I can tell, I do not use Chart much. Indeed on win master it shows black lines from each data point to the right. Is that the intended behavior? Could we have a screenshot what is expected please for people who do not know the chart as well? This is a real problem. That change - up to now - did not cause any problems. What surprised me but shows that it does the same as before. Now we have a difference, but it *works* on one platform, on windows. I interpret this as a hint that the change basically works as intended (proved by showing no problems up to today), *but* that there are some subtle differences between std::unordered_set on win and the other platforms - that would be really hard. I do not really know where to start investigating - thinking about it...
Created attachment 199620 [details] Screenshot from oldest of linux-64-25.2 repo, kf5
@Buovjaga: Thanks for the screenshot (and also for the good step-by-step description)! Built linux version directly before 290c8f6e048fedf63437e3fdf629555ac8)9dd3ad that is 48659fa6cf8b2c5e3810696cf0c9257ddb57dd4d. This is good forchecking and probably needed deep-dive debugging... That version is working on linux. Going one further and re-checking...
As expected there it fails. No idea yet what to look for (since the same code works in windows)...
This one is hard. Started to debug into it in parallel on win and linux to see where the difference is - there must be one...
That selection lines on cells that show the source of chart data when chart is active are also different: Master: a2,e4 Old: a2,e4 and h3,k4 which is the $Sheet1.$H$3:$K$4 Y-error range Still, calling the 'menu Insert - Y Error Bars' again shows that Chart thinks there is something set - no fresh input dialog. AH: In master when I then call 'menu Insert - Y Error Bars' again, choose 'none' to get the selection and dialog back to initial, then 'Cell range' again and add the range, press OK I *get* the error bars added -> VERY strange... ...but also a workaround. I also get the error bars in master when I load a file that already has them (created with old version). The dialog also shows the range (after selecting 'none' and then 'cell range' again (why does that dialog not directly show the added/used CellRange for the ErrorBars...?) Thus it is not really broken but for some small reason the initial setting of the range does not work. Need to find that 'small reason'...
Now at chart2/source/controller/itemsetwrapper/StatisticsItemConverter.cxx in StatisticsItemConverter::ApplySpecialItem at SCHATTR_STAT_RANGE_POS (whioch is WhichID 26). On the 1st try to set that I get *no* xErrorBarSource which is a uno::Reference< chart2::data::XDataSource >, hence the action is not exectuted. The range given in the dlg is in the localItemSet.
Compared with old version: There I get a xErrorBarSource the 1st time when we get there with WhiochID 26. Also checked that we get there the 1st time in master when doing setting the range a 2nd time at the 1st time, too.
Debugging in to lcl_GetErrorBar. In OPropertySetHelper::getPropertyValue i get Master: nHandle = 12025 Old: nHandle = 12024 but that may just be due to the props being extended in master, but better not down.
In OPropertySet::GetPropertyValueByHandle is the difference: old: I get a aFoundIter with nHandle == 12024 Master: I get *no* aFoundIter and indeed in m_aProperties I have old: 5 entries Master: 4 entries and the diff entry is with ID 12024 a uno::Any("com.sun.star.beans.XPropertySet...") which is not nullptr. Thus *somehow* the m_xPropertySet in ItemConverter is filled differently in Master and the css::beans::XPropertySet is missing. Who is preparing that data and where? On the 2nd call (case SCHATTR_STAT_RANGE_POS gets called twice in Master and old) still the same. On the 2nd time setting the range (workaround) that value *is* available in master and all works as expected. Thus I have to find out who, where and when property with name CHART_UNONAME_ERRORBAR_Y ("ErrorBarY") is set and why this is not done in master (anymore)...
It gets set in same file, chart2/source/controller/itemsetwrapper/StatisticsItemConverter.cxx, in StatisticsItemConverter::ApplySpecialItem. That again is triggerd by dlg OK answer and applies the Items set from the dialog. All Items (5) there look good, same in Old and Master. For *some* reason the DefaultErrorBar set there is no longer set when SCHATTR_STAT_RANGE_POS is executed in StatisticsItemConverter::ApplySpecialItem...
Found the error, see comments in commit at https://gerrit.libreoffice.org/c/core/+/182742.
Armin Le Grand (Collabora) committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/ec65a00298ffbb30869dec222887f42f3ca4533e tdf#165491 ITEM regression: Chart needs order of events It will be available in 25.8.0. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Thanks, now they appear Arch Linux 64-bit Version: 25.8.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: e384f2e8de9603c0e10bed9e35f26be08c0ca86c CPU threads: 8; OS: Linux 6.13; UI render: default; VCL: kf6 (cairo+wayland) Locale: fi-FI (fi_FI.UTF-8); UI: en-US Calc: CL threaded Built on 10 March 2025
@Buovjaga: Thanks for finding stuff like that
Armin Le Grand (Collabora) committed a patch related to this issue. It has been pushed to "libreoffice-25-2": https://git.libreoffice.org/core/commit/365d65d1d94f7bf64a6057aaef06d4a45a7b2c1e tdf#165491 ITEM regression: Chart needs order of events It will be available in 25.2.3. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.