1
1
/*
2
- * Copyright 2021-2022 DiffPlug
2
+ * Copyright 2021-2023 DiffPlug
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
27
27
import org .gradle .api .file .DirectoryProperty ;
28
28
import org .gradle .api .model .ObjectFactory ;
29
29
import org .gradle .api .provider .Property ;
30
+ import org .gradle .api .provider .Provider ;
30
31
import org .gradle .api .services .BuildService ;
31
32
import org .gradle .api .services .BuildServiceParameters ;
32
33
import org .gradle .api .tasks .Internal ;
@@ -91,6 +92,16 @@ public void close() throws Exception {
91
92
92
93
static String INDEPENDENT_HELPER = "Helper" ;
93
94
95
+ static void usesServiceTolerateTestFailure (DefaultTask task , Provider <SpotlessTaskService > serviceProvider ) {
96
+ try {
97
+ task .usesService (serviceProvider );
98
+ } catch (ClassCastException e ) {
99
+ // this happens only in our test mocking, e.g. DiffMessageFormatterTest
100
+ // https://github.com/diffplug/spotless/pull/1570/commits/c45e1f2322c78f272689feb35753bbc633422bfa
101
+ // it's fine to swallow these exceptions
102
+ }
103
+ }
104
+
94
105
static abstract class ClientTask extends DefaultTask {
95
106
@ Internal
96
107
abstract Property <File > getSpotlessOutDirectory ();
@@ -105,7 +116,7 @@ static abstract class ClientTask extends DefaultTask {
105
116
protected abstract ObjectFactory getConfigCacheWorkaround ();
106
117
107
118
void init (SpotlessTaskImpl impl ) {
108
- usesService ( impl .getTaskServiceProvider ());
119
+ usesServiceTolerateTestFailure ( this , impl .getTaskServiceProvider ());
109
120
getSpotlessOutDirectory ().set (impl .getOutputDirectory ());
110
121
getTaskService ().set (impl .getTaskService ());
111
122
getProjectDir ().set (impl .getProjectDir ());
0 commit comments