Skip to content
This repository has been archived by the owner on Nov 8, 2024. It is now read-only.

Update to support NXRM 3.15 #25

Merged
merged 5 commits into from
Mar 8, 2019
Merged

Update to support NXRM 3.15 #25

merged 5 commits into from
Mar 8, 2019

Conversation

nblair
Copy link
Contributor

@nblair nblair commented Mar 2, 2019

This change set updates to link against NXRM 3.15.2-01.

The new version of NXRM provides a number of new support classes to handle boiler plate for Blobstore implementations (see BlobStoreSupport, BlobStoreMetricsStoreSupport, BlobAttributesSupport, AttributesLocation).

Other notable changes:

  • We have some new clarity on the contract Blobstore#getBlobIdStream. In previous versions, the Stream returned by this method in this plugin did not include temporary blobs. In this version, temporary BlobIds are included.

  • A new integration test has been added (originally developed in Experiment: Parallel Multipart Upload #22).

  • The travis CI build has been updated to use openjdk8.

  • Fixes Support for 3.15 #24

mattjohnson and others added 4 commits February 14, 2019 09:19
BlobStoreSupport#getBlobIdFromAttributeFilePath is new in 3.15, and there is a small issue in how we want to use it here.

Previously, getBlobIdStream excluded temp blobs from the result stream. This behavior is changed in 3.15 - getBlobIdStream should include temp blobs. getBlobIdFromAttributeFilePath does not correctly return the BlobId for a temporary blob that already exists, it's only intended to be used for new blobs.
@nblair nblair requested a review from mattjohnson March 2, 2019 04:07
@nblair
Copy link
Contributor Author

nblair commented Mar 2, 2019

Am seeing an entry in the log:

2019-03-02 04:20:41,876+0000 ERROR [blobstore-metrics-6-thread-1]  admin org.sonatype.nexus.blobstore.internal.PeriodicJobServiceImpl - Periodic job threw exception
java.lang.NullPointerException: null
	at org.sonatype.nexus.blobstore.quota.BlobStoreQuotaSupport.quotaCheckJob(BlobStoreQuotaSupport.java:97)
	at org.sonatype.nexus.blobstore.quota.BlobStoreQuotaSupport.lambda$0(BlobStoreQuotaSupport.java:84)
	at org.sonatype.nexus.blobstore.internal.PeriodicJobServiceImpl.lambda$1(PeriodicJobServiceImpl.java:90)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

BlobStoreMetricsStoreSupport#start has a subtle requirement that BlobStoreMetricsSupport#setBlobStore be called first with a non-null argument. The reference to the blobstore is used by a periodic job that checks for soft quota issues, this job is instantiated/scheduled by doStart.
@nblair
Copy link
Contributor Author

nblair commented Mar 5, 2019

Fixed the NPE in 0c173d8 - there's a requirement to call setBlobStore prior to start on the Metrics store.

@nblair nblair merged commit 46eaa69 into master Mar 8, 2019
@nblair nblair deleted the nxrm_3_15 branch March 8, 2019 02:34
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants