Skip to content

Runtime tracing agent reports PropertyReferenceExceptionMessage #621

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jarpz opened this issue Jul 13, 2021 · 5 comments
Closed

Runtime tracing agent reports PropertyReferenceExceptionMessage #621

jarpz opened this issue Jul 13, 2021 · 5 comments
Labels
status: duplicate A duplicate of another issue

Comments

@jarpz
Copy link

jarpz commented Jul 13, 2021

We are getting a rare error on production like this:

Exception:org.springframework.data.mapping.PropertyReferenceExceptionMessage:No property is found for type MessageDeliveryConfig! Did you mean 'id'?Show affected entry in 'Code level' tabStacktrace:org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:94)org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:382)org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:358)org.springframework.data.mapping.PropertyPath.lambda$org.springframework.data.mapping.PropertyPath$$Lambda$.applyjava.util.concurrent.ConcurrentMap.computeIfAbsentorg.springframework.data.mapping.PropertyPath.from(PropertyPath.java:293)org.springframework.data.r2dbc.query.QueryMapper$MetadataBackedField.forName(QueryMapper.java:707)org.springframework.data.r2dbc.query.QueryMapper$MetadataBackedField.getPath(QueryMapper.java:689)org.springframework.data.r2dbc.query.QueryMapper$MetadataBackedField.<init>(QueryMapper.java:668)org.springframework.data.r2dbc.query.QueryMapper$MetadataBackedField.<init>(QueryMapper.java:645)org.springframework.data.r2dbc.query.QueryMapper.createPropertyField(QueryMapper.java:550)org.springframework.data.r2dbc.query.QueryMapper.getMappedObject(QueryMapper.java:161)org.springframework.data.r2dbc.core.DefaultStatementMapper.getSelectList(DefaultStatementMapper.java:136)org.springframework.data.r2dbc.core.DefaultStatementMapper.getMappedObject(DefaultStatementMapper.java:88)org.springframework.data.r2dbc.core.DefaultStatementMapper.access$org.springframework.data.r2dbc.core.DefaultStatementMapper$DefaultTypedStatementMapper.getMappedObject(DefaultStatementMapper.java:364)org.springframework.data.r2dbc.repository.query.R2dbcQueryCreator.select(R2dbcQueryCreator.java:134)org.springframework.data.r2dbc.repository.query.R2dbcQueryCreator.complete(R2dbcQueryCreator.java:95)org.springframework.data.r2dbc.repository.query.R2dbcQueryCreator.complete(R2dbcQueryCreator.java:48)org.springframework.data.repository.query.parser.AbstractQueryCreator.createQuery(AbstractQueryCreator.java:95)org.springframework.data.r2dbc.repository.query.PartTreeR2dbcQuery.createQuery(PartTreeR2dbcQuery.java:100)org.springframework.data.r2dbc.repository.query.AbstractR2dbcQuery.execute(AbstractR2dbcQuery.java:107)org.springframework.data.r2dbc.repository.query.AbstractR2dbcQuery.execute(AbstractR2dbcQuery.java:89)org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor$QueryMethodInvoker.invoke(QueryExecutorMethodInterceptor.java:195)org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:152)org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:130)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)com.sun.proxy.$Proxy.findBySourceAndTargetAndComponentAndActivejdk.internal.reflect.GeneratedMethodAccessor.invokejdk.internal.reflect.DelegatingMethodAccessorImpl.invokejava.lang.reflect.Method.invokeorg.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139)

We are connecting to azure-sql database, this error has not happened all the time, even we can not reproduce on dev environments. But we are getting it on prod env..

our pojo is:

@Table("message_delivery_config")
@Data
public class MessageDeliveryConfig {
  @Id
  private Long id;
  @NotNull
  private String component;
  @NotNull
  @Column("is_active")
  private boolean active;
  @Column("metadata_mirror_transaction")
  private String mirrorTransaction;
  @Column("metadata_program")
  private String program;
  @Column("metadata_region")
  private String region;
  private String replyTo;
  @NotNull
  private String sendTo;
  @NotNull
  private String source;
  @NotNull
  private String target;
  private Long timeout;
  private Integer deliveryMode;
  private Integer priority;
  private Long timeToLiveMillis;
}
@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged label Jul 13, 2021
@mp911de
Copy link
Member

mp911de commented Jul 14, 2021

Can you provide the query/code to construct the query for this issue? It seems, that the active/is_active column gets queried and some part of that isn't translated properly.

@mp911de mp911de added the status: waiting-for-feedback We need additional information before we can continue label Jul 14, 2021
@jarpz
Copy link
Author

jarpz commented Jul 14, 2021

Can you provide the query/code to construct the query for this issue? It seems, that the active/is_active column gets queried and some part of that isn't translated properly.

For sure.. this is the repository:

@Repository
public interface MessageDeliveryConfigRepository extends
    RxJava2CrudRepository<MessageDeliveryConfig, Long>  {
  
Maybe<MessageDeliveryConfig> findBySourceAndTargetAndComponentAndActive(
      String source, String target, String component, boolean active);
}

Even we have evidence for this error over other columns in the same POJO, for instance: over replyTo

Regards.

@spring-projects-issues spring-projects-issues added status: feedback-provided Feedback has been provided and removed status: waiting-for-feedback We need additional information before we can continue labels Jul 14, 2021
@mp911de
Copy link
Member

mp911de commented Jul 15, 2021

I wasn't able to reproduce the issue with versions in the range of 1.2.x to 1.3.x. We had once a problem but that was fixed with #369. Right now the ticket isn't actionable. Can you provide a minimal reproducible sample? According to the stack trace, the failure happens before the database is queried so a sample doesn't need to include the database setup.

@mp911de mp911de added status: waiting-for-feedback We need additional information before we can continue and removed status: feedback-provided Feedback has been provided labels Jul 15, 2021
@jarpz
Copy link
Author

jarpz commented Jul 16, 2021

I wasn't able to reproduce the issue with versions in the range of 1.2.x to 1.3.x. We had once a problem but that was fixed with #369. Right now the ticket isn't actionable. Can you provide a minimal reproducible sample? According to the stack trace, the failure happens before the database is queried so a sample doesn't need to include the database setup.

That's the point. we can't reproduce in environments. we are getting this alert from "dynatrace" and we don't know if there is a false positive o there is something else.

We have just a controller and service where we invoke the repository. nothing else.

Regards

@mp911de
Copy link
Member

mp911de commented Jul 16, 2021

So basically nothing breaks is what you want to express? In that code path, we use indeed exceptions (see #619) for the control flow which isn't efficient at least to say. We plan to revisit this functionality across all of our store modules so I would close this ticket as duplicate of #619.

@mp911de mp911de closed this as completed Jul 16, 2021
@mp911de mp911de added status: duplicate A duplicate of another issue and removed status: waiting-for-feedback We need additional information before we can continue status: waiting-for-triage An issue we've not yet triaged labels Jul 16, 2021
@mp911de mp911de changed the title Blinker error MSSQL Server: No property is found for type Runtime tracing agent reports PropertyReferenceExceptionMessage Jul 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: duplicate A duplicate of another issue
Projects
None yet
Development

No branches or pull requests

3 participants