Re: TeamCity back on track

2016-09-20 Thread Jochen Theodorou

On 21.09.2016 00:20, Cédric Champeau wrote:

I'm not able to answer the question why Gradle modifies the environment
(I'm sure it does for good reasons), but we need to make it work on
different platforms without having to publish a specific version for JDK
9. It's really unfortunate such a "feature" landed after the feature
freeze. Our commitment that Gradle 3 runs on JDK 9 isn't true anymore,
and it's hard to fix. Especially, the second exception you are seeing
comes from a 3rd party library. I'm pretty sure we will face tons of
those issues, especially in an environment where plugins are legion.


a workaround would be to use "--add-exports-private 
java.base/java.lang=ALL-UNNAMED" That should make the build work 
again... but of course it does not really solve the problem. And I 
actually do not think that switches like that are good for gradle, if 
that means I will run later my own programs with those switches enabled 
only from the build... because in the deployed state I will not have 
them set and then things break apart.


bye Jochen




Email with No Subject

2016-09-20 Thread Perumal, Karthikeyan
unsubscribe
This message contains information that may be privileged or confidential and is 
the property of the Capgemini Group. It is intended only for the person to whom 
it is addressed. If you are not the intended recipient, you are not authorized 
to read, print, retain, copy, disseminate, distribute, or use this message or 
any part thereof. If you receive this message in error, please notify the 
sender immediately and delete all copies of this message.


unsubscribe

2016-09-20 Thread Nikos Tsimboukakis
unsubscribe


Re: TeamCity back on track

2016-09-20 Thread Remi Forax
- Mail original -
> De: "Jochen Theodorou" 
> À: dev@groovy.apache.org
> Envoyé: Dimanche 18 Septembre 2016 21:14:51
> Objet: Re: TeamCity back on track

[...]

> 
> so setAccessible is forbidden, but a subclass from a different module
> can access the method... strange new rules. Anyway... was there a thread
> on jigsaw-dev about this? I would like to reread the proposal

http://mail.openjdk.java.net/pipermail/jpms-spec-experts/2016-September/000390.html

> 
>> For your specific bug, you can use ClassLoader.getDefinedPackages() or
>> classloader.getUnamedModule().getPackages() instead.
> 
> of course with the disadvantage that these are JDK9 only methods.

yes

> 
> bye Jochen

Rémi


Re: TeamCity back on track

2016-09-20 Thread Cédric Champeau
I'm not able to answer the question why Gradle modifies the environment
(I'm sure it does for good reasons), but we need to make it work on
different platforms without having to publish a specific version for JDK 9.
It's really unfortunate such a "feature" landed after the feature freeze.
Our commitment that Gradle 3 runs on JDK 9 isn't true anymore, and it's
hard to fix. Especially, the second exception you are seeing comes from a
3rd party library. I'm pretty sure we will face tons of those issues,
especially in an environment where plugins are legion.

2016-09-18 21:14 GMT+02:00 Jochen Theodorou :

> On 18.09.2016 15:03, Remi Forax wrote:
>
>>
>>
>> 
>>
>> *De: *"Cédric Champeau" 
>> *À: *dev@groovy.apache.org
>> *Envoyé: *Dimanche 18 Septembre 2016 14:39:30
>> *Objet: *Re: TeamCity back on track
>>
>> I can confirm this is a new error. Gradle 3.0 works with b119, but
>> not b136. And from what I can see, this is *not* going to be trivial
>> to fix. Best I could get now is:
>> Caused by: java.lang.IllegalAccessException: class
>> org.gradle.internal.reflect.JavaMethod cannot access a member of
>> class java.lang.ClassLoader (in module java.base) with modifiers
>> "protected"
>>  at
>> java.base/jdk.internal.reflect.Reflection.throwIllegalAccess
>> Exception(Reflection.java:405)
>>  at
>> java.base/jdk.internal.reflect.Reflection.throwIllegalAccess
>> Exception(Reflection.java:396)
>>  at
>> java.base/jdk.internal.reflect.Reflection.ensureMemberAccess
>> (Reflection.java:98)
>>  at
>> java.base/java.lang.reflect.AccessibleObject.slowCheckMember
>> Access(AccessibleObject.java:359)
>>  at
>> java.base/java.lang.reflect.AccessibleObject.checkAccess(Acc
>> essibleObject.java:351)
>>  at java.base/java.lang.reflect.Me
>> thod.invoke(Method.java:529)
>>  at
>> org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:77)
>>
>> Which is f* annoying.
>>
> [...]
>
>> This one is a new bug/feature,
>> it's part of what we have called 'stronger' (not strong) encapsulation
>> i.e. most of the classes of java.* disallow setAccessible, before that
>> only internal packages were disallowing setAccessible.
>>
>
> so setAccessible is forbidden, but a subclass from a different module can
> access the method... strange new rules. Anyway... was there a thread on
> jigsaw-dev about this? I would like to reread the proposal
>
> For your specific bug, you can use ClassLoader.getDefinedPackages() or
>> classloader.getUnamedModule().getPackages() instead.
>>
>
> of course with the disadvantage that these are JDK9 only methods.
>
> bye Jochen
>
>


dispatched can't find a method, offers the very same one?!?

2016-09-20 Thread o...@ocs.cz
Hello there,

does anybody understand how the following code:

===
package cz.ocs.model
class DatabaseContextDelegate extends ERXDatabaseContextDelegate {
NSDictionary databaseContextShouldUpdateCurrentSnapshot(EODatabaseContext 
dbCtxt, NSDictionary dic, NSDictionary dic2, EOGlobalID gid, EODatabaseChannel 
dbChannel) {
  for (def cl=dic.getClass();cl;cl=cl.getSuperclass()) println "DIC 
inheritance: $cl"
  for (def cl=gid.getClass();cl;cl=cl.getSuperclass()) println "GID 
inheritance: $cl"
  def 
nd=super.databaseContextShouldUpdateCurrentSnapshot(dbCtxt,dic,dic2,gid,dbChannel)
 // this is line 57
  ...
===

could yield the result of

===
DIC inheritance: class com.webobjects.eocontrol._EOMutableKnownKeyDictionary
DIC inheritance: class com.webobjects.foundation.NSMutableDictionary
DIC inheritance: class com.webobjects.foundation.NSDictionary
DIC inheritance: class java.lang.Object
GID inheritance: class com.webobjects.eocontrol._EOIntegralKeyGlobalID
GID inheritance: class com.webobjects.eocontrol.EOKeyGlobalID
GID inheritance: class com.webobjects.eocontrol.EOGlobalID
GID inheritance: class java.lang.Object

groovy.lang.MissingMethodException: No signature of method: 
cz.ocs.model.DatabaseContextDelegate.databaseContextShouldUpdateCurrentSnapshot()
 is applicable for argument types: (com.webobjects.eoaccess.EODatabaseContext, 
com.webobjects.eocontrol._EOMutableKnownKeyDictionary, 
com.webobjects.eocontrol._EOMutableKnownKeyDictionary, 
com.webobjects.eocontrol._EOIntegralKeyGlobalID, 
com.webobjects.eoaccess.EODatabaseChannel) values: 
[com.webobjects.eoaccess.EODatabaseContext@22680f52, 
[creator_id:, ...], ...]
Possible solutions: 
databaseContextShouldUpdateCurrentSnapshot(com.webobjects.eoaccess.EODatabaseContext,
 com.webobjects.foundation.NSDictionary, 
com.webobjects.foundation.NSDictionary, com.webobjects.eocontrol.EOGlobalID, 
com.webobjects.eoaccess.EODatabaseChannel)
at 
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58)
at 
org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:134)
at 
cz.ocs.model.DatabaseContextDelegate.databaseContextShouldUpdateCurrentSnapshot(DatabaseContextDelegate.groovy:57)
...
===

? I must say I am sort of outta ideas, for

(a) I can't see why no signature of 
“cz.ocs.model.DatabaseContextDelegate.databaseContextShouldUpdateCurrentSnapshot”
 -- it should be searched for in the superclass (“ERXDatabaseContextDelegate”), 
should it not?

(b) how on earth can it complain that the method does not exist and at the same 
moment as a possible solution offer it, with a proper signature (this is why I 
log out those inheritances to be sure)?

Thanks,
OC