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

Adapting metadata node to object is returning null

  • January 24, 2018
  • 11 replies
  • 6649 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

manoj_devapath
Level 5
January 24, 2018

Can you pls confirm whats the mine type of  resource of destinationPath is ?

smacdonald2008
Level 10
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.

Level 3
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

Level 3
January 29, 2018

Hi,

The mime type is application/pdf.

Thanks,
Anusha

smacdonald2008
Level 10
January 29, 2018

See this thread to get metadata from a DAM asset -

Accessing dam asset metadata programatically

smacdonald2008
Level 10
January 29, 2018

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

Level 3
January 30, 2018

Thanks smacdonald2008​. I will wait for the document.

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

BrijeshYadav
Level 5
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

smacdonald2008
Level 10
January 30, 2018

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

joerghoh
Adobe Employee
joerghohAdobe EmployeeAccepted solution
Adobe 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