vendrhub / vendr-deploy

Umbraco Deploy resolvers for Vendr, the eCommerce solution for Umbraco v8+
MIT License
0 stars 2 forks source link

Cannot restore content if price is empty #12

Open MichaelNielsenDK opened 2 years ago

MichaelNielsenDK commented 2 years ago

If the Vendr.Price parameter is not given a value on a product node, we get an error when trying to restore content from Cloud to Local.

It's a minor thing, and can be avoided by making the parameter required and making sure it always has a value, but I figured I'll report it anyway, and let you decide if its something that needs fixing.

Umbraco 8.17.0 Umbraco Deploy 4.4.3.0 Vendr 2.0.4 Vendr.Deploy 2.0.1

8d789bd4 - Executing, 10% - Get remote session
8d789bd4 - Executing, 20% - Create manifest on source
8d789bd4 - Executing, 25% - Review manifest on target
8d789bd4 - Executing, 25% - Update manifest on source
8d789bd4 - Executing, 25% - Review manifest on target
8d789bd4 - Executing, 30% - Create package on source
8d789bd4 - Executing, 80% - Complete remote session
8d789bd4 - Executing, 80% - Process package on target
8d789bd4 - Executing, 80% - Exception!
8d789bd4 - Executing, 80% - Abort remote session
8d789bd4 - Executing, 80% - Restore caches and indexes
8d789bd4 - Failed, 80% - Total time 00:00:13.003.

-- EXCEPTION ---------------------------------------------------
 (proper exception traces at the end of this log)
System.ArgumentNullException: En værdi må ikke være null.
Parameternavn: source
Umbraco.Deploy.Exceptions.ProcessArtifactException: Process pass #4 failed for artifact umb://document/77192dcb54024515a96a187b2e68d8e9.
----------------------------------------------------------------

EXCEPTION:

Umbraco.Deploy.Exceptions.ProcessArtifactException: Process pass #4 failed for artifact umb://document/77192dcb54024515a96a187b2e68d8e9.
   ved Umbraco.Deploy.Environments.CurrentEnvironment.ProcessArtifacts(IEnumerable`1 arts, IDeployContext context, CancellationToken token)
   ved Umbraco.Deploy.Environments.CurrentEnvironment.ProcessPackageAsync(Guid sessionId, Package package, CancellationToken token)
   ved Umbraco.Deploy.Work.WorkItems.DeployRestoreWorkItemBase.<ProcessPackage>d__23.MoveNext()
--- Afslutningen på staksporingen fra den tidligere placering, hvor undtagelsen blev udløst ---
   ved System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   ved System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   ved Umbraco.Deploy.Work.WorkItems.TargetPartialRestoreWorkItem.<Proceed>d__16.MoveNext()
--- Afslutningen på staksporingen fra den tidligere placering, hvor undtagelsen blev udløst ---
   ved System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   ved System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   ved Umbraco.Deploy.Work.WorkItems.TargetPartialRestoreWorkItem.<ExecuteAsyncSub>d__15.MoveNext()
--- Afslutningen på staksporingen fra den tidligere placering, hvor undtagelsen blev udløst ---
   ved System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   ved Umbraco.Deploy.Work.WorkItems.TargetPartialRestoreWorkItem.<ExecuteAsyncSub>d__15.MoveNext()
--- Afslutningen på staksporingen fra den tidligere placering, hvor undtagelsen blev udløst ---
   ved System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   ved System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   ved Umbraco.Deploy.Work.WorkItems.TargetPartialRestoreWorkItem.<ExecuteAsync>d__14.MoveNext()

INNER:
  System.ArgumentNullException: En værdi må ikke være null.
Parameternavn: source
     ved System.Linq.Enumerable.Where[TSource](IEnumerable`1 source, Func`2 predicate)
     ved Umbraco.Web.PropertyEditors.BlockEditorPropertyEditor.BlockEditorValues.DeserializeAndClean(Object propertyValue) i D:\a\1\s\src\Umbraco.Web\PropertyEditors\BlockEditorPropertyEditor.cs:linje 374
     ved Umbraco.Web.PropertyEditors.BlockEditorPropertyEditor.BlockEditorPropertyValueEditor.GetReferences(Object value) i D:\a\1\s\src\Umbraco.Web\PropertyEditors\BlockEditorPropertyEditor.cs:linje 71
     ved Umbraco.Core.PropertyEditors.DataValueReferenceFactoryCollection.GetAllReferences(PropertyCollection properties, PropertyEditorCollection propertyEditors) i D:\a\1\s\src\Umbraco.Core\PropertyEditors\DataValueReferenceFactoryCollection.cs:linje 32
     ved Umbraco.Core.Persistence.Repositories.Implement.ContentRepositoryBase`3.PersistRelations(TEntity entity) i D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\ContentRepositoryBase.cs:linje 969
     ved Umbraco.Core.Persistence.Repositories.Implement.DocumentRepository.PersistUpdatedItem(IContent entity) i D:\a\1\s\src\Umbraco.Core\Persistence\Repositories\Implement\DocumentRepository.cs:linje 723
     ved Umbraco.Core.Cache.DefaultRepositoryCachePolicy`2.Update(TEntity entity, Action`1 persistUpdated) i D:\a\1\s\src\Umbraco.Core\Cache\DefaultRepositoryCachePolicy.cs:linje 136
     ved Umbraco.Core.Services.Implement.ContentService.CommitDocumentChangesInternal(IScope scope, IContent content, ContentSavingEventArgs saveEventArgs, IReadOnlyCollection`1 allLangs, Int32 userId, Boolean raiseEvents, Boolean branchOne, Boolean branchRoot) i D:\a\1\s\src\Umbraco.Core\Services\Implement\ContentService.cs:linje 1257
     ved Umbraco.Core.Services.Implement.ContentService.SaveAndPublish(IContent content, String culture, Int32 userId, Boolean raiseEvents) i D:\a\1\s\src\Umbraco.Core\Services\Implement\ContentService.cs:linje 930
     ved Umbraco.Deploy.Connectors.ServiceConnectors.ContentConnector.DocumentConnector.Process4(DeployState state, IDeployContext context, Int32 pass)
     ved Umbraco.Deploy.Environments.CurrentEnvironment.ProcessArtifacts(IEnumerable`1 arts, IDeployContext context, CancellationToken token)
mattbrailsford commented 2 years ago

Good spot.

I think it's definitely worth resolving so I'll take a look and see what we can do 👍