PL: Dummy in Form Builder

45 views
Skip to first unread message

Bruno Buzzi Brassesco

unread,
Jan 21, 2021, 2:31:58 PM1/21/21
to orb...@googlegroups.com
Hi,

In which situation the Form Builder will set the form source to:
<dummy xmlns:xbl="http://www.w3.org/ns/xbl" xmlns:xxf="http://orbeon.org/oxf/xml/xforms"
       xmlns:xxi="http://orbeon.org/oxf/xml/xinclude"
       xmlns:saxon="http://saxon.sf.net/"
       xmlns:fbf="java:org.orbeon.oxf.fb.FormBuilderXPathApi"
       xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
       xmlns:secure="java:org.orbeon.oxf.util.SecureUtils"
       xmlns:xf="http://www.w3.org/2002/xforms"
       xmlns:xh="http://www.w3.org/1999/xhtml"
       xmlns:p="http://www.orbeon.com/oxf/pipeline"
       xmlns:ev="http://www.w3.org/2001/xml-events"
       xmlns:xi="http://www.w3.org/2001/XInclude"
       xmlns:toolboxOps="java:org.orbeon.oxf.fb.ToolboxOps"
       xmlns:xs="http://www.w3.org/2001/XMLSchema"
       xmlns:frf="java:org.orbeon.oxf.fr.FormRunner"
       xmlns:fb="http://orbeon.org/oxf/xml/form-builder"/>

There is a bug in my Persistence Layer for any form that use a section library:
1) Create the form
2) Add a section from any library
3) Publish the form
4) Goto to summary
5) Edit the form
And now the form is not displayed and if I "Edit Source" in the Form Builder it display the HTML code above (with the dummy mode).

It is also strange that only happen with Publish because if it is only Save it can be edit normaly.

regards,
bruno

Alessandro Vernet

unread,
Jan 21, 2021, 8:40:22 PM1/21/21
to orb...@googlegroups.com
Hi Bruno,

The `fb-form-instance` starts with `<dummy/>`, but it should always be
replaced by something else, so I suspect that some problem happened during
that process. Have you tried to see if you can find any relevant error in
the `orbeon.log`, if necessary increasing the log level (e.g. per the dev
config)?

https://doc.orbeon.com/configuration/advanced/xforms-logging#development-configuration

-Alex

-----
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
--
Sent from: http://discuss.orbeon.com/

BrunoBB

unread,
Jan 22, 2021, 1:35:32 PM1/22/21
to orb...@googlegroups.com
Hi,

In which situation the Form Builder will set the form source to:
[dummy xmlns:xbl="http://www.w3.org/ns/xbl"
xmlns:xxf="http://orbeon.org/oxf/xml/xforms"
xmlns:xxi="http://orbeon.org/oxf/xml/xinclude"
xmlns:saxon="http://saxon.sf.net/"
xmlns:fbf="java:org.orbeon.oxf.fb.FormBuilderXPathApi"
xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
xmlns:secure="java:org.orbeon.oxf.util.SecureUtils"
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:xh="http://www.w3.org/1999/xhtml"
xmlns:p="http://www.orbeon.com/oxf/pipeline"
xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:toolboxOps="java:org.orbeon.oxf.fb.ToolboxOps"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:frf="java:org.orbeon.oxf.fr.FormRunner"
xmlns:fb="http://orbeon.org/oxf/xml/form-builder"]

There is a bug in my Persistence Layer for any form that use a section
library:
1) Create the form
2) Add a section from any library
3) Publish the form
4) Goto to summary
5) Edit the form
And now the form is not displayed and if I "Edit Source" in the Form Builder
it display the HTML code above (with the dummy mode).

It is also strange that only happen with Publish because if it is only Save
it can be edit normaly.

regards,
bruno



Bruno Buzzi Brassesco

unread,
Jan 22, 2021, 3:40:39 PM1/22/21
to orb...@googlegroups.com
Hi,

I think it is a problem of Form formats.

Because I executed some old TestCases that for sure had an old format (4.0, 4.8 i think) and also created some forms online so they were stored with 2019.1.0 format.

And is not supported to have different formats in the same PL.

I think this is because if I delete the old forms and only use the one created online then all forms are displayed correctly.

When different formats are mixed then the problems start.

Is there any way to transform old formats to new one with a script ?}

regards,
bruno





Alessandro Vernet

unread,
Jan 24, 2021, 11:20:31 PM1/24/21
to orb...@googlegroups.com
Hi Bruno,

A few things:

1. When opening a form in Form Builder, the form definition is automatically
upgraded to a format that your new version of Form Builder supports.
2. When running a form, Form Runner is expected to be backward compatible
with your form definition.
3. If you want to upgrade or or subset of your form definitions, instead
doing it one by one, you can do it for several forms from the Form Runner
home page (see section linked below).

https://doc.orbeon.com/form-runner/features/home-page#upgrading-form-definitions

If you're having this problem in Form Builder, since Form Builder upgrades
forms when they are opened, manually upgrading the form most likely won't
solve the problem, and you're most likely hitting a problem related to the
upgrade, either caused by a bug or something in your form definition that is
unexpected.

If you'd like us to look at it, we'll need a form, if possible minimal, that
we can use to reproduce this.

-Alex

-----
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet

Bruno Buzzi Brassesco

unread,
Jan 25, 2021, 3:15:54 PM1/25/21
to orb...@googlegroups.com
Alex,

Still checking this error but the problem is only on Form Builder.

The form runner correctly renders the form in the NEW url. Also the EDIT page the form is correctly rendered.
Only the Form Builder does not display the form definition.

The root of the problem is unknown yet but if I found something I would let you know.

regards,
bruno


Bruno Buzzi Brassesco

unread,
Jan 25, 2021, 4:13:28 PM1/25/21
to orb...@googlegroups.com
Alex,

I found the culprit but not sure yet why this is happening...
After Publishing a form an extra XML is added after <xf:model> node. Also the problems are forms with references to library forms.
(This does not happen when the form definition is Saved only after Publishing).

The node is the following (not sure if it is a bug on my PL or is an Orbeon thing):
<xbl:xbl xmlns:xbl="http://www.w3.org/ns/xbl" xmlns:fbf="java:org.orbeon.oxf.fb.FormBuilderXPathApi" xmlns:xxbl="http://orbeon.org/oxf/xml/xbl" xmlns:frf="java:org.orbeon.oxf.fr.FormRunner" xmlns:component="http://orbeon.org/oxf/xml/form-builder/component/gs/library" xmlns:p="http://www.orbeon.com/oxf/pipeline"><xbl:binding id="gs-section-1-component" element="component|section-1" class="fr-section-component"><xbl:implementation><xf:model id="section-1-model"><xf:instance id="fr-form-instance" xxbl:mirror="true" xxf:index="id"><empty/></xf:instance><xf:instance id="fr-form-template"><section-1>
                        <grid-1>
                            <gs_name/>
                        </grid-1>
                    </section-1></xf:instance><xf:bind id="fr-form-binds" ref="instance(''fr-form-instance'')"><xf:bind id="grid-1-bind" ref="grid-1" name="grid-1">
                        <xf:bind id="gs_name-bind" name="gs_name" ref="gs_name" xxf:whitespace="trim"/>
                    </xf:bind></xf:bind><xf:instance id="fr-form-resources" xxf:readonly="true"><resources><resource xml:lang="en"><section-1>
                            <label>Untitled Section</label>
                        </section-1><gs_name>
                            <label>GS Name</label>
                            <hint/>
                        </gs_name></resource></resources></xf:instance><xf:instance id="readonly"><readonly/></xf:instance><xf:var name="fr-params" value="xxf:instance(''fr-parameters-instance'')"/><xf:var name="fr-mode" value="$fr-params/mode"/><xf:bind ref="instance(''fr-form-instance'')" readonly="                             fr:is-readonly-mode()         or                             instance(''readonly'') = ''true'' or                             fr:is-design-time()"/><xf:action event="xforms-model-construct-done" class="fr-design-time-preserve"><xf:var name="is-empty" value="empty(instance()/*)"/><xf:action if="$is-empty"><xf:insert context="instance()" origin="instance(''fr-form-template'')/*"/><xf:rebuild/><xf:recalculate xxf:defaults="true"/></xf:action><xf:action if="not($is-empty)"><xf:var xmlns:migration="java:org.orbeon.oxf.fr.SimpleDataMigration" name="simply-migrated" value="                                     migration:dataMaybeWithSimpleMigration(                                         event(''xxf:absolute-targetid''),                                         instance(''fr-form-template''),                                         instance()                                     )"/><xf:action if="exists($simply-migrated)"><xf:delete ref="instance()/*"/><xf:insert context="instance()" origin="$simply-migrated/*"/><xf:rebuild/><xf:recalculate xxf:defaults="true"/></xf:action></xf:action></xf:action><xf:action event="xforms-model-construct-done"><xf:insert xmlns:migration="java:org.orbeon.oxf.fr.SimpleDataMigration" iterate="migration:iterateBinds(event(''xxf:absolute-targetid''), instance())" context="." origin="xf:attribute(''fr:relevant'', ''false'')"/></xf:action><xf:insert observer="fr-section-template-view" event="xforms-disabled" xxf:phantom="true" if="event(''xxf:binding'')/root()/* is instance(''fr-form-instance'')" context="event(''xxf:binding'')" origin="xf:attribute(''fr:relevant'', ''false'')"/><xf:delete observer="fr-section-template-view" event="xforms-enabled" xxf:phantom="true" if="event(''xxf:binding'')/root() is instance(''fr-form-instance'')/root()" ref="event(''xxf:binding'')/@fr:relevant"/></xf:model></xbl:implementation><xbl:template><xf:group appearance="xxf:internal" model="section-1-model" id="fr-section-template-view"><xf:var name="context" id="context" value="xxf:binding-context(''gs-section-1-component'')"/><xf:var name="readonly" as="xs:boolean" value="exf:readonly($context)"><xf:setvalue event="xforms-enabled xforms-value-changed" ref="instance(''readonly'')" value="exf:readonly($context)" class="fr-design-time-preserve"/></xf:var><xf:var name="fr-resources" as="element()?"><xxf:value value="$fr-resources" xxbl:scope="outer"/></xf:var><xf:var name="form-resources" value="instance(''fr-form-resources'')/(resource[@xml:lang = xxf:instance(''fr-language-instance'')], resource[1])[1]" as="element(resource)"/><xf:label xmlns:oxf="http://www.orbeon.com/oxf/processors" ref="$form-resources/section-1/label"/><fr:grid xmlns:oxf="http://www.orbeon.com/oxf/processors" id="grid-1-grid" bind="grid-1-bind">
                        <fr:c y="1" x="1" w="12">
                            <xf:input id="gs_name-control" bind="gs_name-bind" class="fr-summary fr-search">
                                <xf:label ref="$form-resources/gs_name/label"/>
                                <xf:hint ref="$form-resources/gs_name/hint"/>
                                <xf:alert ref="$fr-resources/detail/labels/alert"/>
                            </xf:input>
                        </fr:c>
                    </fr:grid></xf:group></xbl:template></xbl:binding></xbl:xbl>

Bruno Buzzi Brassesco

unread,
Jan 25, 2021, 4:22:10 PM1/25/21
to orb...@googlegroups.com
Hi Alex,

Just to confirm that is Orbeon that adds the extra <xbl:xbl> node and only does this on Publishing.
Because my services receive the XML string with that node added.

The workaround is to Save the form once after the Publishing and this action removes the extra node and the form can be edited from the Summary without problems.

regards,
bruno

Alessandro Vernet

unread,
Jan 26, 2021, 3:18:14 PM1/26/21
to orb...@googlegroups.com
Hi Bruno,

Are you saying that you:

1. Open the form in Form Builder, the form shows properly.
2. If you open edit source, that additional section does not show in the
source.
3. You publish the form.
4. You edit the source again, and now that additional section does show in
the source.
5. You reload the form in Form Builder, and the page shows empty.

Is this what is happening?

Bruno Buzzi Brassesco

unread,
Jan 27, 2021, 1:59:57 PM1/27/21
to orb...@googlegroups.com
Alex,
1) Create the form
2) Add a section from the App library
3) Publish the form
4) Goto to summary
5) Edit the form
Orbeon 2020.1

At 3) Orbeon is sending the extra node in the XML string. Then in 5) the form is not displayed because of the extra node.

It does NOT happen with Save.

regards,
bruno

Alessandro Vernet

unread,
Jan 28, 2021, 12:12:17 AM1/28/21
to orb...@googlegroups.com
Got it Bruno, thank you for the precision. But I'm afraid I don't have much
of an idea of what could be going wrong. To get to the bottom of this, we'd
need to have minimal form that we can use to reproduce and debug this.

Bruno Buzzi Brassesco

unread,
Jan 28, 2021, 11:39:03 AM1/28/21
to orb...@googlegroups.com
Hi,

Let me know when you deploy Orbeon 2020.1 on https://www.orbeon.com/try

I will try it there ...

regards,
bruno

BrunoBB

unread,
Jan 28, 2021, 1:00:37 PM1/28/21
to orb...@googlegroups.com
Hi,

Let me know when you deploy Orbeon 2020.1 on https://www.orbeon.com/try

I will try it there ...

regards,
bruno

Alessandro Vernet

unread,
Jan 29, 2021, 12:49:11 AM1/29/21
to orb...@googlegroups.com
Bruno, will do.

-Alex

-----
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet

Alessandro Vernet

unread,
Feb 4, 2021, 12:52:31 PM2/4/21
to orb...@googlegroups.com
Bruno, here you go: 2020.1.1 is now deployed on https://demo.orbeon.com.

Bruno Buzzi Brassesco

unread,
Feb 5, 2021, 2:44:58 PM2/5/21
to orb...@googlegroups.com
Alex,

Orbeon 2020.1.1 behave as expected.

My local installation is 2020.1, so i will upgrade and check if it is happening.

regards,
bruno

Bruno Buzzi Brassesco

unread,
Feb 5, 2021, 4:49:00 PM2/5/21
to orb...@googlegroups.com
Alex,

I have made a video with the problem:
1) It shows the library
2) Create a new form using a section of 1)
3) Publish it
4) With a breakpoint it show the extra XBL node that is inserted in the XML of the form (with Save this does not happend)
5) Try to edit 3) but nothing is displayed

Maybe the video gives you some clues of the cause:

Alessandro Vernet

unread,
Feb 8, 2021, 8:19:40 PM2/8/21
to orb...@googlegroups.com
Hi Bruno,

You are saying that 2020.1.1 behaves as expected, and that the problem only
happened with 2020.1? Then the issue is fixed, isn't it, or am I missing
something?

Bruno Buzzi Brassesco

unread,
Feb 10, 2021, 3:45:07 PM2/10/21
to orb...@googlegroups.com
Alex,

It happens on Orbeon 2020.1.1 but only with my Persistence Layer. If i switch to MySQL it works fine.

I do not know why the <xbl:xbl>... node is being added on Publish action only (see previous post for the complete <xbl> node).
Also the XML is taken from http put request directly so at this point my PL is doing nothing only reading the XML from the request body (which already has the <xbl> node).

regards,
bruno

Bruno Buzzi Brassesco

unread,
Feb 10, 2021, 4:42:23 PM2/10/21
to orb...@googlegroups.com
Alex,

This is a complete form with the XBL node added, search for "xbl:xbl".

<?xml version="1.0" encoding="UTF-8"?>
<xh:html xmlns:array="http://www.w3.org/2005/xpath-functions/array" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:exf="http://www.exforms.org/exf/1-0" xmlns:fb="http://orbeon.org/oxf/xml/form-builder" xmlns:fr="http://orbeon.org/oxf/xml/form-runner" xmlns:map="http://www.w3.org/2005/xpath-functions/map" xmlns:saxon="http://saxon.sf.net/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sql="http://orbeon.org/oxf/xml/sql" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:xh="http://www.w3.org/1999/xhtml" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xxf="http://orbeon.org/oxf/xml/xforms" xmlns:xxi="http://orbeon.org/oxf/xml/xinclude">
<xh:head>
<xh:title>11</xh:title>
<xf:model xxf:analysis.calculate="true" xxf:expose-xpath-types="true" id="fr-form-model">
<!-- Main instance -->
<xf:instance xxf:exclude-result-prefixes="#all" id="fr-form-instance" xxf:index="id">
<form>
<section-2>
<grid-1>
<name/>
<surname/>
</grid-1>
</section-2>
</form>
</xf:instance>
<!-- Bindings -->

<xf:bind id="fr-form-binds" ref="instance(''fr-form-instance'')">
<xf:bind id="section-2-bind" name="section-2" ref="section-2"/>
</xf:bind>
<!-- Metadata -->
<xf:instance xxf:exclude-result-prefixes="#all" id="fr-form-metadata" xxf:readonly="true">
<metadata>
<application-name>gs</application-name>
<form-name>test11</form-name>
<title xml:lang="en">11</title>
<description xml:lang="en"/>
<created-with-version>2020.1.1.202102012142 PE</created-with-version>
<library-versions>
<app>3</app>
</library-versions>
<updated-with-version>2020.1.1.202102012142 PE</updated-with-version>
<migration version="2019.1.0">{"migrations":[{"containerPath":[{"value":"section-2"}],"newGridElem":{"value":"grid-1"},"afterElem":null,"content":[{"value":"name"},{"value":"surname"}],"topLevel":false}]}</migration>
</metadata>
</xf:instance>
<!-- Attachments -->
<xf:instance xxf:exclude-result-prefixes="#all" id="fr-form-attachments">
<attachments/>
</xf:instance>
<!-- All form resources -->
<xf:instance xxf:exclude-result-prefixes="#all" id="fr-form-resources" xxf:readonly="true">

<resources>
<resource xml:lang="en">
<section-2>
<label/>
<help/>
</section-2>
</resource>
</resources>
</xf:instance>
</xf:model>
<xbl:xbl xmlns:component="http://orbeon.org/oxf/xml/form-builder/component/gs/library" xmlns:fbf="java:org.orbeon.oxf.fb.FormBuilderXPathApi" xmlns:frf="java:org.orbeon.oxf.fr.FormRunner" xmlns:p="http://www.orbeon.com/oxf/pipeline" xmlns:xbl="http://www.w3.org/ns/xbl" xmlns:xxbl="http://orbeon.org/oxf/xml/xbl">
<xbl:binding class="fr-section-component" element="component|section-1" id="gs-section-1-component">

<xbl:implementation>
<xf:model id="section-1-model">
<xf:instance id="fr-form-instance" xxf:index="id" xxbl:mirror="true">

<empty/>
</xf:instance>
<xf:instance id="fr-form-template">
<section-1>
<grid-1>
<name/>
<surname/>

</grid-1>
</section-1>
</xf:instance>
<xf:bind id="fr-form-binds" ref="instance(''fr-form-instance'')">
<xf:bind id="grid-1-bind" name="grid-1" ref="grid-1">
<xf:bind id="name-bind" name="name" ref="name" xxf:whitespace="trim"/>
<xf:bind id="surname-bind" name="surname" ref="surname" xxf:whitespace="trim"/>

</xf:bind>
</xf:bind>
<xf:instance id="fr-form-resources" xxf:readonly="true">
<resources>
<resource xml:lang="en">
<section-1>
<label>Name</label>
</section-1>
<name>
<label>Name</label>
<hint/>
</name>
<surname>
<label>Surname</label>
<hint/>
</surname>

</resource>
</resources>
</xf:instance>
<xf:instance id="readonly">
<readonly/>
</xf:instance>
<xf:var name="fr-params" value="xxf:instance(''fr-parameters-instance'')"/>
<xf:var name="fr-mode" value="$fr-params/mode"/>
<xf:bind readonly="                             fr:is-readonly-mode()         or                             instance(''readonly'') = ''true'' or                             fr:is-design-time()" ref="instance(''fr-form-instance'')"/>
<xf:action class="fr-design-time-preserve" event="xforms-model-construct-done">

<xf:var name="is-empty" value="empty(instance()/*)"/>
<xf:action if="$is-empty">
<xf:insert context="instance()" origin="instance(''fr-form-template'')/*"/>
<xf:rebuild/>
<xf:recalculate xxf:defaults="true"/>
</xf:action>
<xf:action if="not($is-empty)">
<xf:var xmlns:migration="java:org.orbeon.oxf.fr.SimpleDataMigration" name="simply-migrated" value="                                     migration:dataMaybeWithSimpleMigration(                                         event(''xxf:absolute-targetid''),                                         instance(''fr-form-template''),                                         instance()                                     )"/>
<xf:action if="exists($simply-migrated)">
<xf:delete ref="instance()/*"/>
<xf:insert context="instance()" origin="$simply-migrated/*"/>
<xf:rebuild/>
<xf:recalculate xxf:defaults="true"/>
</xf:action>
</xf:action>
</xf:action>
<xf:action event="xforms-model-construct-done">
<xf:insert xmlns:migration="java:org.orbeon.oxf.fr.SimpleDataMigration" context="." iterate="migration:iterateBinds(event(''xxf:absolute-targetid''), instance())" origin="xf:attribute(''fr:relevant'', ''false'')"/>
</xf:action>
<xf:insert context="event(''xxf:binding'')" event="xforms-disabled" if="event(''xxf:binding'')/root()/* is instance(''fr-form-instance'')" observer="fr-section-template-view" origin="xf:attribute(''fr:relevant'', ''false'')" xxf:phantom="true"/>
<xf:delete event="xforms-enabled" if="event(''xxf:binding'')/root() is instance(''fr-form-instance'')/root()" observer="fr-section-template-view" ref="event(''xxf:binding'')/@fr:relevant" xxf:phantom="true"/>

</xf:model>
</xbl:implementation>
<xbl:template>
<xf:group appearance="xxf:internal" id="fr-section-template-view" model="section-1-model">
<xf:var id="context" name="context" value="xxf:binding-context(''gs-section-1-component'')"/>
<xf:var as="xs:boolean" name="readonly" value="exf:readonly($context)">
<xf:setvalue class="fr-design-time-preserve" event="xforms-enabled xforms-value-changed" ref="instance(''readonly'')" value="exf:readonly($context)"/>
</xf:var>
<xf:var as="element()?" name="fr-resources">
<xxf:value xxbl:scope="outer" value="$fr-resources"/>
</xf:var>
<xf:var as="element(resource)" name="form-resources" value="instance(''fr-form-resources'')/(resource[@xml:lang = xxf:instance(''fr-language-instance'')], resource[1])[1]"/>

<xf:label xmlns:oxf="http://www.orbeon.com/oxf/processors" ref="$form-resources/section-1/label"/>
<fr:grid xmlns:oxf="http://www.orbeon.com/oxf/processors" bind="grid-1-bind" id="grid-1-grid">
<fr:c w="12" x="1" y="1">
<xf:input bind="name-bind" class="fr-summary fr-search" id="name-control">
<xf:label ref="$form-resources/name/label"/>
<xf:hint ref="$form-resources/name/hint"/>

<xf:alert ref="$fr-resources/detail/labels/alert"/>
</xf:input>
</fr:c>
<fr:c w="12" x="1" y="2">
<xf:input bind="surname-bind" class="fr-summary fr-search" id="surname-control">
<xf:label ref="$form-resources/surname/label"/>
<xf:hint ref="$form-resources/surname/hint"/>

<xf:alert ref="$fr-resources/detail/labels/alert"/>
</xf:input>
</fr:c>
</fr:grid>
</xf:group>
</xbl:template>
</xbl:binding>
</xbl:xbl>
</xh:head>
<xh:body>
<fr:view>
<fr:body xmlns:oxf="http://www.orbeon.com/oxf/processors" xmlns:p="http://www.orbeon.com/oxf/pipeline" xmlns:xbl="http://www.w3.org/ns/xbl">
<fr:section bind="section-2-bind" id="section-2-section">
<xf:label ref="$form-resources/section-2/label"/>
<component:section-1 xmlns:component="http://orbeon.org/oxf/xml/form-builder/component/gs/library" xmlns:fbf="java:org.orbeon.oxf.fb.FormBuilderXPathApi" xmlns:frf="java:org.orbeon.oxf.fr.FormRunner" xmlns:xxbl="http://orbeon.org/oxf/xml/xbl" xmlns="http://orbeon.org/oxf/xml/form-builder"/>
</fr:section>
</fr:body>
</fr:view>
</xh:body>
</xh:html>

Alessandro Vernet

unread,
Feb 11, 2021, 2:22:36 PM2/11/21
to orb...@googlegroups.com
Hi Bruno,


BrunoBB wrote
> I do not know why the
> <xbl:xbl>
> ... node is being added on Publish action
> only (see previous post for the complete
> <xbl>
> node).

On publish, the section templates used by your form are extracted from their
library form definitions, encapsulated in XBL components, and added to the
form. This is to prevent changes you might make later to the section
template forms (orbeon/library and your-app/library) from impacting your
published form. And I don't remember anything changing with this in 2020.1.

Is there a reason why your implementation of the persistence API would be
impacted by whatever is in the form definition? Doesn't it treat the form
definition as an opaque XML document?

Bruno Buzzi Brassesco

unread,
Feb 11, 2021, 3:19:31 PM2/11/21
to orb...@googlegroups.com
Alex,

Actually my PL does not care about that <xbl> node.
But when a form is published (with library dependencies) then it can not be edited.
After searching a little the only difference I found was the <xbl> node.

If you are confirming that <xbl> is put there by Orbeon then the problem must be another.
Check:

This form has exactly the same problem as my local installation.

The only difference is that at Orbeon installation I can edit the Form code while in my local installation when editing I only see the <dummy> node.

Still hunting down this problem :)

regards,
bruno

Bruno Buzzi Brassesco

unread,
Feb 11, 2021, 3:53:19 PM2/11/21
to orb...@googlegroups.com
Alex,

If i remove the <xbl> node manually then I can edit the form on the Form Builder.

If the <xbl> node is present then is render in the Form Builder like:

regards,
bruno

Bruno Buzzi Brassesco

unread,
Feb 11, 2021, 4:45:24 PM2/11/21
to orb...@googlegroups.com
Alex,

I found 2 exceptions in the log.
First Exception
+----------------------------------------------------------------------------------------------------------------------+
|An Error has Occurred                                                                                                 |
|----------------------------------------------------------------------------------------------------------------------|
|assertion failed: expect no more than one `<xbl:xbl>` container for the namespace `http://orbeon.org/oxf/xml/form-buil|
|der/component/gs/library`                                                                                             |
|----------------------------------------------------------------------------------------------------------------------|
|Application Call Stack                                                                                                |
|----------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: java.lang.AssertionError                                                                                   |
|----------------------------------------------------------------------------------------------------------------------|
|scala.Predef$                                      |assert                        |Predef.scala                  | 223|
|org.orbeon.oxf.fr.FormRunnerSectionTemplateOps     |findXblXblForSectionTemplateNa|FormRunnerSectionTemplateOps.s|  76|
|org.orbeon.oxf.fr.FormRunnerSectionTemplateOps     |findXblXblForSectionTemplateNa|FormRunnerSectionTemplateOps.s|  66|
|org.orbeon.oxf.fr.FormRunner$                      |findXblXblForSectionTemplateNa|FormRunner.scala              |  16|
|org.orbeon.oxf.fb.FormBuilderXPathApi$             |$anonfun$updateSectionTemplate|FormBuilderXPathApi.scala     | 282|
|scala.Option                                       |flatMap                       |Option.scala                  | 271|
|org.orbeon.oxf.fb.FormBuilderXPathApi$             |$anonfun$updateSectionTemplate|FormBuilderXPathApi.scala     | 281|
|scala.collection.immutable.List                    |flatMap                       |List.scala                    | 338|
|org.orbeon.oxf.fb.FormBuilderXPathApi$             |$anonfun$updateSectionTemplate|FormBuilderXPathApi.scala     | 280|
|scala.collection.immutable.List                    |flatMap                       |List.scala                    | 338|
|org.orbeon.oxf.fb.FormBuilderXPathApi$             |$anonfun$updateSectionTemplate|FormBuilderXPathApi.scala     | 279|
|scala.collection.immutable.Stream                  |flatMap                       |Stream.scala                  | 489|
|org.orbeon.oxf.fb.FormBuilderXPathApi$             |updateSectionTemplateContentHo|FormBuilderXPathApi.scala     | 278|
|org.orbeon.oxf.fb.FormBuilderXPathApi              |updateSectionTemplateContentHo|FormBuilderXPathApi.scala     |    |
|sun.reflect.NativeMethodAccessorImpl               |invoke0                       |NativeMethodAccessorImpl.java |    |
|sun.reflect.NativeMethodAccessorImpl               |invoke                        |NativeMethodAccessorImpl.java |  62|
|sun.reflect.DelegatingMethodAccessorImpl           |invoke                        |DelegatingMethodAccessorImpl.j|  43|
|java.lang.reflect.Method                           |invoke                        |Method.java                   | 498|
|org.orbeon.saxon.functions.ExtensionFunctionCall   |invokeMethod                  |ExtensionFunctionCall.java    | 690|
|org.orbeon.saxon.functions.ExtensionFunctionCall   |call                          |ExtensionFunctionCall.java    | 343|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.saxon.trans.XPathException                                                                      |
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.saxon.functions.ExtensionFunctionCall   |call                          |ExtensionFunctionCall.java    | 369|
|org.orbeon.saxon.functions.ExtensionFunctionCall   |iterate                       |ExtensionFunctionCall.java    | 224|
|org.orbeon.saxon.instruct.BlockIterator            |next                          |BlockIterator.java            |  42|
|org.orbeon.scaxon.Implicits$$anon$2                |<init>                        |Implicits.scala               |  75|
|org.orbeon.scaxon.Implicits$                       |asScalaIterator               |Implicits.scala               |  73|
|org.orbeon.oxf.util.PooledXPathExpression          |$anonfun$evaluateKeepItems$1  |PooledXPathExpression.scala   |  96|
|org.orbeon.oxf.util.DynamicVariable                |withValue                     |DynamicVariable.scala         |  42|
|org.orbeon.oxf.util.XPath$                         |withFunctionContext           |XPath.scala                   |  62|
|org.orbeon.oxf.util.PooledXPathExpression          |evaluateKeepItems             |PooledXPathExpression.scala   |  96|
|org.orbeon.oxf.util.XPathCache$                    |$anonfun$evaluateKeepItems$1  |XPathCache.scala              | 227|
|org.orbeon.oxf.util.XPathCache$                    |withEvaluation                |XPathCache.scala              | 734|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.oxf.common.ValidationException                                                                  |
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.oxf.common.OrbeonLocationException$     |wrapException                 |OrbeonLocationException.scala |  60|
|org.orbeon.oxf.util.XPath$                         |handleXPathException          |XPath.scala                   | 377|
|org.orbeon.oxf.util.XPathCache$                    |withEvaluation                |XPathCache.scala              | 744|
|org.orbeon.oxf.util.XPathCache$                    |evaluateKeepItems             |XPathCache.scala              | 227|
|rg.orbeon.oxf.xforms.action.XFormsActionInterpreter|evaluateKeepItems             |XFormsActionInterpreter.scala | 291|
|orbeon.oxf.xforms.action.actions.XFormsActionAction|execute                       |XFormsActionAction.scala      |  75|
|rg.orbeon.oxf.xforms.action.XFormsActionInterpreter|$anonfun$runSingleIteration$7 |XFormsActionInterpreter.scala | 189|
|scala.runtime.java8.JFunction0$mcV$sp              |apply                         |JFunction0$mcV$sp.java        |  23|
|org.orbeon.oxf.xforms.XFormsContextStackSupport$   |withBinding                   |XFormsContextStackSupport.scal|  47|
|rg.orbeon.oxf.xforms.action.XFormsActionInterpreter|$anonfun$runSingleIteration$6 |XFormsActionInterpreter.scala | 187|
|scala.runtime.java8.JFunction0$mcV$sp              |apply                         |JFunction0$mcV$sp.java        |  23|
|org.orbeon.oxf.util.Logging                        |withDebug                     |Logging.scala                 |  50|
|org.orbeon.oxf.util.Logging                        |withDebug$                    |Logging.scala                 |  45|
|org.orbeon.oxf.util.Logging$                       |withDebug                     |Logging.scala                 |  73|
|rg.orbeon.oxf.xforms.action.XFormsActionInterpreter|$anonfun$runSingleIteration$1 |XFormsActionInterpreter.scala | 169|
|scala.runtime.java8.JFunction0$mcV$sp              |apply                         |JFunction0$mcV$sp.java        |  23|
|scala.util.control.Breaks$$anon$1                  |catchBreak                    |Breaks.scala                  |  67|
|rg.orbeon.oxf.xforms.action.XFormsActionInterpreter|runSingleIteration            |XFormsActionInterpreter.scala | 199|
|rg.orbeon.oxf.xforms.action.XFormsActionInterpreter|runSingle$1                   |XFormsActionInterpreter.scala |  99|
|rg.orbeon.oxf.xforms.action.XFormsActionInterpreter|$anonfun$runAction$2          |XFormsActionInterpreter.scala | 119|
|scala.runtime.java8.JFunction0$mcV$sp              |apply                         |JFunction0$mcV$sp.java        |  23|
|org.orbeon.oxf.xforms.XFormsContextStackSupport$   |withBinding                   |XFormsContextStackSupport.scal|  47|
|rg.orbeon.oxf.xforms.action.XFormsActionInterpreter|runAction                     |XFormsActionInterpreter.scala |  90|
|orbeon.oxf.xforms.action.actions.XFormsActionAction|$anonfun$execute$7            |XFormsActionAction.scala      |  97|
|orbeon.oxf.xforms.action.actions.XFormsActionAction|$anonfun$execute$7$adapted    |XFormsActionAction.scala      |  85|
|scala.collection.Iterator                          |foreach                       |Iterator.scala                | 941|
|scala.collection.Iterator                          |foreach$                      |Iterator.scala                | 941|
|scala.collection.AbstractIterator                  |foreach                       |Iterator.scala                |1429|
|scala.collection.IterableLike                      |foreach                       |IterableLike.scala            |  74|
|scala.collection.IterableLike                      |foreach$                      |IterableLike.scala            |  73|
|scala.collection.AbstractIterable                  |foreach                       |Iterable.scala                |  56|
|orbeon.oxf.xforms.action.actions.XFormsActionAction|execute                       |XFormsActionAction.scala      |  85|
|rg.orbeon.oxf.xforms.action.XFormsActionInterpreter|$anonfun$runSingleIteration$7 |XFormsActionInterpreter.scala | 189|
|scala.runtime.java8.JFunction0$mcV$sp              |apply                         |JFunction0$mcV$sp.java        |  23|
|org.orbeon.oxf.xforms.XFormsContextStackSupport$   |withBinding                   |XFormsContextStackSupport.scal|  47|
|rg.orbeon.oxf.xforms.action.XFormsActionInterpreter|$anonfun$runSingleIteration$6 |XFormsActionInterpreter.scala | 187|
|scala.runtime.java8.JFunction0$mcV$sp              |apply                         |JFunction0$mcV$sp.java        |  23|
|org.orbeon.oxf.util.Logging                        |withDebug                     |Logging.scala                 |  50|
|org.orbeon.oxf.util.Logging                        |withDebug$                    |Logging.scala                 |  45|
|org.orbeon.oxf.util.Logging$                       |withDebug                     |Logging.scala                 |  73|
|---8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<---|
|org.orbeon.oxf.webapp.ProcessorService$            |withProcessorService          |ProcessorService.scala        | 146|
|org.orbeon.oxf.servlet.OrbeonServlet               |service                       |OrbeonServlet.scala           |  76|
|javax.servlet.http.HttpServlet                     |service                       |HttpServlet.java              | 741|
|org.apache.catalina.core.ApplicationFilterChain    |internalDoFilter              |ApplicationFilterChain.java   | 231|
|org.apache.catalina.core.ApplicationFilterChain    |doFilter                      |ApplicationFilterChain.java   | 166|
|org.apache.tomcat.websocket.server.WsFilter        |doFilter                      |WsFilter.java                 |  53|
|org.apache.catalina.core.ApplicationFilterChain    |internalDoFilter              |ApplicationFilterChain.java   | 193|
|org.apache.catalina.core.ApplicationFilterChain    |doFilter                      |ApplicationFilterChain.java   | 166|
|org.orbeon.oxf.servlet.FormRunnerAuthFilter        |doFilter                      |FormRunnerAuthFilter.scala    |  51|
|org.apache.catalina.core.ApplicationFilterChain    |internalDoFilter              |ApplicationFilterChain.java   | 193|
|org.apache.catalina.core.ApplicationFilterChain    |doFilter                      |ApplicationFilterChain.java   | 166|
|org.orbeon.oxf.servlet.LimiterFilter               |$anonfun$doFilter$3           |LimiterFilter.scala           |  85|
|scala.runtime.java8.JFunction0$mcV$sp              |apply                         |JFunction0$mcV$sp.java        |  23|
|org.orbeon.oxf.logging.LifecycleLogger$            |withEvent                     |LifecycleLogger.scala         | 126|
|org.orbeon.oxf.servlet.LimiterFilter               |$anonfun$doFilter$2           |LimiterFilter.scala           |  85|
|scala.runtime.java8.JFunction0$mcV$sp              |apply                         |JFunction0$mcV$sp.java        |  23|
|org.orbeon.oxf.logging.LifecycleLogger$            |withEvent                     |LifecycleLogger.scala         | 126|
|org.orbeon.oxf.servlet.LimiterFilter               |$anonfun$doFilter$1           |LimiterFilter.scala           |  78|
|org.orbeon.oxf.servlet.LimiterFilter               |$anonfun$doFilter$1$adapted   |LimiterFilter.scala           |  72|
|scala.Option                                       |foreach                       |Option.scala                  | 407|
|org.orbeon.oxf.servlet.LimiterFilter               |doFilter                      |LimiterFilter.scala           |  72|
|org.apache.catalina.core.ApplicationFilterChain    |internalDoFilter              |ApplicationFilterChain.java   | 193|
|org.apache.catalina.core.ApplicationFilterChain    |doFilter                      |ApplicationFilterChain.java   | 166|
|org.apache.catalina.core.StandardWrapperValve      |invoke                        |StandardWrapperValve.java     | 202|
|org.apache.catalina.core.StandardContextValve      |invoke                        |StandardContextValve.java     |  96|
|org.apache.catalina.authenticator.AuthenticatorBase|invoke                        |AuthenticatorBase.java        | 541|
|org.apache.catalina.core.StandardHostValve         |invoke                        |StandardHostValve.java        | 139|
|org.apache.catalina.valves.ErrorReportValve        |invoke                        |ErrorReportValve.java         |  92|
|org.apache.catalina.valves.AbstractAccessLogValve  |invoke                        |AbstractAccessLogValve.java   | 688|
|org.apache.catalina.core.StandardEngineValve       |invoke                        |StandardEngineValve.java      |  74|
|org.apache.catalina.connector.CoyoteAdapter        |service                       |CoyoteAdapter.java            | 343|
|org.apache.coyote.http11.Http11Processor           |service                       |Http11Processor.java          | 367|
|org.apache.coyote.AbstractProcessorLight           |process                       |AbstractProcessorLight.java   |  65|
|rg.apache.coyote.AbstractProtocol$ConnectionHandler|process                       |AbstractProtocol.java         | 868|
|.apache.tomcat.util.net.NioEndpoint$SocketProcessor|doRun                         |NioEndpoint.java              |1639|
|org.apache.tomcat.util.net.SocketProcessorBase     |run                           |SocketProcessorBase.java      |  49|
|java.util.concurrent.ThreadPoolExecutor            |runWorker                     |ThreadPoolExecutor.java       |1149|
|java.util.concurrent.ThreadPoolExecutor$Worker     |run                           |ThreadPoolExecutor.java       | 624|
|che.tomcat.util.threads.TaskThread$WrappingRunnable|run                           |TaskThread.java               |  61|
|java.lang.Thread                                   |run                           |Thread.java                   | 748|
+----------------------------------------------------------------------------------------------------------------------+"}




Second Exception

+----------------------------------------------------------------------------------------------------------------------+
|An Error has Occurred                                                                                                 |
|----------------------------------------------------------------------------------------------------------------------|
|Exception in extension function java.lang.NullPointerException                                                        |
|----------------------------------------------------------------------------------------------------------------------|
|Application Call Stack                                                                                                |
|----------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: java.lang.NullPointerException                                                                             |
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.scaxon.SimplePath$NodeLocalNameTest     |test                          |SimplePath.scala              |  67|
|org.orbeon.scaxon.SimplePath$NodeInfoOps$          |find$extension                |SimplePath.scala              | 308|
|org.orbeon.scaxon.SimplePath$NodeInfoOps$          |$div$extension                |SimplePath.scala              | 123|
|org.orbeon.scaxon.SimplePath$NodeInfoOps$          |elemValueOpt$extension0       |SimplePath.scala              | 190|
|org.orbeon.oxf.fr.FormRunnerBaseOps                |optionFromMetadataOrProperties|FormRunnerBaseOps.scala       | 277|
|org.orbeon.oxf.fr.FormRunnerBaseOps                |optionFromMetadataOrProperties|FormRunnerBaseOps.scala       | 272|
|org.orbeon.oxf.fr.FormRunner$                      |optionFromMetadataOrProperties|FormRunner.scala              |  16|
|org.orbeon.oxf.fr.FormRunnerPDF                    |optionFromMetadataOrProperties|FormRunnerPDF.scala           | 107|
|org.orbeon.oxf.fr.FormRunnerPDF                    |optionFromMetadataOrProperties|FormRunnerPDF.scala           |  97|
|org.orbeon.oxf.fr.FormRunner$                      |optionFromMetadataOrProperties|FormRunner.scala              |  16|
|org.orbeon.oxf.fr.FormRunner                       |optionFromMetadataOrProperties|FormRunner.scala              |    |
|sun.reflect.NativeMethodAccessorImpl               |invoke0                       |NativeMethodAccessorImpl.java |    |
|sun.reflect.NativeMethodAccessorImpl               |invoke                        |NativeMethodAccessorImpl.java |  62|
|sun.reflect.DelegatingMethodAccessorImpl           |invoke                        |DelegatingMethodAccessorImpl.j|  43|
|java.lang.reflect.Method                           |invoke                        |Method.java                   | 498|
|org.orbeon.saxon.functions.ExtensionFunctionCall   |invokeMethod                  |ExtensionFunctionCall.java    | 690|
|org.orbeon.saxon.functions.ExtensionFunctionCall   |call                          |ExtensionFunctionCall.java    | 343|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.saxon.trans.XPathException                                                                      |
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.saxon.functions.ExtensionFunctionCall   |call                          |ExtensionFunctionCall.java    | 369|
|org.orbeon.saxon.functions.ExtensionFunctionCall   |iterate                       |ExtensionFunctionCall.java    | 224|
|org.orbeon.saxon.expr.Atomizer                     |iterate                       |Atomizer.java                 | 163|
|org.orbeon.saxon.expr.QuantifiedExpression         |effectiveBooleanValue         |QuantifiedExpression.java     | 213|
|org.orbeon.saxon.expr.QuantifiedExpression         |evaluateItem                  |QuantifiedExpression.java     | 202|
|org.orbeon.saxon.expr.Expression                   |iterate                       |Expression.java               | 370|
|org.orbeon.saxon.sxpath.XPathExpression            |iterate                       |XPathExpression.java          | 141|
|org.orbeon.oxf.util.PooledXPathExpression          |evaluate                      |PooledXPathExpression.scala   | 180|
|org.orbeon.oxf.util.PooledXPathExpression          |$anonfun$evaluateAsExtent$1   |PooledXPathExpression.scala   | 116|
|org.orbeon.oxf.util.DynamicVariable                |withValue                     |DynamicVariable.scala         |  42|
|org.orbeon.oxf.util.XPath$                         |withFunctionContext           |XPath.scala                   |  62|
|org.orbeon.oxf.util.PooledXPathExpression          |evaluateAsExtent              |PooledXPathExpression.scala   | 116|
|org.orbeon.oxf.util.XPathCache$                    |$anonfun$evaluateAsExtent$1   |XPathCache.scala              | 295|
|org.orbeon.oxf.util.XPathCache$                    |withEvaluation                |XPathCache.scala              | 734|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.oxf.common.ValidationException                                                                  |
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.oxf.common.OrbeonLocationException$     |wrapException                 |OrbeonLocationException.scala |  60|
|org.orbeon.oxf.util.XPath$                         |handleXPathException          |XPath.scala                   | 377|
|org.orbeon.oxf.util.XPathCache$                    |withEvaluation                |XPathCache.scala              | 744|
|org.orbeon.oxf.util.XPathCache$                    |evaluateAsExtent              |XPathCache.scala              | 295|
|org.orbeon.oxf.xforms.Variable                     |evaluate                      |Variable.scala                |  87|
|org.orbeon.oxf.xforms.Variable                     |$anonfun$valueEvaluateIfNeeded|Variable.scala                |  43|
|scala.Option                                       |getOrElse                     |Option.scala                  | 189|
|org.orbeon.oxf.xforms.Variable                     |valueEvaluateIfNeeded         |Variable.scala                |  37|
|n.oxf.xforms.control.controls.XFormsVariableControl|$anonfun$preEvaluateImpl$2    |XFormsVariableControl.scala   |  81|
|scala.runtime.java8.JFunction0$mcV$sp              |apply                         |JFunction0$mcV$sp.java        |  23|
|org.orbeon.oxf.xforms.analytics.NOPRequestStats$   |withXPath                     |RequestStats.scala            |  92|
|n.oxf.xforms.control.controls.XFormsVariableControl|preEvaluateImpl               |XFormsVariableControl.scala   |  81|
|org.orbeon.oxf.xforms.control.XFormsControl        |evaluate                      |XFormsControl.scala           | 206|
|org.orbeon.oxf.xforms.control.ControlBindingSupport|setBindingContext             |ControlBindingSupport.scala   | 138|
|org.orbeon.oxf.xforms.control.ControlBindingSupport|setBindingContext$            |ControlBindingSupport.scala   | 118|
|org.orbeon.oxf.xforms.control.XFormsControl        |setBindingContext             |XFormsControl.scala           |  42|
|org.orbeon.oxf.xforms.control.ControlBindingSupport|evaluateBindingAndValues      |ControlBindingSupport.scala   |  79|
|org.orbeon.oxf.xforms.control.ControlBindingSupport|evaluateBindingAndValues$     |ControlBindingSupport.scala   |  63|
|org.orbeon.oxf.xforms.control.XFormsControl        |evaluateBindingAndValues      |XFormsControl.scala           |  42|
|org.orbeon.oxf.xforms.control.Controls$            |$anonfun$buildTree$1          |Controls.scala                | 147|
|scala.Option                                       |map                           |Option.scala                  | 230|
|org.orbeon.oxf.xforms.control.Controls$            |buildTree                     |Controls.scala                | 135|
|org.orbeon.oxf.xforms.control.Controls$            |$anonfun$buildTree$3          |Controls.scala                | 151|
|org.orbeon.oxf.xforms.control.Controls$            |$anonfun$buildChildren$1      |Controls.scala                | 168|
|org.orbeon.oxf.xforms.control.Controls$            |$anonfun$buildChildren$1$adapt|Controls.scala                | 167|
|scala.collection.mutable.ResizableArray            |foreach                       |ResizableArray.scala          |  62|
|scala.collection.mutable.ResizableArray            |foreach$                      |ResizableArray.scala          |  55|
|scala.collection.mutable.ArrayBuffer               |foreach                       |ArrayBuffer.scala             |  49|
|org.orbeon.oxf.xforms.control.Controls$            |buildChildren                 |Controls.scala                | 167|
|org.orbeon.oxf.xforms.control.XFormsControl        |buildChildren                 |XFormsControl.scala           | 248|
|org.orbeon.oxf.xforms.control.Controls$            |$anonfun$buildTree$1          |Controls.scala                | 151|
|scala.Option                                       |map                           |Option.scala                  | 230|
|org.orbeon.oxf.xforms.control.Controls$            |buildTree                     |Controls.scala                | 135|
|org.orbeon.oxf.xforms.control.Controls$            |$anonfun$buildTree$3          |Controls.scala                | 151|
|org.orbeon.oxf.xforms.control.Controls$            |$anonfun$buildChildren$1      |Controls.scala                | 168|
|org.orbeon.oxf.xforms.control.Controls$            |$anonfun$buildChildren$1$adapt|Controls.scala                | 167|
|scala.collection.mutable.ResizableArray            |foreach                       |ResizableArray.scala          |  62|
|scala.collection.mutable.ResizableArray            |foreach$                      |ResizableArray.scala          |  55|
|scala.collection.mutable.ArrayBuffer               |foreach                       |ArrayBuffer.scala             |  49|
|org.orbeon.oxf.xforms.control.Controls$            |buildChildren                 |Controls.scala                | 167|
|---8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<---|
|org.orbeon.oxf.webapp.ProcessorService$            |withProcessorService          |ProcessorService.scala        | 146|
|org.orbeon.oxf.servlet.OrbeonServlet               |service                       |OrbeonServlet.scala           |  76|
|javax.servlet.http.HttpServlet                     |service                       |HttpServlet.java              | 741|
|org.apache.catalina.core.ApplicationFilterChain    |internalDoFilter              |ApplicationFilterChain.java   | 231|
|org.apache.catalina.core.ApplicationFilterChain    |doFilter                      |ApplicationFilterChain.java   | 166|
|org.apache.tomcat.websocket.server.WsFilter        |doFilter                      |WsFilter.java                 |  53|
|org.apache.catalina.core.ApplicationFilterChain    |internalDoFilter              |ApplicationFilterChain.java   | 193|
|org.apache.catalina.core.ApplicationFilterChain    |doFilter                      |ApplicationFilterChain.java   | 166|
|org.orbeon.oxf.servlet.FormRunnerAuthFilter        |doFilter                      |FormRunnerAuthFilter.scala    |  51|
|org.apache.catalina.core.ApplicationFilterChain    |internalDoFilter              |ApplicationFilterChain.java   | 193|
|org.apache.catalina.core.ApplicationFilterChain    |doFilter                      |ApplicationFilterChain.java   | 166|
|org.orbeon.oxf.servlet.LimiterFilter               |$anonfun$doFilter$3           |LimiterFilter.scala           |  85|
|scala.runtime.java8.JFunction0$mcV$sp              |apply                         |JFunction0$mcV$sp.java        |  23|
|org.orbeon.oxf.logging.LifecycleLogger$            |withEvent                     |LifecycleLogger.scala         | 126|
|org.orbeon.oxf.servlet.LimiterFilter               |$anonfun$doFilter$2           |LimiterFilter.scala           |  85|
|scala.runtime.java8.JFunction0$mcV$sp              |apply                         |JFunction0$mcV$sp.java        |  23|
|org.orbeon.oxf.logging.LifecycleLogger$            |withEvent                     |LifecycleLogger.scala         | 126|
|org.orbeon.oxf.servlet.LimiterFilter               |$anonfun$doFilter$1           |LimiterFilter.scala           |  78|
|org.orbeon.oxf.servlet.LimiterFilter               |$anonfun$doFilter$1$adapted   |LimiterFilter.scala           |  72|
|scala.Option                                       |foreach                       |Option.scala                  | 407|
|org.orbeon.oxf.servlet.LimiterFilter               |doFilter                      |LimiterFilter.scala           |  72|
|org.apache.catalina.core.ApplicationFilterChain    |internalDoFilter              |ApplicationFilterChain.java   | 193|
|org.apache.catalina.core.ApplicationFilterChain    |doFilter                      |ApplicationFilterChain.java   | 166|
|org.apache.catalina.core.StandardWrapperValve      |invoke                        |StandardWrapperValve.java     | 202|
|org.apache.catalina.core.StandardContextValve      |invoke                        |StandardContextValve.java     |  96|
|org.apache.catalina.authenticator.AuthenticatorBase|invoke                        |AuthenticatorBase.java        | 541|
|org.apache.catalina.core.StandardHostValve         |invoke                        |StandardHostValve.java        | 139|
|org.apache.catalina.valves.ErrorReportValve        |invoke                        |ErrorReportValve.java         |  92|
|org.apache.catalina.valves.AbstractAccessLogValve  |invoke                        |AbstractAccessLogValve.java   | 688|
|org.apache.catalina.core.StandardEngineValve       |invoke                        |StandardEngineValve.java      |  74|
|org.apache.catalina.connector.CoyoteAdapter        |service                       |CoyoteAdapter.java            | 343|
|org.apache.coyote.http11.Http11Processor           |service                       |Http11Processor.java          | 367|
|org.apache.coyote.AbstractProcessorLight           |process                       |AbstractProcessorLight.java   |  65|
|rg.apache.coyote.AbstractProtocol$ConnectionHandler|process                       |AbstractProtocol.java         | 868|
|.apache.tomcat.util.net.NioEndpoint$SocketProcessor|doRun                         |NioEndpoint.java              |1639|
|org.apache.tomcat.util.net.SocketProcessorBase     |run                           |SocketProcessorBase.java      |  49|
|java.util.concurrent.ThreadPoolExecutor            |runWorker                     |ThreadPoolExecutor.java       |1149|
|java.util.concurrent.ThreadPoolExecutor$Worker     |run                           |ThreadPoolExecutor.java       | 624|
|che.tomcat.util.threads.TaskThread$WrappingRunnable|run                           |TaskThread.java               |  61|
|java.lang.Thread                                   |run                           |Thread.java                   | 748|
+----------------------------------------------------------------------------------------------------------------------+"}

Alessandro Vernet

unread,
Feb 12, 2021, 2:12:32 PM2/12/21
to orb...@googlegroups.com
Hi Bruno,

As you know, persistence stores form definitions that are published and for
edition separately. Only the published forms contains the inlined section
templates. And when you publish, the form definition you edit in Form
Builder shouldn't change. Does your implementation of the persistence API
maybe conflate those 2 form definitions?

Bruno Buzzi Brassesco

unread,
Feb 12, 2021, 3:22:44 PM2/12/21
to orb...@googlegroups.com
Hi,
" As you know, persistence stores form definitions that are published and for
edition separately. Only the published forms contains the inlined section
templates. And when you publish, the form definition you edit in Form
Builder shouldn't change. Does your implementation of the persistence API
maybe conflate those 2 form definitions? "

Ok this is the bug.
When a form is published my PL overrides the XML string of the Saved Definitions (which is wrong) and then it can not be edited.

regards,
bruno

 

Alessandro Vernet

unread,
Feb 15, 2021, 6:08:07 PM2/15/21
to orb...@googlegroups.com
Perfect Bruno; I'm glad you found what the problem is, and indeed, by design,
"saved" and "published" form definitions are expected to be kept separately.
Reply all
Reply to author
Forward
0 new messages