Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provisioning publishing page throws null reference exception #788

Closed
leolorenzoluis opened this issue Feb 21, 2016 · 4 comments
Closed

Provisioning publishing page throws null reference exception #788

leolorenzoluis opened this issue Feb 21, 2016 · 4 comments

Comments

@leolorenzoluis
Copy link

Running the given example from [here](http://docs.subpointsolutions.com/spmeta2/definitions/sharepoint-standard/PublishingPageDefinition/#Adding with custom layout)

var customPublishing = new PublishingPageDefinition
    {
        Title = "Custom publishing",
        FileName = "Custom-publishing.aspx",
        PageLayoutFileName = "__ specify a publishing page layout file name here ___"
    };

    var model = SPMeta2Model.NewWebModel(web =>
    {
        web.AddHostList(BuiltInListDefinitions.Pages, list =>
        {
            list
                .AddPublishingPage(customPublishing);
        });
    });

throws an exception

SPMeta2.Exceptions.SPMeta2ModelDeploymentException: There was an error while pro
visioning definition. Check ModelNode prop. ---> System.NullReferenceException:
Object reference not set to an instance of an object.
at SPMeta2.SSOM.Standard.ModelHandlers.PublishingPageModelHandler.<>c__Displa
yClass8.b__7(SPFile afterFile)
at SPMeta2.SSOM.ModelHandlers.ModuleFileModelHandler.WithSafeFileOperation(SP
List list, SPFolder folder, String fileUrl, String fileName, Byte[] fileContent,
Boolean overide, Action1 onBeforeAction, Action1 onAction)
at SPMeta2.SSOM.Standard.ModelHandlers.PublishingPageModelHandler.DeployPubli
shingPage(Object modelHost, SPList list, SPFolder folder, PublishingPageDefiniti
on publishingPageModel)
at SPMeta2.SSOM.Standard.ModelHandlers.PublishingPageModelHandler.DeployModel
(Object modelHost, DefinitionBase model)
at SPMeta2.Services.Impl.DefaultModelTreeTraverseService.Traverse(Object mode
lHost, ModelNode modelNode)
--- End of inner exception stack trace ---
at SPMeta2.Services.Impl.DefaultModelTreeTraverseService.Traverse(Object mode
lHost, ModelNode modelNode)
at SPMeta2.Services.Impl.DefaultModelTreeTraverseService.<>c__DisplayClass6.<
Traverse>b__4(Object childModelHost)
at SPMeta2.SSOM.ModelHandlers.ListModelHandler.WithResolvingModelHost(ModelHo
stResolveContext modelHostContext)
at SPMeta2.Services.Impl.DefaultModelTreeTraverseService.Traverse(Object mode
lHost, ModelNode modelNode)
at SPMeta2.Services.Impl.DefaultModelTreeTraverseService.<>c__DisplayClass6.<
Traverse>b__4(Object childModelHost)
at SPMeta2.SSOM.ModelHandlers.WebModelHandler.WithResolvingModelHost(ModelHos
tResolveContext modelHostContext)
at SPMeta2.Services.Impl.DefaultModelTreeTraverseService.Traverse(Object mode
lHost, ModelNode modelNode)
at SPMeta2.Services.ModelServiceBase.ProcessModelDeployment(Object modelHost,
ModelNode modelNode)
at SPMeta2.Services.ModelServiceBase.DeployModel(ModelHostBase modelHost, Mod
elNode model)
at SPMeta2.SSOM.Services.SSOMProvisionService.DeployModel(ModelHostBase model
Host, ModelNode model)
at SPMeta2.SSOM.Services.SSOMProvisionServiceExtensions.DeployWebModel(SSOMPr
ovisionService modelHost, SPWeb web, ModelNode model)

@SubPointSupport
Copy link
Contributor

Thanks for reporting that. Which version of m2 did you use?

@SubPointSupport
Copy link
Contributor

Did you provide PageLayoutFileName for the page definition, which one?

@leolorenzoluis
Copy link
Author

I did. I missed the extension file name of the file.

I had to do something like "PageLayout.aspx". I was expecting ".aspx" is taken care for me. Assuming I didn't provide the file extension, then the wrapper model should take care of it. It is most likely a page layout template that is being used and will end with ".aspx" and it can't be .html or any other file extension. Unless I am missing a different use case?

@SubPointSupport
Copy link
Contributor

Valid point. We'll add a validation on top, so that M2 won't allow to provision a model without PageLayoutFileName set, and will also validate the extension - it must end with ".aspx" which makes sense.

Will do, thanks for the suggestion, @leolorenzoluis
#791

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants