[ 
https://issues.apache.org/jira/browse/XGC-138?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gunnar Hillert updated XGC-138:
-------------------------------
    Summary: Adobe XMP - NullPointerException: 
"XMPHandler.getCurrentProperties()" is null  (was: Adobe XMP - 
NullPointerException: 
"org.apache.xmlgraphics.xmp.XMPHandler.getCurrentProperties()" is 
null"org.apache.xmlgraphics.xmp.XMPHandler.getCurrentProperties()" is null)

> Adobe XMP - NullPointerException: "XMPHandler.getCurrentProperties()" is null
> -----------------------------------------------------------------------------
>
>                 Key: XGC-138
>                 URL: https://issues.apache.org/jira/browse/XGC-138
>             Project: XMLGraphicsCommons
>          Issue Type: Bug
>          Components: xmp
>    Affects Versions: 2.9
>            Reporter: Gunnar Hillert
>            Priority: Major
>
> When calling
> {code:java}
>  XMPParser.parseXMP(new StreamSource(new StringReader(xmpString))){code}
> with XMP XML that contains facial recognition data, a *NullPointerException* 
> is thrown:
> {code:java}
>  Caused by: javax.xml.transform.TransformerException: 
> java.lang.NullPointerException: Cannot invoke 
> "org.apache.xmlgraphics.xmp.PropertyAccess.setProperty(org.apache.xmlgraphics.xmp.XMPProperty)"
>  because the return value of 
> "org.apache.xmlgraphics.xmp.XMPHandler.getCurrentProperties()" is null
>     at 
> java.xml/com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:789)
>     at 
> java.xml/com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:395)
>     at org.apache.xmlgraphics.xmp.XMPParser.parseXMP(XMPParser.java:63)
>     at 
> com.hillert.image.metadata.service.support.MetadataExtractor.getXMPMetadata(MetadataExtractor.java:146)
>     ... 71 more
> Caused by: java.lang.NullPointerException: Cannot invoke 
> "org.apache.xmlgraphics.xmp.PropertyAccess.setProperty(org.apache.xmlgraphics.xmp.XMPProperty)"
>  because the return value of 
> "org.apache.xmlgraphics.xmp.XMPHandler.getCurrentProperties()" is null
>     at org.apache.xmlgraphics.xmp.XMPHandler.startElement(XMPHandler.java:157)
>     at 
> java.xml/com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.closeStartTag(ToXMLSAXHandler.java:206)
>     at 
> java.xml/com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.characters(ToXMLSAXHandler.java:526)
>     at 
> java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.characters(AbstractSAXParser.java:555)
>     at 
> java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:485)
>     at 
> java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889)
>     at 
> java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825)
>     at 
> java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
>     at 
> java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1224)
>     at 
> java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:637)
>     at 
> java.xml/com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:666)
>     at 
> java.xml/com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:780)
>     ... 74 more{code}
> In order to reproduce, take 1 image with with at least 1 person in it and 
> import it into {*}Adobe Light Room Classic{*}. Export the original image with 
> all Metadata intact.
> Calling:
> {code:java}
>  XMPParser.parseXMP(new StreamSource(new StringReader(xmpString))){code}
> will fail. Taking an image without any humans will work.
> As far as I can tell the following additional XML is present in the image 
> with the human face:
> {code:java}
> <mwg-rs:Regions rdf:parseType="Resource">
>         <mwg-rs:AppliedToDimensions stDim:h="3456" stDim:unit="pixel" 
> stDim:w="4608"/>
>         <mwg-rs:RegionList>
>           <rdf:Bag>
>             <rdf:li>
>               <rdf:Description mwg-rs:Rotation="0.00000" mwg-rs:Type="Face">
>                 <mwg-rs:Area stArea:h="0.27734" stArea:w="0.20801" 
> stArea:x="0.57178" stArea:y="0.34180"/>
>               </rdf:Description>
>             </rdf:li>
>           </rdf:Bag>
>         </mwg-rs:RegionList>
>       </mwg-rs:Regions> {code}
> Once you remove:
> {code:java}
> <rdf:Description mwg-rs:Rotation="0.00000" mwg-rs:Type="Face">
>   <mwg-rs:Area stArea:h="0.27734" stArea:w="0.20801" stArea:x="0.57178" 
> stArea:y="0.34180"/>
> </rdf:Description> {code}
> the parsing of the XMP XML data will succeed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to