Fifotrack Q3 - NullPointerException

David Bergha year ago

Hi all!
We're running a traccar service which gets a NullPointerException specifically for our Fifotrack Q3 device. We are aware that Q3 is not among the supported devices but assumed that since Fifotrack Q2 is supported and it uses the same protocol (fifotrack) it would work.

Currently the device is configured to send to port 5124 and the error logs received are listed in the collapsible. The last 3 lines of the log are then repeated as the device repeatedly reconnects. It seems like when the device includes GPS-location the connection is kept. When instead WIFI AP:s are included in the loc-type field of the fifotrack protocol the error occurs, but I'm not sure.

Is anyone else experiencing this? Is the device simply badly configured or is it just not supported?

2023-07-21 06:08:34  INFO: [T5456c6e3] connected
2023-07-21 06:08:34  INFO: [T5456c6e3: fifotrack < 10.0.0.2] 242438382c3836363334343035363935313334312c353636452c4130332c2c3233303732313036303831392c307c307c307c302c332e39352c38302c303030462c302c562c302c302c35352e3730313333332c31332e3231363937352a35320d0a
2023-07-21 06:08:34  INFO: [T5456c6e3] id: 866344056951341, time: 2023-07-21 06:08:19, lat: 55.70133, lon: 13.21698, course: 0.0
2023-07-21 06:08:34  INFO: [T5456c6e3: fifotrack > 10.0.0.2] 232333382c3836363334343035363935313334312c353636452c4130332c3233303732313036303833342a38410d0a
2023-07-21 06:08:35  INFO: [T5456c6e3: fifotrack < 10.0.0.2] 242438382c3836363334343035363935313334312c353636462c4130332c2c3233303732313036303832362c307c307c307c302c332e39352c38302c303030462c302c562c302c302c35352e3730313333332c31332e3231363937352a35440d0a
2023-07-21 06:08:35  INFO: [T5456c6e3] id: 866344056951341, time: 2023-07-21 06:08:26, lat: 55.70133, lon: 13.21698, course: 0.0
2023-07-21 06:08:35  INFO: [T5456c6e3: fifotrack > 10.0.0.2] 232333382c3836363334343035363935313334312c353636462c4130332c3233303732313036303833352a38430d0a
2023-07-21 06:08:37  INFO: [T5456c6e3: fifotrack < 10.0.0.2] 242438382c3836363334343035363935313334312c353636442c4130332c2c3233303732313036303831302c307c307c307c302c332e39352c38302c303030462c302c562c302c302c35352e3730313333332c31332e3231363937352a35410d0a
2023-07-21 06:08:37  INFO: [T5456c6e3] id: 866344056951341, time: 2023-07-21 06:08:10, lat: 55.70133, lon: 13.21698, course: 0.0
2023-07-21 06:08:37  INFO: [T5456c6e3: fifotrack > 10.0.0.2] 232333382c3836363334343035363935313334312c353636442c4130332c3233303732313036303833372a38430d0a
2023-07-21 06:08:39  INFO: [T5456c6e3: fifotrack < 10.0.0.2] 24243135392c3836363334343035363935313334312c333638462c4130332c2c3233303731363138313430372c3234307c387c323732347c323045454633332c342e31392c3130302c303033452c312c3345323836443542303832433a2d36317c3345323836443546423645383a2d36317c3343323836443546423645413a2d36357c3845443831423544464333413a2d37327c3834443831423544464333413a2d37322a35410d0a
2023-07-21 06:08:39  INFO: [T5456c6e3] error - NullPointerException
2023-07-21 06:08:39  INFO: [T5456c6e3] disconnected

Any help is greatly appreciated.

Anton Tananaeva year ago

Please enable full stack traces to see the full error.

David Bergha year ago

My bad, here are the full stack traces.

2023-07-21 13:54:08  INFO: [Tf48ff1b5] connected
2023-07-21 13:54:08  INFO: [Tf48ff1b5: fifotrack < 10.0.0.2] 24243135392c3836363334343035363935313334312c333939442c4130332c2c3233303731363232323635392c3234307c387c323732347c323045454633332c342e32302c3130302c303033452c312c4145323333464330443245303a2d36357c3345323836443546423645383a2d36357c3238424438393041344130453a2d36377c3845443831423544464333413a2d37307c3841443831423544464333413a2d37302a35460d0a
2023-07-21 13:54:08  INFO: Automatically registered 866344056951341
2023-07-21 13:54:09  INFO: [Tf48ff1b5] error - 
java.lang.NullPointerException
    at org.traccar.handler.FilterHandler.filterFuture(FilterHandler.java:125)
    at org.traccar.handler.FilterHandler.filter(FilterHandler.java:201)
    at org.traccar.handler.FilterHandler.channelRead(FilterHandler.java:259)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at org.traccar.handler.RemoteAddressHandler.channelRead(RemoteAddressHandler.java:53)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at org.traccar.BaseDataHandler.channelRead(BaseDataHandler.java:29)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at org.traccar.BaseDataHandler.channelRead(BaseDataHandler.java:29)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at org.traccar.handler.TimeHandler.channelRead(TimeHandler.java:71)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at org.traccar.ExtendedObjectDecoder.channelRead(ExtendedObjectDecoder.java:91)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at org.traccar.WrapperContext.fireChannelRead(WrapperContext.java:102)
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
    at org.traccar.WrapperInboundHandler.channelRead(WrapperInboundHandler.java:57)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
    at org.traccar.handler.StandardLoggingHandler.channelRead(StandardLoggingHandler.java:44)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at org.traccar.handler.NetworkMessageHandler.channelRead(NetworkMessageHandler.java:37)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:829)
2023-07-21 13:54:09  INFO: [Tf48ff1b5] disconnected

I'm running version 5.8 with the following configuration file, if it is of interest to anyone.

<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <entry key='config.default'>./conf/default.xml</entry>
    <entry key='database.driver'>org.h2.Driver</entry>
    <entry key='database.password'></entry>
    <entry key='database.registerUnknown'>true</entry>
    <entry key='database.registerUnknown.defaultGroupId'>0</entry>
    <entry key='database.url'>jdbc:h2:./data/database</entry>
    <entry key='database.user'>sa</entry>
    <entry key='event.forward.type'>json</entry>
    <entry key='event.forward.url'>https://XXXXX</entry>
    <entry key='forward.type'>json</entry>
    <entry key='forward.url'>https://XXXXX</entry>
    <entry key='logger.fullStackTraces'>true</entry>
    <entry key='web.disableHealthCheck'>true</entry>
</properties>
Anton Tananaeva year ago
Anton Tananaeva year ago
David Bergha year ago

Great, thanks for the help!