<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:29:45 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>[FOLIO-3659] Create solution that will update MARC authorities when mapping rules have changed</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-3659</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;&lt;b&gt;Approach&lt;/b&gt;&lt;br/&gt;
Create a java app that has to do the update work:&lt;br/&gt;
1. Create data-import job profile for MARC-to-MARC matching by 999ff$s subfield and update authority record. Job/Match/Action/Mapping profiles will be hidden&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Job Profile: &lt;b&gt;Release Upgrade - Migrate MARC authority records&lt;/b&gt;&#160;&lt;/li&gt;
	&lt;li&gt;Action Profile: &lt;b&gt;Release Upgrade - Migrate MARC authority records&lt;/b&gt;&#160;&lt;/li&gt;
	&lt;li&gt;Match Profile: &lt;b&gt;Release Upgrade - Migrate MARC authority records&lt;/b&gt;&#160;&lt;/li&gt;
	&lt;li&gt;Mapping Profile: &lt;b&gt;Release Upgrade - Migrate MARC authority records&lt;/b&gt;&#160;**&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;2. Load authority records by pages of 50k (should be configurable) from SRS (GET /source-storage/records?recordType=MARC_AUTHORITY&amp;amp;state=ACTUAL&amp;amp;offset=&amp;lt;P&amp;gt;&amp;amp;limit=&amp;lt;N&amp;gt;&lt;br/&gt;
3. Prepare file or JSON payload (&lt;a href=&quot;https://github.com/folio-org/mod-source-record-manager/blob/master/README.md#example-of-rawrecordsdtojson-to-parse-marc-records-in-raw-format&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;README&lt;/a&gt;)&lt;br/&gt;
4. Initialize data-import job&lt;br/&gt;
5. Wait until the data-import job finished (GET /change-manager/jobExecutions/&amp;lt;id&amp;gt; and check status of job)&lt;br/&gt;
6. Load the next page and repeat 3-6 until there are no authority records left.&lt;br/&gt;
7. Delete the job profile created in 1st step&lt;br/&gt;
8. Logging should exist to indicate N of batch that is in progress now.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Validate that a user can view Job status&lt;/b&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;job status is shown on the Data Import Logs UI&lt;/li&gt;
	&lt;li&gt;For each record update, user can view SRS/MOD-Inventory-Storage output&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;Documentation&lt;/b&gt;&#160;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Instructions must be provided to Hosting providers/System administrators for using the standalone application&#160;
	&lt;ul&gt;
		&lt;li&gt;Must consider that some libraries have already upgraded to Morning Glory weeks/months before this implementation.&#160;&lt;/li&gt;
		&lt;li&gt;Include a note that this should be run off-hours&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;Release notes for Morning Glory and Nolana should be updated and include link to Instructions&#160;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;Testing&lt;/b&gt; - MORE details to discuss&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Need a story for PTF&lt;/li&gt;
	&lt;li&gt;Need an environment(s) to test&#160;
	&lt;ul&gt;
		&lt;li&gt;Upgrade Lotus &amp;gt; Morning Glory&#160; &#160;
		&lt;ul&gt;
			&lt;li&gt;Work with FSE?&#160;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
		&lt;li&gt;Upgrade Morning Glory &amp;gt; Nolana
		&lt;ul&gt;
			&lt;li&gt;Work with FSE?&#160; &#160;&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="82451">FOLIO-3659</key>
            <summary>Create solution that will update MARC authorities when mapping rules have changed</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="10001" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p2.svg">P2</priority>
                        <status id="6" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10003">Done</resolution>
                                                        <assignee accountid="6351423ef7ad721e784c7cbe">Shans Kaluhin</assignee>
                                                                <reporter accountid="5eb44b5a96bbcb0b8585c98d">Pavlo Smahin</reporter>
                                    <labels>
                            <label>back-end</label>
                            <label>epam-spitfire</label>
                    </labels>
                <created>Wed, 7 Dec 2022 16:32:21 +0000</created>
                <updated>Wed, 1 Feb 2023 19:12:31 +0000</updated>
                            <resolved>Fri, 13 Jan 2023 12:56:59 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                <comments>
                                                            <comment id="198426" author="712020:5a7f6289-a5b2-41a9-ad26-18a61419c15c" created="Wed, 21 Dec 2022 13:00:54 +0000"  >&lt;p&gt;Verified on Snapshot-2 environment:&lt;br/&gt;
1) The &quot;MARC Authority&quot; app has &lt;b&gt;110&lt;/b&gt; records.&lt;br/&gt;
I picked one record to check if it will update after script execution:&lt;br/&gt;
&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;a id=&quot;64453_thumb&quot; href=&quot;/rest/api/3/attachment/content/64453&quot; title=&quot;FOLIO-3659_ss_00(Record_before).png&quot; file-preview-type=&quot;image&quot; file-preview-id=&quot;64453&quot; file-preview-title=&quot;FOLIO-3659_ss_00(Record_before).png&quot;&gt;&lt;jira-attachment-thumbnail url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64453?default=false&quot; jira-url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64453&quot; filename=&quot;FOLIO-3659_ss_00(Record_before).png&quot;&gt;&lt;img src=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64453&quot; data-attachment-name=&quot;FOLIO-3659_ss_00(Record_before).png&quot; data-attachment-type=&quot;thumbnail&quot; data-media-services-id=&quot;88f3e895-9675-4799-b903-181ec8aefb1e&quot; data-media-services-type=&quot;file&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/jira-attachment-thumbnail&gt;&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;
2) I used the following config:&lt;br/&gt;
&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;a id=&quot;64454_thumb&quot; href=&quot;/rest/api/3/attachment/content/64454&quot; title=&quot;FOLIO-3659_ss_01(config).png&quot; file-preview-type=&quot;image&quot; file-preview-id=&quot;64454&quot; file-preview-title=&quot;FOLIO-3659_ss_01(config).png&quot;&gt;&lt;jira-attachment-thumbnail url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64454?default=false&quot; jira-url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64454&quot; filename=&quot;FOLIO-3659_ss_01(config).png&quot;&gt;&lt;img src=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64454&quot; data-attachment-name=&quot;FOLIO-3659_ss_01(config).png&quot; data-attachment-type=&quot;thumbnail&quot; data-media-services-id=&quot;fa359b64-612e-401b-b7ef-93af18488fa2&quot; data-media-services-type=&quot;file&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/jira-attachment-thumbnail&gt;&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;
3) The script successfully executed:&lt;br/&gt;
&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;a id=&quot;64455_thumb&quot; href=&quot;/rest/api/3/attachment/content/64455&quot; title=&quot;FOLIO-3659_ss_02(script).png&quot; file-preview-type=&quot;image&quot; file-preview-id=&quot;64455&quot; file-preview-title=&quot;FOLIO-3659_ss_02(script).png&quot;&gt;&lt;jira-attachment-thumbnail url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64455?default=false&quot; jira-url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64455&quot; filename=&quot;FOLIO-3659_ss_02(script).png&quot;&gt;&lt;img src=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64455&quot; data-attachment-name=&quot;FOLIO-3659_ss_02(script).png&quot; data-attachment-type=&quot;thumbnail&quot; data-media-services-id=&quot;2cb5163f-17b6-45b5-9d2a-9856a77461b7&quot; data-media-services-type=&quot;file&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/jira-attachment-thumbnail&gt;&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;
4) 5 Jobs for updating of &quot;MARC Authority&quot; records is displayed in &quot;Data import&quot; app.:&lt;br/&gt;
&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;a id=&quot;64456_thumb&quot; href=&quot;/rest/api/3/attachment/content/64456&quot; title=&quot;FOLIO-3659_ss_03(Data_import).png&quot; file-preview-type=&quot;image&quot; file-preview-id=&quot;64456&quot; file-preview-title=&quot;FOLIO-3659_ss_03(Data_import).png&quot;&gt;&lt;jira-attachment-thumbnail url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64456?default=false&quot; jira-url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64456&quot; filename=&quot;FOLIO-3659_ss_03(Data_import).png&quot;&gt;&lt;img src=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64456&quot; data-attachment-name=&quot;FOLIO-3659_ss_03(Data_import).png&quot; data-attachment-type=&quot;thumbnail&quot; data-media-services-id=&quot;9310c365-b5cc-4107-836e-3b21d6a7135e&quot; data-media-services-type=&quot;file&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/jira-attachment-thumbnail&gt;&lt;/a&gt;&lt;/span&gt;&lt;br/&gt;
5) The control record was updated (version and source):&lt;br/&gt;
&lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;a id=&quot;64452_thumb&quot; href=&quot;/rest/api/3/attachment/content/64452&quot; title=&quot;FOLIO-3659_ss_00(Record_after).png&quot; file-preview-type=&quot;image&quot; file-preview-id=&quot;64452&quot; file-preview-title=&quot;FOLIO-3659_ss_00(Record_after).png&quot;&gt;&lt;jira-attachment-thumbnail url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64452?default=false&quot; jira-url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64452&quot; filename=&quot;FOLIO-3659_ss_00(Record_after).png&quot;&gt;&lt;img src=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/64452&quot; data-attachment-name=&quot;FOLIO-3659_ss_00(Record_after).png&quot; data-attachment-type=&quot;thumbnail&quot; data-media-services-id=&quot;f29dbe9c-5f31-4f0d-b780-20482cbbc980&quot; data-media-services-type=&quot;file&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/jira-attachment-thumbnail&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;</comment>
                                                            <comment id="198427" author="5eb44b5a96bbcb0b8585c98d" created="Thu, 22 Dec 2022 15:28:16 +0000"  >&lt;p&gt;Investigate error&lt;br/&gt;
2022-12-22 15:24:43.733 &lt;span class=&quot;error&quot;&gt;&amp;#91;vert.x-worker-thread-4&amp;#93;&lt;/span&gt; [] [] [] [] WARN AdditionalFieldsUtil computeMarcRecord:: Error during the transformation to marc record&lt;br/&gt;
org.marc4j.util.JsonParser$Escape: Text was found preceding an array&apos;s opening bracket (this is usually caused by a missing comma or colon, or by using equals instead of a colon); Text=&quot;fields=&quot;; at Input Source: &quot;MarcInput&quot;, Line: 1, Column: 9&lt;br/&gt;
at org.marc4j.util.JsonParser.parserError(JsonParser.java:973) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.marc4j.util.JsonParser.parserError(JsonParser.java:968) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.marc4j.util.JsonParser.parserError(JsonParser.java:964) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.marc4j.util.JsonParser.next(JsonParser.java:704) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.marc4j.MarcJsonReader.next(MarcJsonReader.java:208) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.folio.services.util.AdditionalFieldsUtil.lambda$0(AdditionalFieldsUtil.java:80) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at com.github.benmanes.caffeine.cache.LocalLoadingCache.lambda$newMappingFunction$3(LocalLoadingCache.java:197) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at com.github.benmanes.caffeine.cache.LocalCache.lambda$statsAware$2(LocalCache.java:165) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$13(BoundedLocalCache.java:2550) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.util.concurrent.ConcurrentHashMap.compute(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2548) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2531) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:110) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at com.github.benmanes.caffeine.cache.LocalLoadingCache.get(LocalLoadingCache.java:58) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.folio.services.util.AdditionalFieldsUtil.computeMarcRecord(AdditionalFieldsUtil.java:583) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.folio.services.util.AdditionalFieldsUtil.getValueFromControlledField(AdditionalFieldsUtil.java:318) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.folio.services.handlers.actions.AbstractUpdateModifyEventHandler.retrieveHrid(AbstractUpdateModifyEventHandler.java:167) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.folio.services.handlers.actions.AbstractUpdateModifyEventHandler.handle(AbstractUpdateModifyEventHandler.java:80) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.folio.processing.events.services.processor.EventProcessorImpl.process(EventProcessorImpl.java:36) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.folio.processing.events.EventManager.handleEvent(EventManager.java:67) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.folio.consumers.DataImportKafkaHandler.lambda$1(DataImportKafkaHandler.java:72) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.util.Optional.map(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.folio.consumers.DataImportKafkaHandler.lambda$0(DataImportKafkaHandler.java:72) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.util.concurrent.CompletableFuture$UniCompose.tryFire(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.util.concurrent.CompletableFuture.postComplete(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.util.concurrent.CompletableFuture.complete(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.Future.lambda$toCompletionStage$3(Future.java:384) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.impl.future.PromiseImpl.tryComplete(PromiseImpl.java:23) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.Promise.complete(Promise.java:66) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.Future.lambda$fromCompletionStage$4(Future.java:408) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.util.concurrent.CompletableFuture.postComplete(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.util.concurrent.CompletableFuture.complete(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.Future.lambda$toCompletionStage$3(Future.java:384) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.impl.future.FutureImpl$3.onSuccess(FutureImpl.java:141) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:60) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:211) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.impl.future.PromiseImpl.tryComplete(PromiseImpl.java:23) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.Promise.complete(Promise.java:66) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at org.folio.dataimport.util.RestUtil.lambda$handleResponse$0(RestUtil.java:182) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.ext.web.client.impl.HttpContext.handleDispatchResponse(HttpContext.java:397) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.ext.web.client.impl.HttpContext.execute(HttpContext.java:384) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.ext.web.client.impl.HttpContext.next(HttpContext.java:362) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.ext.web.client.impl.HttpContext.fire(HttpContext.java:329) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.ext.web.client.impl.HttpContext.dispatchResponse(HttpContext.java:291) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.ext.web.client.impl.HttpContext.lambda$null$7(HttpContext.java:507) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:264) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.impl.WorkerContext.lambda$run$3(WorkerContext.java:106) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.impl.WorkerContext.lambda$null$1(WorkerContext.java:92) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.lang.Thread.run(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;/p&gt;</comment>
                                                            <comment id="198429" author="5eb44b5a96bbcb0b8585c98d" created="Thu, 22 Dec 2022 15:45:36 +0000"  >&lt;p&gt;And this one:&lt;br/&gt;
22-12-22 15:32:23.110 &lt;span class=&quot;error&quot;&gt;&amp;#91;vert.x-worker-thread-8&amp;#93;&lt;/span&gt; [] [] [] [] INFO KafkaEventPublisher Event with type: &apos;DI_ERROR&apos; by jobExecutionId: &apos;f42f4627-04fc-432b-8a52-159329ab795a&apos; and recordId: &apos;6fe3f99e-7dc8-4850-b8ee-a3f689fb62e2&apos; with chunkId: &apos;0ab69390-bc15-44ac-88c9-5413e8921cd0&apos; was sent to the topic &apos;folio-dev-spitfire.Default.diku.DI_ERROR&apos;&lt;br/&gt;
2022-12-22 15:32:23.110 &lt;span class=&quot;error&quot;&gt;&amp;#91;vert.x-worker-thread-8&amp;#93;&lt;/span&gt; [] [] [] [] DEBUG KafkaConsumerWrapper businessHandlerCompletionHandler:: Consumer - id: 13 subscriptionPattern: SubscriptionDefinition(eventType=DI_SRS_MARC_AUTHORITY_RECORD_MATCHED, subscriptionPattern=folio-dev-spitfire\.Default\.\w&lt;/p&gt;
{1,}\.DI_SRS_MARC_AUTHORITY_RECORD_MATCHED) Committing offset: 285&lt;br/&gt;
2022-12-22 15:32:23.111 &lt;span class=&quot;error&quot;&gt;&amp;#91;vert.x-worker-thread-8&amp;#93;&lt;/span&gt; [] [] [] [] ERROR KafkaConsumerWrapper businessHandlerCompletionHandler:: Error while processing a record - id: 13 subscriptionPattern: SubscriptionDefinition(eventType=DI_SRS_MARC_AUTHORITY_RECORD_MATCHED, subscriptionPattern=folio-dev-spitfire\.Default\.\w{1,}
&lt;p&gt;\.DI_SRS_MARC_AUTHORITY_RECORD_MATCHED) offset: 285&lt;br/&gt;
io.vertx.core.impl.NoStackTraceThrowable: handle:: Failed to process data import event payload from topic &apos;folio-dev-spitfire.Default.diku.DI_SRS_MARC_AUTHORITY_RECORD_MATCHED&apos; by jobExecutionId: &apos;f42f4627-04fc-432b-8a52-159329ab795a&apos; with recordId: &apos;6fe3f99e-7dc8-4850-b8ee-a3f689fb62e2&apos; and chunkId: &apos;0ab69390-bc15-44ac-88c9-5413e8921cd0&apos;&lt;br/&gt;
2022-12-22 15:32:23.111 &lt;span class=&quot;error&quot;&gt;&amp;#91;vert.x-worker-thread-8&amp;#93;&lt;/span&gt; [] [] [] [] WARN KafkaConsumerWrapper businessHandlerCompletionHandler:: Error handler has not been implemented for subscriptionPattern: SubscriptionDefinition(eventType=DI_SRS_MARC_AUTHORITY_RECORD_MATCHED, subscriptionPattern=folio-dev-spitfire\.Default\.\w&lt;/p&gt;
{1,}
&lt;p&gt;\.DI_SRS_MARC_AUTHORITY_RECORD_MATCHED) failures&lt;br/&gt;
2022-12-22 15:32:23.111 &lt;span class=&quot;error&quot;&gt;&amp;#91;vert.x-worker-thread-8&amp;#93;&lt;/span&gt; [] [] [] [] DEBUG KafkaConsumerWrapper businessHandlerCompletionHandler:: Threshold is exceeded, preparing to resume, globalLoad: 1, currentLoad: 1, requestNo: -1&lt;br/&gt;
2022-12-22 15:32:23.302 &lt;span class=&quot;error&quot;&gt;&amp;#91;vert.x-worker-thread-13&amp;#93;&lt;/span&gt; [] [] [] [] WARN teModifyEventHandler handle:: Error while MARC record modifying&lt;br/&gt;
io.vertx.pgclient.PgException: ERROR: duplicate key value violates unique constraint &quot;idx_records_matched_id_gen&quot; (23505)&lt;br/&gt;
at io.vertx.pgclient.impl.codec.ErrorResponse.toException(ErrorResponse.java:31) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.pgclient.impl.codec.QueryCommandBaseCodec.handleErrorResponse(QueryCommandBaseCodec.java:57) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.pgclient.impl.codec.ExtendedQueryCommandCodec.handleErrorResponse(ExtendedQueryCommandCodec.java:90) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.pgclient.impl.codec.PgDecoder.decodeError(PgDecoder.java:246) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.pgclient.impl.codec.PgDecoder.decodeMessage(PgDecoder.java:132) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.vertx.pgclient.impl.codec.PgDecoder.channelRead(PgDecoder.java:112) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;mod-source-record-storage-server-fat.jar:?&amp;#93;&lt;/span&gt;&lt;br/&gt;
at java.lang.Thread.run(Unknown Source) ~&lt;span class=&quot;error&quot;&gt;&amp;#91;?:?&amp;#93;&lt;/span&gt;&lt;/p&gt;</comment>
                                                            <comment id="198430" author="62a96ae7192edb006f9f1bf9" created="Mon, 26 Dec 2022 18:30:03 +0000"  >&lt;p&gt;Moving to In Progress based on Pavlo&apos;s notes.&#160;&lt;/p&gt;</comment>
                                                            <comment id="198431" author="62a96ae7192edb006f9f1bf9" created="Fri, 13 Jan 2023 12:56:59 +0000"  >&lt;p&gt;Successfully used on an environment.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10001">
                    <name>Cloners</name>
                                                                <inwardlinks description="is cloned by">
                                        <issuelink>
            <issuekey id="82477">FOLIO-3681</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10008">
                    <name>Defines</name>
                                            <outwardlinks description="defines">
                                        <issuelink>
            <issuekey id="12450">UXPROD-3911</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="12754">UXPROD-3969</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="27055">PERF-429</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="64452" name="FOLIO-3659_ss_00(Record_after).png" size="201458" author="712020:5a7f6289-a5b2-41a9-ad26-18a61419c15c" created="Wed, 21 Dec 2022 12:57:51 +0000"/>
                            <attachment id="64453" name="FOLIO-3659_ss_00(Record_before).png" size="208874" author="712020:5a7f6289-a5b2-41a9-ad26-18a61419c15c" created="Wed, 21 Dec 2022 12:56:19 +0000"/>
                            <attachment id="64454" name="FOLIO-3659_ss_01(config).png" size="9027" author="712020:5a7f6289-a5b2-41a9-ad26-18a61419c15c" created="Wed, 21 Dec 2022 12:50:20 +0000"/>
                            <attachment id="64455" name="FOLIO-3659_ss_02(script).png" size="151045" author="712020:5a7f6289-a5b2-41a9-ad26-18a61419c15c" created="Wed, 21 Dec 2022 12:52:38 +0000"/>
                            <attachment id="64456" name="FOLIO-3659_ss_03(Data_import).png" size="314652" author="712020:5a7f6289-a5b2-41a9-ad26-18a61419c15c" created="Wed, 21 Dec 2022 12:54:52 +0000"/>
                            <attachment id="64457" name="image-2023-01-04-08-58-36-338.png" size="87680" author="6351423ef7ad721e784c7cbe" created="Wed, 4 Jan 2023 06:58:38 +0000"/>
                    </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="10180"><![CDATA[Spitfire]]></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_10106" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>RCA Group</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10367"><![CDATA[TBD]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzx1ni:5i</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10046" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Release</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10067"><![CDATA[Orchid (R1 2023)]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="566">Spitfire Sprint 156</customfieldvalue>
    <customfieldvalue id="555">Spitfire Sprint 155</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10044" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 21 Dec 2022 13:00:54 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10025" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>[CHART] Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>