Adapting metadata node to object is returning null | Community
Skip to main content
New Participant
January 24, 2018
Solved

Adapting metadata node to object is returning null

  • January 24, 2018
  • 11 replies
  • 6646 views

I need to adapt document metadata node to an object. The code is as below. But the object returns null. Did anyone face similar issue?

Resource resource = resourceResolver.getResource(destinationPath+"/"+JcrConstants.JCR_CONTENT+"/metadata");

DocumentInfo documentInfo = resource.adaptTo(DocumentInfo.class);

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by joerghoh

Hi,

I don't know the DocumentInfo class, can you please give the full package name? Is there an adapter factory available for this at all? Check localhost:4502/system/console/adapters if an adapter with adapter class "Resource.class" and adaptable class "DocumentInfo.class" is registered.

adaptTo() is allowed to return "null" in case the adaption fails. Depending on the adapter factory the reasons are logged or not. So we clearly need to know much more information about the resource (or sub-resources) you are trying to adapt.

Jörg

11 replies

New Participant
January 31, 2018

Thanks Jorg. I could figure out the issue now. DocumentInfo is a custom class that we have created. We are posting assets to DAM and have additional properties added to metadata.

Currently we are migrating from AEM 6.1 to 6.3. I missed the configuration for making DocumentInfo adaptable. I have added the same and now it is available in "/system/console/adapters" and working as expected.

joerghoh
joerghohAccepted solution
Employee
January 30, 2018

Hi,

I don't know the DocumentInfo class, can you please give the full package name? Is there an adapter factory available for this at all? Check localhost:4502/system/console/adapters if an adapter with adapter class "Resource.class" and adaptable class "DocumentInfo.class" is registered.

adaptTo() is allowed to return "null" in case the adaption fails. Depending on the adapter factory the reasons are logged or not. So we clearly need to know much more information about the resource (or sub-resources) you are trying to adapt.

Jörg

smacdonald2008
New Participant
January 30, 2018

Also here is new API to work with assets. Assets HTTP API

BrijeshYadav
New Participant
January 30, 2018

Hi,

Reason is why you getting null after adopting because the resource you get from path is not Asset or DocumentInfo type its a Node.

Try like this as a Node and use Node api to deal with properties

Resource resource = resourceResolver.getResource(destinationPath+"/"+JcrConstants.JCR_CONTENT+"/metadata");

Node documentNode = resource.adaptTo(Node.class);

or Like this as a proper resource and use respective API.

Resource resource = resourceResolver.getResource(destinationPath);

DocumentInfo documentInfo = resource.adaptTo(DocumentInfo.class);

/Brijesh Yadav

New Participant
January 30, 2018

Thanks smacdonald2008​. I will wait for the document.

Asset asset = resource.adaptTo(Asset.class);  is also returning null.

smacdonald2008
New Participant
January 29, 2018

We will start this use case for an article near end of  the week.

smacdonald2008
New Participant
January 29, 2018

See this thread to get metadata from a DAM asset -

Accessing dam asset metadata programatically

New Participant
January 29, 2018

Hi,

The mime type is application/pdf.

Thanks,
Anusha

New Participant
January 29, 2018

Hi smacdonald2008​,

Thanks for the reply. I tried this too, but it doesn't work. Still the object returns null.

Thanks,

Anusha

smacdonald2008
New Participant
January 24, 2018

We have seen this issue with events. If you are using a System user - try using the Admin call and whitelist the bundle. See if that helps resolve this.