Skip to content

Commit 56aeddc

Browse files
authored
Merge pull request #1367 from grails/bugfix/1366
Update DefaultServiceRegistry servicesByInterface Map
2 parents 7eacc1b + e8ef560 commit 56aeddc

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/services/DefaultServiceRegistry.groovy

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,33 +27,33 @@ class DefaultServiceRegistry implements ServiceRegistry, Initializable {
2727
*/
2828
final Datastore datastore
2929

30-
protected final Map<Class,Service> servicesByInterface
30+
protected final Map<String,Service> servicesByInterface
3131
protected final Collection<Service> services = []
3232
private boolean initialized
3333

3434
DefaultServiceRegistry(Datastore datastore, boolean exceptionOnLoadError = true) {
3535
this.datastore = datastore
3636
Iterable<Service> services = loadServices()
37-
Map<Class,Service> serviceMap = [:]
37+
Map<String, Service> serviceMap = [:]
3838
Iterator<Service> serviceIterator = services.iterator()
3939
while(serviceIterator.hasNext()) {
4040
try {
4141
Service service = serviceIterator.next()
4242
this.services.add(service)
4343
Class[] allInterfaces = ClassUtils.getAllInterfaces(service)
4444
Class theClass = service.getClass()
45-
serviceMap.put(theClass, service)
45+
serviceMap.put(theClass.name, service)
4646
if( theClass.simpleName.startsWith('$') ) {
4747
// handle automatically implemented abstract service implementations
4848
Class superClass = theClass.getSuperclass()
4949
if(superClass != null && superClass != Object.class && Modifier.isAbstract(superClass.modifiers)) {
50-
serviceMap.put(superClass, service)
50+
serviceMap.put(superClass.name, service)
5151
}
5252

5353
}
5454
for(Class i in allInterfaces) {
5555
if(isValidInterface(i)) {
56-
serviceMap.put(i, service)
56+
serviceMap.put(i.name, service)
5757
}
5858
}
5959
} catch (Throwable e) {
@@ -76,7 +76,7 @@ class DefaultServiceRegistry implements ServiceRegistry, Initializable {
7676

7777
@Override
7878
def <T> T getService(Class<T> interfaceType) throws ServiceNotFoundException {
79-
Service s = servicesByInterface.get(interfaceType)
79+
final Service s = servicesByInterface.get(interfaceType.name)
8080
if(s == null) {
8181
throw new ServiceNotFoundException("No service found for type $interfaceType")
8282
}

0 commit comments

Comments
 (0)