Locale specific toLowerCase and toUpperCase breaks the build on turkish os


(Serkan Taş) #1

Locale specific toLowerCase and toUpperCase breaks the build on turkish os. I found that the option “QUIET” for the javadoc is the center of problem. I found exact code piece by debugging the source of gradle. It should be fixed by explicit locale definition. I may fix it but need some help for contribution.

Explanation for same bug of previous java versions on some other systems : http://mattryall.net/blog/2009/02/the-infamous-turkish-locale-bug

This bug is related with Gobblin build terminates due to gradle bug : Execution failed for task ':gobblin-api:javadoc'


(Sterling Greene) #2

Thanks, I think it’s happening here:

As a workaround, you could try setting user.country=US and user.language=en for the daemon See here how to set jvmargs or GRADLE_OPTS.

I suspect there are some other toLowerCase problems. Does --console=plain and --console=PLAIN work for you too (without changing user.country/user.language)?


(Serkan Taş) #3

Thanks Sterling, exactly, this is the place where the code fails. Let me answer your questions an the case results

  1. Setting jvmargs for gradle works as a workaround.
  2. capital version of plain outuput for console fails but i think does not have any relation with jvmargs

Result :
gradle --console=PLAIN clean javadoc
Unrecognized value ‘PLAIN’ for console.

I tried to set jvmargs for gradlew(wrapper). Because i need to solve the issue for gobblin that is on wrapper.
Can you offer a workaround for wrapper also ?


(Sterling Greene) #4

Thanks. I raised https://issues.gradle.org/browse/GRADLE-3470 and pushed a fix for the next release (after 2.14).

To workaround, in gradlew, you can add -Duser.language=en in DEFAULT_JVM_OPTS.


(Serkan Taş) #5

Let me define the cases for wrapper:

case 1:

a. the line in gradlew.bat : set DEFAULT_JVM_OPTS=-Duser.country=US -Duser.language=en
b. the line in gradle.properties : org.gradle.daemon=false

command : gradlew clean javadoc and the result is OK !!

case 2:

a. the line in gradlew.bat : set DEFAULT_JVM_OPTS=-Duser.country=US -Duser.language=en
b. the line in gradle.properties : org.gradle.daemon=true

command : gradlew clean javadoc and the result is javadoc: error - invalid flag: -qu?et FAILED !!

it does not make any sense to add the line org.gradle.jvmargs=-Duser.country=US -Duser.language=en for the case 2

I will follow the case 1 and i can build gobblin for now. Thank you very much for your effort. I am going to look after for the fix.

If you have any other advices for the case2, please let me know.

UPDATE : java.util.MissingResourceException: Can’t find resource for bundle com.sun.tools
.doclets.internal.toolkit.resources.doclets, key doclet.²nterface

Fixed using :
subprojects {
tasks.withType(Javadoc).all { enabled = false }
}