Bug 108952 - FILESAVE: DOCX: VML connectors lost after roundtrip
Summary: FILESAVE: DOCX: VML connectors lost after roundtrip
Status: RESOLVED DUPLICATE of bug 147919
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
4.4 all versions
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: dataLoss, filter:doc, filter:docx
Depends on:
Blocks: VML-Shapes
  Show dependency treegraph
 
Reported: 2017-07-04 17:05 UTC by Xisco Faulí
Modified: 2022-06-07 11:59 UTC (History)
7 users (show)

See Also:
Crash report or crash signature:


Attachments
sample (27.50 KB, application/msword)
2017-07-04 17:05 UTC, Xisco Faulí
Details
Before VS after ( LibreOffice 7.1 master ) (49.67 KB, image/png)
2020-07-20 09:07 UTC, Xisco Faulí
Details
The original file and its docx version in LO7.1 alpha (121.83 KB, image/png)
2020-10-12 06:43 UTC, Gabor Kelemen (allotropia)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Xisco Faulí 2017-07-04 17:05:21 UTC
Created attachment 134482 [details]
sample

Steps:
1. Open attached document
2. Save it as .DOCX
3. Open the new document

Observed behaviour: Connector are lost

Reproduced in

Version: 6.0.0.0.alpha0+
Build ID: cb37c5f0f3de7b545231a53d46a5271058af76ad
CPU threads: 1; OS: Windows 6.1; UI render: default; 
TinderBox: Win-x86@42, Branch:master, Time: 2017-06-23_06:55:41
Locale: es-ES (es_ES); Calc: group

and

Version: 4.3.0.0.alpha1+
Build ID: c15927f20d4727c3b8de68497b6949e72f9e6e9e

not reproduced when saved to .DOC

console output:

TODO VMLExport::Commit(), unimplemented id: 135, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 6003403, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 771, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 4507, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 383, value: 4097, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 771, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 4507, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 383, value: 4097, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 771, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 4507, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 383, value: 4097, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 771, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 4507, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 383, value: 4097, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 3600, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 135, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 129, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 131, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 130, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 132, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 191, value: 262148, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 3600, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 135, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 129, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 131, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 130, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 132, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 191, value: 262148, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 3600, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 135, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 129, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 131, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 130, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 132, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 191, value: 262148, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 3600, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 135, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 129, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 131, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 130, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 132, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 191, value: 262148, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 3600, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 135, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 129, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 131, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 130, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 132, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 191, value: 262148, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 135, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 6003403, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 771, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 383, value: 4097, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 771, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 383, value: 4097, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 771, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 383, value: 4097, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 3600, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 135, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 129, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 131, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 130, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 132, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 191, value: 262148, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 3600, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 135, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 129, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 131, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 130, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 132, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 191, value: 262148, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 3600, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 135, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 129, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 131, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 130, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 132, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 191, value: 262148, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 327, value: 3600, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 135, value: 1, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 450, value: 16777215, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 449, value: 65536, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 129, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 131, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 130, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 132, value: 0, data: [0, (nil)]
TODO VMLExport::Commit(), unimplemented id: 191, value: 262148, data: [0, (nil)]
Comment 1 Buovjaga 2017-07-18 11:42:09 UTC
Repro.

With 3.5, the whole diagram disappears, so this is an improvement!

Win 7 Pro 64-bit Version: 6.0.0.0.alpha0+ (x64)
Build ID: 7a743b472dadb817eb7a6ed8063cee80ce7412e8
CPU threads: 4; OS: Windows 6.1; UI render: default; 
TinderBox: Win-x86_64@42, Branch:master, Time: 2017-07-18_01:01:15
Locale: fi-FI (fi_FI); Calc: CL
Comment 2 QA Administrators 2018-07-19 02:41:37 UTC Comment hidden (obsolete)
Comment 3 QA Administrators 2020-07-19 03:35:16 UTC Comment hidden (obsolete)
Comment 4 Xisco Faulí 2020-07-20 09:07:04 UTC
Still reproducible in

Version: 7.1.0.0.alpha0+
Build ID: 27cf6e73d05ac803d5fc12c53aea20ed53007234
CPU threads: 4; OS: Linux 4.19; UI render: default; VCL: gtk3
Locale: en-US (en_US.UTF-8); UI: en-US
Calc: threaded
Comment 5 Xisco Faulí 2020-07-20 09:07:41 UTC
Created attachment 163303 [details]
Before VS after ( LibreOffice 7.1 master )
Comment 6 NISZ LibreOffice Team 2020-10-05 13:31:16 UTC
This doc file has organizational charts, which is the ancestor of SmartArt.
Also the upper chart has connector lines that are already missing on fileopen.
Comment 7 Gabor Kelemen (allotropia) 2020-10-12 06:43:28 UTC
Created attachment 166286 [details]
The original file and its docx version in LO7.1 alpha

Looks somewhat better now that bug #99810 was fixed in:

Version: 7.1.0.0.alpha0+
Build ID: 67edb62a88f331d93ba3aa0741bd4ef734d56062
CPU threads: 8; OS: Linux 5.0; UI render: default; VCL: gtk3
Locale: en-US (hu_HU.UTF-8); UI: en-US
Calc: threaded
Comment 8 Xisco Faulí 2022-05-27 08:53:00 UTC
(In reply to Gabor Kelemen (allotropia) from comment #7)
> Created attachment 166286 [details]
> The original file and its docx version in LO7.1 alpha
> 
> Looks somewhat better now that bug #99810 was fixed in:
> 
> Version: 7.1.0.0.alpha0+
> Build ID: 67edb62a88f331d93ba3aa0741bd4ef734d56062
> CPU threads: 8; OS: Linux 5.0; UI render: default; VCL: gtk3
> Locale: en-US (hu_HU.UTF-8); UI: en-US
> Calc: threaded

Indeed. Closing as duplicated of bug 99810

*** This bug has been marked as a duplicate of bug 99810 ***
Comment 9 Gabor Kelemen (allotropia) 2022-06-07 11:25:01 UTC
This was actually fixed by:

https://git.libreoffice.org/core/+/4cc3a144ef2ecc019da42bb9b115267a18e9559f


author	Tibor Nagy <nagy.tibor2@nisz.hu>	Fri Apr 29 14:08:17 2022 +0200
committer	László Németh <nemeth@numbertext.org>	Tue May 10 16:51:54 2022 +0200

tdf#147919 PPTX export: fix curved and bent connector shape

Before this in 7.3, there were incorrectly bent connectors exported. As you can observe on attachment 166286 [details] the vertical line attached to the Colors box under the letter C, not the letter l like in the original.

Now it attaches under the l, even in Word (with the caveat that this is a smartart -> grouped shape conversion, so once we have proper Dynamic Diagram support, the doc import and docx export will probably need to be reimplemented :) ).

Thanks Tibor for making this work :)

*** This bug has been marked as a duplicate of bug 147919 ***