messages problems in conference

Discussion in 'Web Call Server 5' started by Gabriel T, Jan 14, 2020 at 7:29 AM.

  1. Gabriel T

    Gabriel T Member

    Hello, i have a stranger behavior with some messages send t the chat in conference.
    It seems that there is a related error message in logs:
    08:58:54,044 WARN RestApiRouter - HTTP-pool-2-thread-1220 Invalid UTF-8 middle byte 0x6d
    at [Source: org.jboss.netty.buffer.ChannelBufferInputStream@10d6468a; line: 1, column: 471]
    org.codehaus.jackson.JsonParseException: Invalid UTF-8 middle byte 0x6d
    at [Source: org.jboss.netty.buffer.ChannelBufferInputStream@10d6468a; line: 1, column: 471]
    at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1433)
    at org.codehaus.jackson.impl.JsonParserMinimalBase._reportError(JsonParserMinimalBase.java:521)
    at org.codehaus.jackson.impl.Utf8StreamParser._reportInvalidOther(Utf8StreamParser.java:2831)
    at org.codehaus.jackson.impl.Utf8StreamParser._reportInvalidOther(Utf8StreamParser.java:2838)
    at org.codehaus.jackson.impl.Utf8StreamParser._decodeUtf8_3fast(Utf8StreamParser.java:2660)
    at org.codehaus.jackson.impl.Utf8StreamParser._finishString2(Utf8StreamParser.java:1956)
    at org.codehaus.jackson.impl.Utf8StreamParser._finishString(Utf8StreamParser.java:1905)
    at org.codehaus.jackson.impl.Utf8StreamParser.getText(Utf8StreamParser.java:276)
    at org.codehaus.jackson.map.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:59)
    at org.codehaus.jackson.map.deser.std.UntypedObjectDeserializer.mapObject(UntypedObjectDeserializer.java:218)
    at org.codehaus.jackson.map.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:47)
    at org.codehaus.jackson.map.deser.std.UntypedObjectDeserializer.mapObject(UntypedObjectDeserializer.java:204)
    at org.codehaus.jackson.map.deser.std.UntypedObjectDeserializer.deserialize(UntypedObjectDeserializer.java:47)
    at org.codehaus.jackson.map.deser.std.MapDeserializer._readAndBind(MapDeserializer.java:319)
    at org.codehaus.jackson.map.deser.std.MapDeserializer.deserialize(MapDeserializer.java:249)
    at org.codehaus.jackson.map.deser.std.MapDeserializer.deserialize(MapDeserializer.java:33)
    at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732)
    at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1909)
    at com.flashphoner.rest.server.RestApiRouter.processRequest(Unknown Source)
    at com.flashphoner.server.http.handlers.RestApiRequestHandler.process(Unknown Source)
    at com.flashphoner.server.http.F.messageReceived(Unknown Source)
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(Unknown Source)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(Unknown Source)
    at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(Unknown Source)
    at org.jboss.netty.handler.codec.http.HttpChunkAggregator.messageReceived(Unknown Source)
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(Unknown Source)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(Unknown Source)
    at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(Unknown Source)
    at org.jboss.netty.channel.Channels.fireMessageReceived(Unknown Source)
    at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(Unknown Source)
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(Unknown Source)
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(Unknown Source)
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(Unknown Source)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(Unknown Source)
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(Unknown Source)
    at org.jboss.netty.channel.Channels.fireMessageReceived(Unknown Source)
    at org.jboss.netty.channel.Channels.fireMessageReceived(Unknown Source)
    at org.jboss.netty.channel.socket.nio.NioWorker.read(Unknown Source)
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(Unknown Source)
    at org.jboss.netty.channel.socket.nio.DeadlockAwareNioWorker.run(Unknown Source)
    at org.jboss.netty.util.ThreadRenamingRunnable.run(Unknown Source)
    at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
    so it looks like there is an utf8 issue, but i really dont understand how it can happen. any clue ?
  2. Gabriel T

    Gabriel T Member

    ok i can confirm the error: if the following text is sent, message dont reach clients and there is the error:
    Bar: 1 turban cheveux, 2 clascad 40%, 2 multipoche 40% tht 71.80€ / Particulier: 1 crème karité visage, 5 actifibres tht 120€. Tht journée 191,80€
    the same message without accents reach clients and dont generate this error in logs
  3. Gabriel T

    Gabriel T Member

    i have been able to reproduce the pb in the video chat example. if only one person connected, no error when sending "à". if 2 persons connected, "à" dont reach destintion and there is error in logs
  4. Gabriel T

    Gabriel T Member

    so i can confirm that all caracters with accent (typically in french language) cause this utf8 error in logs, and messages are not sent. any workaround before a futur fix ?
  5. Gabriel T

    Gabriel T Member

    also, if sending symbol €, a "?" actually appears instead of €....
  6. Max

    Max Administrator Staff Member

    Good day.
    This is a known issue, any non-latin (cyrillic, korean, japanese, extended latin...) characters should be URI-encoded while sending text message:
    Code:
    addMessage(participant.name(), encodeURIComponent(message));
    and decoded while receiving it:
    Code:
    ...
    }).on(ROOM_EVENT.MESSAGE, function(message){
        addMessage(message.from.name(), decodeURIComponent(message.text));
    });
    ...
    

Share This Page