Skip to content
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

refactor(kubernetes/test): replace deprecated NioGroovyMethods.append() with ResourceGroovyMethods.append() during upgrade to groovy 3.x #6054

Merged
merged 1 commit into from Sep 22, 2023

Conversation

j-sandy
Copy link
Contributor

@j-sandy j-sandy commented Sep 22, 2023

While upgrading to groovy 3.0.10 and spockframework 2.0-groovy-3.0, encountered the following error due to deprecation of NioGroovyMethods class:

No signature of method: sun.nio.fs.UnixPath.append() is applicable for argument types: (String) values: [some content]
Possible solutions: append(java.io.Writer, java.lang.String), append(java.io.Writer), append(java.lang.Object), append(java.io.Reader), append(java.io.Reader, java.lang.String), append(java.lang.Object, java.lang.String)
groovy.lang.MissingMethodException: No signature of method: sun.nio.fs.UnixPath.append() is applicable for argument types: (String) values: [some content]
Possible solutions: append(java.io.Writer, java.lang.String), append(java.io.Writer), append(java.lang.Object), append(java.io.Reader), append(java.io.Reader, java.lang.String), append(java.lang.Object, java.lang.String)
	at com.netflix.spinnaker.clouddriver.kubernetes.security.KubernetesNamedAccountCredentialsSpec.should equal 2 Kubernetes accounts with same kubeconfig content(KubernetesNamedAccountCredentialsSpec.groovy:61)
	Suppressed: java.lang.NullPointerException
		at java.base/java.nio.file.Files.provider(Files.java:100)
		at java.base/java.nio.file.Files.delete(Files.java:1141)
		at java_nio_file_Files$delete.call(Unknown Source)
		at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
		at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
		at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
		at com.netflix.spinnaker.clouddriver.kubernetes.security.KubernetesNamedAccountCredentialsSpec.$spock_feature_0_0(KubernetesNamedAccountCredentialsSpec.groovy:88)
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.base/java.lang.reflect.Method.invoke(Method.java:566)
		at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:198)
....
2 tests completed, 1 failed
> Task :clouddriver-kubernetes:test FAILED

To fix this issue replaced deprecated method with ResourceGroovyMethods.append() here

Test coverage of clouddriver-kubernetes module remain same before and after refactor (Tests executed 695).

…() with ResourceGroovyMethods.append() during upgrade to groovy 3.x

While upgrading to groovy 3.0.10 and spockframework 2.0-groovy-3.0, encountered the following error due to deprecation of [NioGroovyMethods](https://javadoc.io/static/org.codehaus.groovy/groovy-all/3.0.10/org/codehaus/groovy/runtime/NioGroovyMethods.html) class:
```
No signature of method: sun.nio.fs.UnixPath.append() is applicable for argument types: (String) values: [some content]
Possible solutions: append(java.io.Writer, java.lang.String), append(java.io.Writer), append(java.lang.Object), append(java.io.Reader), append(java.io.Reader, java.lang.String), append(java.lang.Object, java.lang.String)
groovy.lang.MissingMethodException: No signature of method: sun.nio.fs.UnixPath.append() is applicable for argument types: (String) values: [some content]
Possible solutions: append(java.io.Writer, java.lang.String), append(java.io.Writer), append(java.lang.Object), append(java.io.Reader), append(java.io.Reader, java.lang.String), append(java.lang.Object, java.lang.String)
	at com.netflix.spinnaker.clouddriver.kubernetes.security.KubernetesNamedAccountCredentialsSpec.should equal 2 Kubernetes accounts with same kubeconfig content(KubernetesNamedAccountCredentialsSpec.groovy:61)
	Suppressed: java.lang.NullPointerException
		at java.base/java.nio.file.Files.provider(Files.java:100)
		at java.base/java.nio.file.Files.delete(Files.java:1141)
		at java_nio_file_Files$delete.call(Unknown Source)
		at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
		at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
		at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
		at com.netflix.spinnaker.clouddriver.kubernetes.security.KubernetesNamedAccountCredentialsSpec.$spock_feature_0_0(KubernetesNamedAccountCredentialsSpec.groovy:88)
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.base/java.lang.reflect.Method.invoke(Method.java:566)
		at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:198)
....
2 tests completed, 1 failed
> Task :clouddriver-kubernetes:test FAILED
```
To fix this issue replaced deprecated method with ResourceGroovyMethods.append() [here](https://javadoc.io/static/org.codehaus.groovy/groovy-all/3.0.10/org/codehaus/groovy/runtime/ResourceGroovyMethods.html)

Test coverage of clouddriver-kubernetes module remain same before and after refactor (Tests executed 695).
@dbyron-sf dbyron-sf added the ready to merge Approved and ready for a merge label Sep 22, 2023
@mergify mergify bot added the auto merged Merged automatically by a bot label Sep 22, 2023
@mergify mergify bot merged commit c09d918 into spinnaker:master Sep 22, 2023
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto merged Merged automatically by a bot ready to merge Approved and ready for a merge target-release/1.33
Projects
None yet
3 participants