Browse Source

DATAMONGO-2547 - Use target class ClassLoader instead of default CL when creating proxy instances.

Original pull request: #865.
pull/868/head
Christoph Strobl 6 years ago committed by Mark Paluch
parent
commit
af39b422b6
No known key found for this signature in database
GPG Key ID: 51A00FA751B91849
  1. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoDatabaseFactorySupport.java
  2. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/SimpleReactiveMongoDatabaseFactory.java
  3. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/DefaultDbRefResolver.java
  4. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/QueryUtils.java

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoDatabaseFactorySupport.java

@ -257,7 +257,7 @@ public abstract class MongoDatabaseFactorySupport<C> implements MongoDatabaseFac @@ -257,7 +257,7 @@ public abstract class MongoDatabaseFactorySupport<C> implements MongoDatabaseFac
factory.addAdvice(new SessionAwareMethodInterceptor<>(session, target, ClientSession.class, MongoDatabase.class,
this::proxyDatabase, MongoCollection.class, this::proxyCollection));
return targetType.cast(factory.getProxy());
return targetType.cast(factory.getProxy(target.getClass().getClassLoader()));
}
public ClientSession getSession() {

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/SimpleReactiveMongoDatabaseFactory.java

@ -271,7 +271,7 @@ public class SimpleReactiveMongoDatabaseFactory implements DisposableBean, React @@ -271,7 +271,7 @@ public class SimpleReactiveMongoDatabaseFactory implements DisposableBean, React
factory.addAdvice(new SessionAwareMethodInterceptor<>(session, target, ClientSession.class, MongoDatabase.class,
this::proxyDatabase, MongoCollection.class, this::proxyCollection));
return targetType.cast(factory.getProxy());
return targetType.cast(factory.getProxy(target.getClass().getClassLoader()));
}
public ClientSession getSession() {

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/DefaultDbRefResolver.java

@ -202,7 +202,7 @@ public class DefaultDbRefResolver implements DbRefResolver { @@ -202,7 +202,7 @@ public class DefaultDbRefResolver implements DbRefResolver {
proxyFactory.addInterface(propertyType);
proxyFactory.addAdvice(interceptor);
return handler.populateId(property, dbref, proxyFactory.getProxy());
return handler.populateId(property, dbref, proxyFactory.getProxy(LazyLoadingProxy.class.getClassLoader()));
}
/**

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/repository/query/QueryUtils.java

@ -61,7 +61,7 @@ class QueryUtils { @@ -61,7 +61,7 @@ class QueryUtils {
return combinedSort;
});
return (Query) factory.getProxy();
return (Query) factory.getProxy(query.getClass().getClassLoader());
}
/**

Loading…
Cancel
Save