a Picture upload error in 5.8 HF05
After the picture upload there is no preview of it. In the logfile is recorded:
2014-01-31 18:26:30,701 WARN [Transaction] Error ending association for XAResource org.apache.geronimo.transaction.manager.WrapperNamedXAResource@4e3d3e45; transaction will roll back. XA error code: -3 javax.transaction.xa.XAException
...
Caused by: org.nuxeo.ecm.core.storage.StorageException: Could not insert: INSERT INTO “image_metadata” (“id”, “icc_profile”, “white_balance”, “pixel_xdimension”, “yresolution”, “copyright”, “color_space”, “date_time_original”, “orientation”, “xresolution”, “user_comment”, “image_description”, “pixel_ydimension”, “iso_speed_ratings”, “equipment”, “fnumber”, “focal_length”, “exposure_time”) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper.insertSimpleRows(JDBCRowMapper.java:606) ...
Caused by: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO “image_metadata” (“id”, “icc_profile”, “white_balance”, “pixel_xdimension”, “yresolution”, “copyright”, “color_space”, “date_time_original”, “orientation”, “xresolution”, “user_comment”, “image_description”, “pixel_ydimension”, “iso_speed_ratings”, “equipment”, “fnumber”, “focal_length”, “exposure_time”) VALUES ('c85a74b1-f253-441e-bdcf-d440a2aef14f', NULL, 'auto', 3264, 72, NULL, 'SRGB', '2014-01-31 10:43:44.000000 +01:00:00', 'TOP_LEFT', 72, 'KJKJAKJKJAďż˝ecuteBatch(AbstractJdbc2Statement.java:2893)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297) at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297) at org.nuxeo.ecm.core.storage.sql.jdbc.JDBCRowMapper.insertSimpleRows(JDBCRowMapper.java:590) ... 20 more
Caused by: org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding “UTF8”: 0x00
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886) ... 25 more
The cause is:
ERROR: invalid byte sequence for encoding "UTF8": 0x00
So one of the strings that is passed contains a U+0000 character, which PostgreSQL forbids. Which string exactly is difficult to determine using just the logs, but it seems to be the EXIF UserComment field that contains garbage
We'll see if the strings can be sanitized a bit before being saved into the Nuxeo document. I opened NXP-13682 for this. If possible please attach to that ticket an example image for which the problem occurs (if the image can be freely distributed — if not, please send it by email to me, fg@nuxeo.com).