|
Author:
{'email': 'evgzakharov88@gmail.com', 'name': 'Evgeny Zakharov', 'username': 'evgzakharov'}
Message: Add to call of callback if error raise on decoding of document
JAVA-3644
Branch: master
https://github.com/mongodb/mongo-java-driver/commit/88c9cc3ca9dd3413c9b0c688284bd2ec4a5551bb
|
|
Author:
{'name': 'Evgeny Zakharov', 'username': 'evgzakharov', 'email': 'evgzakharov88@gmail.com'}
Message: Add to call of callback if error raise on decoding of document
JAVA-3644
Branch: 3.12.x
https://github.com/mongodb/mongo-java-driver/commit/8128846102cd9550cc7f808309f99e2e6ac95d4d
|
|
Author:
{'name': 'Evgeny Zakharov', 'username': 'evgzakharov', 'email': 'evgzakharov88@gmail.com'}
Message: Add to call of callback if error raise on decoding of document
JAVA-3644
Branch: 4.0.x
https://github.com/mongodb/mongo-java-driver/commit/719b9d13cac93f468a7b1ee1f66f4ca66563f6bd
|
|
I'm test this with opening a watch on collection, modify document and remove required field and after get an error:
2020-03-05 11:24:38.948 ERROR [Thread-9] o.m.d.operation: Callback onResult call produced an error2020-03-05 11:24:38.948 ERROR [Thread-9] o.m.d.operation: Callback onResult call produced an errororg.bson.codecs.configuration.CodecConfigurationException: Failed to decode 'ChangeStreamDocument'. Decoding 'fullDocument' errored with: An exception occurred when decoding using the AutomaticPojoCodec.Decoding into a 'League' failed with the following exception:
|
Could not construct new instance of: League. Missing the following properties: [season]
|
A custom Codec or PojoCodec may need to be explicitly configured and registered to handle this type. at org.bson.codecs.pojo.PojoCodecImpl.decodePropertyModel(PojoCodecImpl.java:225) at org.bson.codecs.pojo.PojoCodecImpl.decodeProperties(PojoCodecImpl.java:198) at org.bson.codecs.pojo.PojoCodecImpl.decode(PojoCodecImpl.java:122) at org.bson.codecs.pojo.PojoCodecImpl.decode(PojoCodecImpl.java:126) at com.mongodb.client.model.changestream.ChangeStreamDocumentCodec.decode(ChangeStreamDocumentCodec.java:62) at com.mongodb.client.model.changestream.ChangeStreamDocumentCodec.decode(ChangeStreamDocumentCodec.java:35) at org.bson.RawBsonDocument.decode(RawBsonDocument.java:161) at com.mongodb.internal.operation.AsyncChangeStreamBatchCursor$3.onResult(AsyncChangeStreamBatchCursor.java:176) at com.mongodb.internal.operation.AsyncChangeStreamBatchCursor$3.onResult(AsyncChangeStreamBatchCursor.java:162) at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) at com.mongodb.internal.operation.AsyncChangeStreamBatchCursor$4.onResult(AsyncChangeStreamBatchCursor.java:206) at com.mongodb.internal.operation.AsyncChangeStreamBatchCursor$4.onResult(AsyncChangeStreamBatchCursor.java:201) at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) at com.mongodb.internal.operation.AsyncQueryBatchCursor.handleGetMoreQueryResult(AsyncQueryBatchCursor.java:342) at com.mongodb.internal.operation.AsyncQueryBatchCursor.access$600(AsyncQueryBatchCursor.java:56) at com.mongodb.internal.operation.AsyncQueryBatchCursor$CommandResultSingleResultCallback.onResult(AsyncQueryBatchCursor.java:374) at com.mongodb.internal.operation.AsyncQueryBatchCursor$CommandResultSingleResultCallback.onResult(AsyncQueryBatchCursor.java:347) at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) at com.mongodb.internal.connection.DefaultServer$DefaultServerProtocolExecutor$2.onResult(DefaultServer.java:251) at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) at com.mongodb.internal.connection.CommandProtocolImpl$1.onResult(CommandProtocolImpl.java:84) at com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection$2.onResult(DefaultConnectionPool.java:517) at com.mongodb.internal.connection.UsageTrackingInternalConnection$2.onResult(UsageTrackingInternalConnection.java:111) at com.mongodb.internal.async.ErrorHandlingResultCallback.onResult(ErrorHandlingResultCallback.java:48) at com.mongodb.internal.connection.InternalStreamConnection$2$1.onResult(InternalStreamConnection.java:398) at com.mongodb.internal.connection.InternalStreamConnection$2$1.onResult(InternalStreamConnection.java:375) at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback$MessageCallback.onResult(InternalStreamConnection.java:676) at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback$MessageCallback.onResult(InternalStreamConnection.java:643) at com.mongodb.internal.connection.InternalStreamConnection$5.completed(InternalStreamConnection.java:513) at com.mongodb.internal.connection.InternalStreamConnection$5.completed(InternalStreamConnection.java:510) at com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.completed(AsynchronousChannelStream.java:220) at com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.completed(AsynchronousChannelStream.java:203) at java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127) at java.base/sun.nio.ch.Invoker.invokeDirect(Invoker.java:158) at java.base/sun.nio.ch.UnixAsynchronousSocketChannelImpl.implRead(UnixAsynchronousSocketChannelImpl.java:568) at java.base/sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:276) at java.base/sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:297) at com.mongodb.internal.connection.AsynchronousSocketChannelStream$AsynchronousSocketChannelAdapter.read(AsynchronousSocketChannelStream.java:136) at com.mongodb.internal.connection.AsynchronousChannelStream.readAsync(AsynchronousChannelStream.java:105) at com.mongodb.internal.connection.InternalStreamConnection.readAsync(InternalStreamConnection.java:510) at com.mongodb.internal.connection.InternalStreamConnection.access$1000(InternalStreamConnection.java:75) at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback.onResult(InternalStreamConnection.java:633) at com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback.onResult(InternalStreamConnection.java:618) at com.mongodb.internal.connection.InternalStreamConnection$5.completed(InternalStreamConnection.java:513) at com.mongodb.internal.connection.InternalStreamConnection$5.completed(InternalStreamConnection.java:510) at com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.completed(AsynchronousChannelStream.java:220) at com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.completed(AsynchronousChannelStream.java:203) at java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:127) at java.base/sun.nio.ch.UnixAsynchronousSocketChannelImpl.finishRead(UnixAsynchronousSocketChannelImpl.java:443) at java.base/sun.nio.ch.UnixAsynchronousSocketChannelImpl.finish(UnixAsynchronousSocketChannelImpl.java:193) at java.base/sun.nio.ch.UnixAsynchronousSocketChannelImpl.onEvent(UnixAsynchronousSocketChannelImpl.java:215) at java.base/sun.nio.ch.KQueuePort$EventHandlerTask.run(KQueuePort.java:312) at java.base/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:830)Caused by: org.bson.codecs.configuration.CodecConfigurationException: An exception occurred when decoding using the AutomaticPojoCodec.Decoding into a 'League' failed with the following exception:
|
Could not construct new instance of: League. Missing the following properties: [season]
|
A custom Codec or PojoCodec may need to be explicitly configured and registered to handle this type. at org.bson.codecs.pojo.AutomaticPojoCodec.decode(AutomaticPojoCodec.java:40) at org.bson.codecs.DecoderContext.decodeWithChildContext(DecoderContext.java:96) at org.bson.codecs.pojo.PojoCodecImpl.decodePropertyModel(PojoCodecImpl.java:219) ... 55 common frames omittedCaused by: org.bson.codecs.configuration.CodecConfigurationException: Could not construct new instance of: League. Missing the following properties: [season] at org.bson.codecs.pojo.InstanceCreatorImpl.getInstance(InstanceCreatorImpl.java:94) at org.bson.codecs.pojo.PojoCodecImpl.decode(PojoCodecImpl.java:123) at org.bson.codecs.pojo.PojoCodecImpl.decode(PojoCodecImpl.java:126) at org.bson.codecs.pojo.AutomaticPojoCodec.decode(AutomaticPojoCodec.java:37) ... 57 common frames omittedCaused by: org.bson.codecs.configuration.CodecConfigurationException: null at org.bson.codecs.pojo.InstanceCreatorImpl.constructInstanceAndProcessCachedValues(InstanceCreatorImpl.java:106) at org.bson.codecs.pojo.InstanceCreatorImpl.getInstance(InstanceCreatorImpl.java:92) ... 60 common frames omittedCaused by: org.bson.codecs.configuration.CodecConfigurationException: null at org.bson.codecs.pojo.CreatorExecutable.getInstance(CreatorExecutable.java:129) at org.bson.codecs.pojo.InstanceCreatorImpl.constructInstanceAndProcessCachedValues(InstanceCreatorImpl.java:104) ... 61 common frames omittedCaused by: java.lang.IllegalArgumentException: null at jdk.internal.reflect.GeneratedConstructorAccessor58.newInstance(Unknown Source) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) at org.bson.codecs.pojo.CreatorExecutable.getInstance(CreatorExecutable.java:124) ... 62 common frames omitted2020-03-05 11:24:39.668 DEBUG [DefaultDispatcher-worker-1] c.f.g.w.c.b.BotDelayedTaskManager: find 1 values2020-03-05 11:24:39.669 DEBUG [DefaultDispatcher-worker-1] c.f.g.w.c.g.b.h.HelicopterRefuelRound: start to emulate bot attack for bucket=LeagueBucketId(value=5e60b59fa576606f5ef06bfb)2020-03-05 11:24:39.758 DEBUG [DefaultDispatcher-worker-5] c.f.g.w.c.b.BotDelayedTaskManager: find 2 values2020-03-05 11:24:39.758 DEBUG [DefaultDispatcher-worker-5] c.f.g.w.c.g.b.h.HelicopterRefuelRound: start to emulate bot attack for bucket=LeagueBucketId(value=5e60b5b1a576606f5ef06c5c)
|
And after this watch is not closed or receive any new documents from DB.
Also I have added PR to mongo-java-driver
|
|
What sort of decoding error are you getting? Can you provide a stack trace?
|
Generated at Thu Feb 08 09:00:05 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.