[ 
https://issues.apache.org/jira/browse/GROOVY-9270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Milles updated GROOVY-9270:
--------------------------------
    Description: 
Using "instanceof boolean" or using a Trait will cause the compiled code to not 
work with OSGi/maven-bundle-plugin/bnd.

The "if ( val instanceof boolean)..." should cause a compiler error since 
"boolean" is not an object, and clearly not autoboxed here. This compiles fine 
and produced a .class file. maven-bundle-plugin or possibly Bnd used under the 
surface will however have nothing to do with this class since Groovy has 
produced some strange code. m-b-p/bnd complains about code in default package 
in this case. Making the "boolean" a "Boolean" makes the problem go away. But 
the first one is wrong, it should not compile, but cause an error. Groovy does 
not produce valid code for this case. 

Using a "trait" has exactly the same effect as described above. m-b-p/bnd 
complains about code in default package. If that is a side effect of using 
traits then traits cannot be used in an OSGi environment. This feels more of a 
less than optimal implementation of traits in groovy. I will not call this a 
bug :). 

The instanceof case however feels like a bug.

 

  was:
Using "instanceof boolean" or using a Trait will cause the compiled code to not 
work with OSGi/maven-bundle-plugin/bnd.

The "if ( val instanceof boolean)..." should cause a compiler error since 
"boolean" is not an object, and clearly not autoboxed here. This compiles fine 
and produced a .class file. maven-bundle-plugin or possibly Bnd used under the 
surface will however have nothing to do with this class since Groovy has 
produced some strange code. m-b-p/bnd complains about code in default package 
in this case. Making the "boolean" a "Boolean" makes the problem go away. But 
the first one is wrong, it should not compile, but cause an error. Groovy does 
not produce valid code for this case. 

Using a "trait" has exactly the same effect as described above. m-b-p/bnd 
complains about code in default package. If that is a side effect of using 
traits then traits cannot be used in an OSGi environment. This feels more of a 
less than optimal implementation of traits in groovy. I will not call this a 
bug :). 

The instanceof case however feels like a bug. 

I also HATE JIRA!! No this is not "Critical", but it is however not "Minor" 
either. In Jira you are either in hell or in heaven, earth does not exist ...

 


> Using "instanceof boolean" or using a Trait will cause the compiled code to 
> not work with  OSGi/maven-bundle-plugin/bnd
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: GROOVY-9270
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9270
>             Project: Groovy
>          Issue Type: Bug
>          Components: class generator, Compiler
>         Environment: OSX (Mojave) JDK 11.
>            Reporter: Tommy Svensson
>            Priority: Major
>
> Using "instanceof boolean" or using a Trait will cause the compiled code to 
> not work with OSGi/maven-bundle-plugin/bnd.
> The "if ( val instanceof boolean)..." should cause a compiler error since 
> "boolean" is not an object, and clearly not autoboxed here. This compiles 
> fine and produced a .class file. maven-bundle-plugin or possibly Bnd used 
> under the surface will however have nothing to do with this class since 
> Groovy has produced some strange code. m-b-p/bnd complains about code in 
> default package in this case. Making the "boolean" a "Boolean" makes the 
> problem go away. But the first one is wrong, it should not compile, but cause 
> an error. Groovy does not produce valid code for this case. 
> Using a "trait" has exactly the same effect as described above. m-b-p/bnd 
> complains about code in default package. If that is a side effect of using 
> traits then traits cannot be used in an OSGi environment. This feels more of 
> a less than optimal implementation of traits in groovy. I will not call this 
> a bug :). 
> The instanceof case however feels like a bug.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to