metadata-extractor
metadata-extractor copied to clipboard
processAppleRunTime java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Byte
the exception info is as follow
https://github.com/drewnoakes/metadata-extractor/blob/2.16.0/Source/com/drew/metadata/exif/ExifTiffHandler.java#L385
Exception Stack:
at com.drew.metadata.exif.ExifTiffHandler.processAppleRunTime(ExifTiffHandler.java:385)
at com.drew.metadata.exif.ExifTiffHandler.customProcessTag(ExifTiffHandler.java:251)
at com.drew.imaging.tiff.TiffReader.processIfd(TiffReader.java:220)
at com.drew.metadata.exif.ExifTiffHandler.processMakernote(ExifTiffHandler.java:645)
at com.drew.metadata.exif.ExifTiffHandler.customProcessTag(ExifTiffHandler.java:207)
at com.drew.imaging.tiff.TiffReader.processIfd(TiffReader.java:220)
at com.drew.imaging.tiff.TiffReader.processIfd(TiffReader.java:214)
at com.drew.imaging.tiff.TiffReader.processTiff(TiffReader.java:78)
at com.drew.metadata.exif.ExifReader.extract(ExifReader.java:94)
at com.drew.metadata.exif.ExifReader.extract(ExifReader.java:84)
at com.drew.metadata.exif.ExifReader.readJpegSegments(ExifReader.java:63)
at com.drew.imaging.jpeg.JpegMetadataReader.processJpegSegmentData(JpegMetadataReader.java:134)
at com.drew.imaging.jpeg.JpegMetadataReader.process(JpegMetadataReader.java:126)
at com.drew.imaging.jpeg.JpegMetadataReader.readMetadata(JpegMetadataReader.java:77)
at com.drew.imaging.jpeg.JpegMetadataReader.readMetadata(JpegMetadataReader.java:84)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:146)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:124)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:103)
byte flags = (Byte)values.get("flags");
I have debug into the line. the value of "flags" is "1" ,type is char[]
is Byte.parseByte(values.get("flags").toString()) right?
@shalk thanks for filing this. Can you share an image that reproduces this issue?
It may be that the value is sometimes a string, and sometimes a Byte
. I would prefer to only parse when the value is actually a string.
echo @drewnoakes' request for source image. I had only seen similar problems when the BPLIST was malformed or un-parsable. The top object is expected to be a map of bytes (a dict
by the marker).
Also have an error while reading exif:
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
at com.drew.metadata.apple.AppleRunTimeReader.processAppleRunTime(AppleRunTimeReader.java:75)
version: 2.18.0
file attached.