Skip to content

Generated proxy-config contains not array but objects from 21.3.0 #4067

@KengoTODA

Description

@KengoTODA

Describe the issue

GraalVM 21.2.0 generates the proxy-config as follows, same to the description in the official document:

[
  ["com.example.Printer","com.example.ExitCode"]
]

However, GraalVM 21.3.0 generates proxy-config in a different format introduced by #3774:

[
  {
    "interfaces":["com.example.Printer","com.example.ExitCode"]}

]

The new format is not described in the release note, the reference manual, nor the official medium post.

I wish we have some official references which explain the difference. :)

Steps to reproduce the issue

Simply run a jar file using dynamic proxy via native-image-agent.
I use a fork of SpotBugs like below:

// make sure GraalVM 21.3.0 is in the $JAVA_HOME in advance

$ git clone --branch graalvm [email protected]:KengoTODA/spotbugs.git // f1dcf2c6bcc8f1e173da5f25fc8b96df4fd7b531
$ cd spotbugs
$ ./gradlew assemble -x test
$ cd spotbugs/build/distributions
$ unzip spotbugs-4.5.1-SNAPSHOT.zip
$ export SPOTBUGS=spotbugs-4.5.1-SNAPSHOT/lib/spotbugs.jar
$ java -agentlib:native-image-agent -jar $SPOTBUGS -textui $SPOTBUGS

The procedure above will generate proxy-config.json like below:

[
  {
    "interfaces":["edu.umd.cs.findbugs.internalAnnotations.SlashedClassName"]}
  ,
  {
    "interfaces":["javax.annotation.Nonnull"]}
  
]

Describe GraalVM and your environment:

  • GraalVM version: CE 21.3.0
  • JDK major version: 11
  • OS: macOS 12.0.1 Monterey
  • Architecture: AMD64

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions