You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2023/04/18 19:01:00 UTC
[jira] [Resolved] (GROOVY-11019) joint compilation: public static final string does not compile
[ https://issues.apache.org/jira/browse/GROOVY-11019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles resolved GROOVY-11019.
----------------------------------
Resolution: Fixed
https://github.com/apache/groovy/commit/1df378cf833598d1c86f776a40c34faa98d6fabc
> joint compilation: public static final string does not compile
> ---------------------------------------------------------------
>
> Key: GROOVY-11019
> URL: https://issues.apache.org/jira/browse/GROOVY-11019
> Project: Groovy
> Issue Type: Bug
> Components: Stub generator / Joint compiler
> Affects Versions: 4.0.11
> Environment: OpenJDK Runtime Environment Temurin-11.0.16.1+1 (build 11.0.16.1+1)
> Reporter: Jason Garrett
> Assignee: Eric Milles
> Priority: Major
>
> I haven't managed to reproduce this in a simple example, but as I'm upgrading my application from groovy 3 to 4 I have run into this situation. I have a class that defines a public static final string like this:
> {code:java}
> class PublicStaticString {
> public static final String NONE = "None"
> }
> {code}
> Its java stub fails to compile with:
> {noformat}
> error: no suitable constructor found for String(Object)
> public static final java.lang.String NONE = new java.lang.String((java.lang.Object)null);{noformat}
>
> I can remove the "public" from the declaration and the class/stub will compile, but now any java class that references that field will fail to compile with:
> {noformat}
> error: NONE has private access in PublicStaticString
> selectNoneButton.setText(PublicStaticString.NONE);{noformat}
> The only way I know to fix this is to convert the java class to groovy.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)