WARN PhotoResizer - Failed to resize avatar

Hi community. Over the course of 3 years, this error has appeared on my Openfire server. I did not find its solution, but I realized that it is connected with the old plugin, but at the moment I have 3 plugins installed:

  • Db access
  • Monitoring service
  • Search

log:

2020.02.16 13:05:20 WARN [socket_c2s-thread-14]: org.jivesoftware.openfire.vcard.PhotoResizer - Failed to resize avatar. An unexpected exception occurred while writing the resized image.
javax.imageio.IIOException: Invalid argument to native writeImage
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeImage(Native Method) ~[?:1.8.0_222]
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeOnThread(JPEGImageWriter.java:1067) ~[?:1.8.0_222]
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:363) ~[?:1.8.0_222]
at javax.imageio.ImageWriter.write(ImageWriter.java:615) ~[?:1.8.0_222]
at org.jivesoftware.openfire.vcard.PhotoResizer.cropAndShrink(PhotoResizer.java:155) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.vcard.PhotoResizer.resizeAvatar(PhotoResizer.java:80) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.ldap.LdapVCardProvider.loadVCard(LdapVCardProvider.java:257) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.vcard.VCardManager.getOrLoadVCard(VCardManager.java:247) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.vcard.VCardManager.getVCard(VCardManager.java:240) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.handler.IQvCardHandler.handleIQ(IQvCardHandler.java:136) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.handler.IQHandler.process(IQHandler.java:62) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:369) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:112) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.net.StanzaHandler.processIQ(StanzaHandler.java:366) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.net.ClientStanzaHandler.processIQ(ClientStanzaHandler.java:95) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:316) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:203) [xmppserver-4.5.1.jar:4.5.1]
at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:183) [xmppserver-4.5.1.jar:4.5.1]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:1015) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:413) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:257) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.session.IoEvent.run(IoEvent.java:89) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:766) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:758) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:697) [mina-core-2.1.3.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

Does anyone know why this error occurs? Maybe due to the fact that the AvatarResize plugin was installed?

2020.06.10 11:15:46 WARN [socket_c2s-thread-13]: org.jivesoftware.openfire.vcard.PhotoResizer - Failed to resize avatar. An unexpected exception occurred while writing the resized image.
javax.imageio.IIOException: Invalid argument to native writeImage
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeImage(Native Method) ~[?:1.8.0_222]
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeOnThread(JPEGImageWriter.java:1067) ~[?:1.8.0_222]
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:363) ~[?:1.8.0_222]
at javax.imageio.ImageWriter.write(ImageWriter.java:615) ~[?:1.8.0_222]
at org.jivesoftware.openfire.vcard.PhotoResizer.cropAndShrink(PhotoResizer.java:155) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.vcard.PhotoResizer.resizeAvatar(PhotoResizer.java:80) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.ldap.LdapVCardProvider.loadVCard(LdapVCardProvider.java:257) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.vcard.VCardManager.getOrLoadVCard(VCardManager.java:247) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.vcard.VCardManager.getVCard(VCardManager.java:240) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.handler.IQvCardHandler.handleIQ(IQvCardHandler.java:136) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.handler.IQHandler.process(IQHandler.java:62) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:369) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:112) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.net.StanzaHandler.processIQ(StanzaHandler.java:366) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.net.ClientStanzaHandler.processIQ(ClientStanzaHandler.java:95) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:316) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:203) [xmppserver-4.5.2.jar:4.5.2]
at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:183) [xmppserver-4.5.2.jar:4.5.2]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:1015) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:413) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:257) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.session.IoEvent.run(IoEvent.java:89) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:766) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:758) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:697) [mina-core-2.1.3.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

What specific version of Java do you use? The message “javax.imageio.IIOException: Invalid argument to native writeImage” makes me wonder if there’s an incompatibility in Java somewhere.

Java 8 update 221
i can’t use a new version java 8 update 252 becouse after update 242 sso kerberos dont work.

security-libs/javax.security
âžś Allow SASL Mechanisms to Be Restricted
A security property named jdk.sasl.disabledMechanisms has been added that can be used to disable SASL mechanisms. Any disabled mechanism will be ignored if it is specified in the mechanisms argument of Sasl.createSaslClient or the mechanism argument of Sasl.createSaslServer. The default value for this security property is empty, which means that no mechanisms are disabled out-of-the-box.

I found my old message, I had Openfire 4.4.0 and Java 8 update 212 there.

I seem to have found the source of this problem.
In my domain, half of the avatars are in PNG format and the other in JPG.
At the same time, avatars are displayed normally in Outlook, Spark and other systems.

Please tell me if there are any restrictions for avatars?
Maybe size, weight or format?

020.11.08 12:15:31 WARN [socket_c2s-thread-4]: org.jivesoftware.openfire.vcard.PhotoResizer - Failed to resize avatar. An unexpected exception occurred while writing the resized image.
javax.imageio.IIOException: Invalid argument to native writeImage
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeImage(Native Method) ~[?:1.8.0_222]
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeOnThread(JPEGImageWriter.java:1067) ~[?:1.8.0_222]
at com.sun.imageio.plugins.jpeg.JPEGImageWriter.write(JPEGImageWriter.java:363) ~[?:1.8.0_222]
at javax.imageio.ImageWriter.write(ImageWriter.java:615) ~[?:1.8.0_222]
at org.jivesoftware.openfire.vcard.PhotoResizer.cropAndShrink(PhotoResizer.java:155) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.vcard.PhotoResizer.resizeAvatar(PhotoResizer.java:80) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.ldap.LdapVCardProvider.loadVCard(LdapVCardProvider.java:257) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.vcard.VCardManager.getOrLoadVCard(VCardManager.java:247) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.vcard.VCardManager.getVCard(VCardManager.java:240) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.handler.IQvCardHandler.handleIQ(IQvCardHandler.java:136) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.handler.IQHandler.process(IQHandler.java:62) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.IQRouter.handle(IQRouter.java:369) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.IQRouter.route(IQRouter.java:112) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:74) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.net.StanzaHandler.processIQ(StanzaHandler.java:366) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.net.ClientStanzaHandler.processIQ(ClientStanzaHandler.java:95) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:316) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.net.StanzaHandler.process(StanzaHandler.java:203) [xmppserver-4.5.4.jar:4.5.4]
at org.jivesoftware.openfire.nio.ConnectionHandler.messageReceived(ConnectionHandler.java:183) [xmppserver-4.5.4.jar:4.5.4]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:1015) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:122) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:413) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:257) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:650) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:49) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:1128) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:106) [mina-core-2.1.3.jar:?]
at org.apache.mina.core.session.IoEvent.run(IoEvent.java:89) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:766) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:758) [mina-core-2.1.3.jar:?]
at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:697) [mina-core-2.1.3.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

The original foto is retrieved from the VCard of the user. The VCard has two relevant fields:

<VCARD>
  <PHOTO>
    <TYPE>mime-time-of-the-photo</TYPE>
    <BINVAL>Base64-encoded-binary</BINVAL>
    ...

The code tries to read the Base64 encoded binary value, and then tries to parse it as an image of the type as specified by the type element. I’m guessing that in your example, that type says that the photo is in jpeg format, while the binary content is actually a png.

you are right.

<PHOTO>
    <TYPE>image/jpeg</TYPE>
    <BINVAL>{thumbnailPhoto}</BINVAL>
  </PHOTO>

but all avatars are displayed normally.
can i specify two photo formats?

<PHOTO>
    <TYPE>image/jpeg,image/png</TYPE>
    <BINVAL>{thumbnailPhoto}</BINVAL>
  </PHOTO>

I don’t know if that’s valid in VCards, but the Resizer will not work with it in any case.

I apologize for the stupid question.
Is the Avatar Resizer plugin needed for newer versions of Openfire?

I saw somewhere on the forum that this plugin is no longer relevant.

I don’t think you need it anymore with newer versions of Openfire.

1 Like

I read this article. https://xmpp.org/extensions/xep-0153.html
Set the value
<TYPE>image/png</TYPE>

Now I don’t get warn

1 Like