You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Two types of scenarios are printing CyclicPropertyReferenceException log in our application similiar to the https://jira.spring.io/browse/DATAMONGO-962.
We have created tiny demo app using spring boot to illustrate these scenarios.
When domain class contains itself(I guess in this case exception makes sense because there's a cycle, but if we can just ignore that.):
Next case is tricky. If property class(Partner) contains same field on same name(job) it throws exception. Plus Job class has to have a non-primitive field(Salary) to throw this exception.
I'm not sure if the case #1 is intentional, but we will keep the structure as it is. But it would be great if this just a bug and can be fixed, or at least there's a way to ignore it. Case #2 can be avoided by naming differently, but still not an ideal solution.
p.s this is not causing serious issues, other than showering our console with ugly exceptions
I just experienced the same when starting to use MonetaryAmount in my documents. I see this in my log:
2023-05-25T10:34:00.686+07:00 INFO 60310 --- [ main] m.c.i.MongoPersistentEntityIndexResolver : Found cycle for field 'amountType' in type 'MonetaryAmountFactory' for path 'factory -> amount -> factory'
2023-05-25T10:34:00.688+07:00 INFO 60310 --- [ main] m.c.i.MongoPersistentEntityIndexResolver : Found cycle for field 'factory' in type 'MonetaryAmount' for path 'factory -> amount -> factory'
when I create MongoDb indexes in my reactive code:
private void indexMongoDocuments(MongoMappingContext ctx, ReactiveMongoOperations template) {
for (MongoPersistentEntity<?> persistentEntity : ctx.getPersistentEntities()) {
Class<?> clazz = persistentEntity.getType();
if (clazz.isAnnotationPresent(Document.class)) {
if (log.isDebugEnabled()) {
log.debug("Indexing MongoDb document: {}", clazz.getCanonicalName());
}
ReactiveIndexOperations indexOps = template.indexOps(clazz);
IndexResolver resolver = new MongoPersistentEntityIndexResolver(ctx);
final Iterable<? extends IndexDefinition> indexDefinitions = resolver.resolveIndexFor(clazz);
Flux.fromIterable(indexDefinitions)
.doOnEach(indexDef -> {
if (indexDef.get() != null && log.isDebugEnabled()) {
log.debug("Creating index with name: {}", indexDef.get());
}
})
.flatMap(indexOps::ensureIndex)
.doOnError(ex -> log.warn("Ignoring: Failed to index class: {}. Reason: {}", clazz.getCanonicalName(), ex.getMessage(), ex))
.collectList()
.block();
}
}
}
Bilguun Bayarmagnai opened DATAMONGO-1255 and commented
Two types of scenarios are printing CyclicPropertyReferenceException log in our application similiar to the https://jira.spring.io/browse/DATAMONGO-962.
We have created tiny demo app using spring boot to illustrate these scenarios.
I'm not sure if the case #1 is intentional, but we will keep the structure as it is. But it would be great if this just a bug and can be fixed, or at least there's a way to ignore it. Case #2 can be avoided by naming differently, but still not an ideal solution.
p.s this is not causing serious issues, other than showering our console with ugly exceptions
Affects: 1.6.3 (Evans SR3)
Reference URL: https://github.com/Migakun/demo-mongo/tree/master/demo-mongo
1 votes, 4 watchers
The text was updated successfully, but these errors were encountered: