<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Fri Feb 09 00:28:56 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[UXPROD-3048] Check that generated sequences cannot produce duplicates</title>
                <link>https://folio-org.atlassian.net/browse/UXPROD-3048</link>
                <project id="10000" key="UXPROD">UX Product</project>
                    <description>&lt;p&gt;GBV reports that other library software causes errors by producing duplicates when the sequence generator is called twice in parallel.&lt;/p&gt;

&lt;p&gt;This task is to check that FOLIO uses atomic sequence generation, that is incrementing and returning the new value in a single step.&lt;/p&gt;

&lt;p&gt;Possible implementations that are atomic include:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;NEXTVAL &lt;a href=&quot;https://www.postgresql.org/docs/current/functions-sequence.html&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://www.postgresql.org/docs/current/functions-sequence.html&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;transaction with SELECT ... FOR UPDATE &lt;a href=&quot;https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-ROWS&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-ROWS&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;optimistic locking &lt;a href=&quot;https://github.com/folio-org/raml-module-builder#optimistic-locking&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/raml-module-builder#optimistic-locking&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;For each sequence add a line to this table.&lt;/p&gt;

&lt;p&gt;A developer need to check the implementation.&lt;/p&gt;

&lt;p&gt;If it is atomic add the method and the link to the code.&lt;/p&gt;

&lt;p&gt;If it is not atomic create a Jira to make it atomic and put that Jira into the table.&lt;/p&gt;
&lt;div class=&apos;table-wrap&apos;&gt;
&lt;table class=&apos;confluenceTable&apos;&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Sequence&lt;/th&gt;
&lt;th class=&apos;confluenceTh&apos;&gt;Method, Link&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;purchase order number&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;NEXTVAL&lt;br/&gt;
 &lt;a href=&quot;https://github.com/folio-org/mod-orders-storage/blob/v12.0.1/src/main/java/org/folio/rest/impl/PoNumberAPI.java#L24&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/mod-orders-storage/blob/v12.0.1/src/main/java/org/folio/rest/impl/PoNumberAPI.java#L24&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;purchase order line number&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;NEXTVAL&lt;br/&gt;
 &lt;a href=&quot;https://github.com/folio-org/mod-orders-storage/blob/v12.0.1/src/main/java/org/folio/services/order/OrderSequenceRequestBuilder.java#L16&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/mod-orders-storage/blob/v12.0.1/src/main/java/org/folio/services/order/OrderSequenceRequestBuilder.java#L16&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;instance/holding/item HRID&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;NEXTVAL&lt;br/&gt;
 &lt;a href=&quot;https://github.com/folio-org/mod-inventory-storage/blob/v20.1.0/src/main/java/org/folio/rest/support/HridManager.java#L187&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/mod-inventory-storage/blob/v20.1.0/src/main/java/org/folio/rest/support/HridManager.java#L187&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&#160;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&#160;&lt;/td&gt;
&lt;td class=&apos;confluenceTd&apos;&gt;&#160;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
</description>
                <environment></environment>
        <key id="11830">UXPROD-3048</key>
            <summary>Check that generated sequences cannot produce duplicates</summary>
                <type id="10003" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium">Task</type>
                                            <priority id="10005" iconUrl="https://dev.folio.org/assets/jira-priority/tbd.svg">TBD</priority>
                        <status id="1" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                                        <assignee accountid="-1">Unassigned</assignee>
                                                                <reporter accountid="5ee89462f7aa140abd82d11d">Julian Ladisch</reporter>
                                    <labels>
                    </labels>
                <created>Thu, 22 Apr 2021 11:03:43 +0000</created>
                <updated>Tue, 25 May 2021 12:34:52 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>2</watches>
                                                                <comments>
                                                            <comment id="16192" author="62a96ae7192edb006f9f1bf9" created="Tue, 25 May 2021 12:34:52 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ee89462f7aa140abd82d11d&quot; class=&quot;user-hover&quot; rel=&quot;5ee89462f7aa140abd82d11d&quot; data-account-id=&quot;5ee89462f7aa140abd82d11d&quot; accountid=&quot;5ee89462f7aa140abd82d11d&quot; rel=&quot;noreferrer&quot;&gt;Julian Ladisch&lt;/a&gt;, what project should this issue be moved? &lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="11829">UXPROD-2994</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="11061">UXPROD-1752</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10168"><![CDATA[None]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10063" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>PO Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i02miv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 25 May 2021 12:34:52 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                </customfields>
    </item>
</channel>
</rss>