jclouds
  1. jclouds
  2. JCLOUDS-427

Upgrading JDK from 1.7.0_45 to 1.7.0_51 causes problems when searching for interface implementations

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.6.3, 1.7.0
    • Fix Version/s: 1.7.1, 1.8.0
    • Component/s: jclouds-core
    • Labels:
      None

      Description

      Upgrading JDK from 1.7.0_45 to 1.7.0_51 causes problems when searching for interface implementations

      Running 'mvn test' results in test failures similar to this;

      Caused by: com.google.inject.CreationException: Guice creation errors:
      
      1) org.jclouds.rest.config.SyncToAsyncHttpApiProvider<org.jclouds.rest.HttpClient, A> cannot be used as a key; It is not fully specified.
      
      2) org.jclouds.rest.config.SyncToAsyncHttpApiProvider<org.jclouds.http.IntegrationTestClient, A> cannot be used as a key; It is not fully specified.
      
      3) org.jclouds.rest.RestContext<org.jclouds.http.IntegrationTestClient, A> cannot be used as a key; It is not fully specified.
      
      4) No implementation for org.jclouds.rest.HttpClient was bound.
        at org.jclouds.rest.config.BinderUtils.bindHttpApiProvider(BinderUtils.java:106)
      
      5) No implementation for org.jclouds.http.IntegrationTestClient was bound.
        at org.jclouds.rest.config.BinderUtils.bindHttpApiProvider(BinderUtils.java:106)
      

      I've tested using OpenJDK on Centos 6.4 and Oracle JDK on OS X 10.9 with the same results.

      1. JCLOUDS-427.patch
        9 kB
        Andrew Phillips
      2. JCLOUDS-427-1.6.x.patch
        9 kB
        Andrew Phillips

        Issue Links

          Activity

          graham o'regan created issue -
          Hide
          Andrew Bayer added a comment -
          Show
          Andrew Bayer added a comment - For confirmation, see https://jclouds.ci.cloudbees.com/job/jclouds-java-7u51/1/console
          Hide
          John Kew added a comment -

          We discovered this yesterday in our staging environment after our jdk upgrade; so it is not just a test regression.

          Show
          John Kew added a comment - We discovered this yesterday in our staging environment after our jdk upgrade; so it is not just a test regression.
          Hide
          graham o'regan added a comment -

          Sure, I should have been clear, this isn't an issue with the test cases

          Show
          graham o'regan added a comment - Sure, I should have been clear, this isn't an issue with the test cases
          Hide
          Andrew Phillips added a comment -

          FYI: The jclouds Java 7 CI builds on DEV@cloud are running against 1.7.0_25:

          Java version: 1.7.0_25, vendor: Oracle Corporation
          Java home: /opt/java/sdk/Sun/x86_64/jdk1.7.0_25/jre

          Show
          Andrew Phillips added a comment - FYI: The jclouds Java 7 CI builds on DEV@cloud are running against 1.7.0_25: Java version: 1.7.0_25, vendor: Oracle Corporation Java home: /opt/java/sdk/Sun/x86_64/jdk1.7.0_25/jre
          Hide
          Andrew Phillips added a comment -

          Hm...nothing in the release notes that would seem immediately related to this?

          http://www.oracle.com/technetwork/java/javase/7u51-relnotes-2085002.html

          Show
          Andrew Phillips added a comment - Hm...nothing in the release notes that would seem immediately related to this? http://www.oracle.com/technetwork/java/javase/7u51-relnotes-2085002.html
          Hide
          Andrew Phillips added a comment -

          Added a branch to try to get some more debugging info on what exactly is going on here:

          https://git-wip-us.apache.org/repos/asf?p=jclouds.git;a=shortlog;h=refs/heads/JCLOUDS-427

          Show
          Andrew Phillips added a comment - Added a branch to try to get some more debugging info on what exactly is going on here: https://git-wip-us.apache.org/repos/asf?p=jclouds.git;a=shortlog;h=refs/heads/JCLOUDS-427
          Hide
          Andrew Phillips added a comment -

          OK, this is interesting now...here's the error message:

          ttrying to bind 'org.jclouds.rest.config.SyncToAsyncHttpApiProvider<org.jclouds.rest.HttpClient, A>' to 'interface org.jclouds.rest.HttpClient'. Input async class: 'interface org.jclouds.rest.HttpAsyncClient'

          So somehow the .where(new TypeParameter<A>() {}, async) part in

          new TypeToken<SyncToAsyncHttpApiProvider<S, A>>() {
                }.where(new TypeParameter<S>() {
                }, sync).where(new TypeParameter<A>() {
                }, async);
          

          (https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/rest/config/BinderUtils.java#L101) is not getting A bound to HttpAsyncClient..?

          Show
          Andrew Phillips added a comment - OK, this is interesting now...here's the error message: ttrying to bind 'org.jclouds.rest.config.SyncToAsyncHttpApiProvider<org.jclouds.rest.HttpClient, A>' to 'interface org.jclouds.rest.HttpClient'. Input async class: 'interface org.jclouds.rest.HttpAsyncClient' So somehow the .where(new TypeParameter<A>() {}, async) part in new TypeToken<SyncToAsyncHttpApiProvider<S, A>>() { }.where( new TypeParameter<S>() { }, sync).where( new TypeParameter<A>() { }, async); ( https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/rest/config/BinderUtils.java#L101 ) is not getting A bound to HttpAsyncClient..?
          Hide
          Andrew Phillips added a comment -

          OK, the second where just isn't working:

          **** token now (step 1): org.jclouds.rest.config.SyncToAsyncHttpApiProvider<S, A>
          **** token now (after A): org.jclouds.rest.config.SyncToAsyncHttpApiProvider<S, org.jclouds.rest.HttpAsyncClient>
          **** token now (after S): org.jclouds.rest.config.SyncToAsyncHttpApiProvider<S, org.jclouds.rest.HttpAsyncClient>
          
          Show
          Andrew Phillips added a comment - OK, the second where just isn't working: **** token now (step 1): org.jclouds. rest .config.SyncToAsyncHttpApiProvider<S, A> **** token now (after A): org.jclouds. rest .config.SyncToAsyncHttpApiProvider<S, org.jclouds. rest .HttpAsyncClient> **** token now (after S): org.jclouds. rest .config.SyncToAsyncHttpApiProvider<S, org.jclouds. rest .HttpAsyncClient>
          Hide
          Andrew Phillips added a comment -

          OK, Guava 15.0 bug. This:

             public static <K, V> TypeToken<Map<K, V>> mapOf(
                 TypeToken<K> keyType, TypeToken<V> valueType) {
               return new TypeToken<Map<K, V>>() {}
                   .where(new TypeParameter<K>() {}, keyType)
                   .where(new TypeParameter<V>() {}, valueType);
             }
          

          (the 'where' code example in the Guava Javadoc) fails:

          Printing Guava sample for 'where': java.util.Map<java.lang.String, V>
          
          Show
          Andrew Phillips added a comment - OK, Guava 15.0 bug. This: public static <K, V> TypeToken<Map<K, V>> mapOf( TypeToken<K> keyType, TypeToken<V> valueType) { return new TypeToken<Map<K, V>>() {} .where( new TypeParameter<K>() {}, keyType) .where( new TypeParameter<V>() {}, valueType); } (the 'where' code example in the Guava Javadoc) fails: Printing Guava sample for 'where': java.util.Map<java.lang. String , V>
          Show
          Andrew Bayer added a comment - Looks to be: https://code.google.com/p/guava-libraries/issues/detail?id=1635
          Hide
          Andrew Phillips added a comment -

          Same problem with Guava 16.0-rc1. Opened an issue against Guava:

          https://code.google.com/p/guava-libraries/issues/detail?id=1637

          Please vote there!

          Show
          Andrew Phillips added a comment - Same problem with Guava 16.0-rc1. Opened an issue against Guava: https://code.google.com/p/guava-libraries/issues/detail?id=1637 Please vote there!
          Hide
          Andrew Phillips added a comment -
          Show
          Andrew Phillips added a comment - Guava issue closed as a duplicate of: https://code.google.com/p/guava-libraries/issues/detail?id=1635
          Hide
          Mike Peachey added a comment -

          Surely:
          Critical
          Crashes, loss of data, severe memory leak.
          ?

          Completely unable to use jclouds-dependant app under JDK-7u51 - no workaround but to downgrade Java - not always possible in shared environments and under enforced security policies.

          Show
          Mike Peachey added a comment - Surely: Critical Crashes, loss of data, severe memory leak. ? Completely unable to use jclouds-dependant app under JDK-7u51 - no workaround but to downgrade Java - not always possible in shared environments and under enforced security policies.
          Everett Toews made changes -
          Field Original Value New Value
          Priority Major [ 3 ] Critical [ 2 ]
          Hide
          Ignasi Barrera added a comment -

          Just to add a note, this issue only affects the providers using the old RestClientModule [1]. Providers that no longer provide the Async interface (and use the HttpApiModule) are not affected.

          [1] https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/rest/config/RestClientModule.java

          Show
          Ignasi Barrera added a comment - Just to add a note, this issue only affects the providers using the old RestClientModule [1] . Providers that no longer provide the Async interface (and use the HttpApiModule) are not affected. [1] https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/rest/config/RestClientModule.java
          Hide
          Ignasi Barrera added a comment -

          Extending a bit more my previous comment, there is the list of affected providers:

          In 1.6.x: All providers are affected
          In 1.7.x the following providers use the RestClientModule and are affected by the issue:

          APIS

          • atmos
          • openstack-nova
          • cloudsigma
          • s3
          • cloudservers
          • swift
          • keystone
          • sts
          • rackspace-cloudidentity
          • cloudfiles

          PROVIDERS

          • aws-s3
          • rackspace-cloudservers-uk
          • rackspace-cloudservers-us
          • azureblob
          • hpcloud-objectstorage

          LABS

          • savvis-symphonyvpdc
          • cloudstack-ec2
          • carrenza-vcloud-director
          • joyent-cloudapi
          • cdmi
          • vcloud-director
          • azure-management
          • jenkins
          • greenqcloud-compute
          • opsource-servers
          Show
          Ignasi Barrera added a comment - Extending a bit more my previous comment, there is the list of affected providers: In 1.6.x : All providers are affected In 1.7.x the following providers use the RestClientModule and are affected by the issue: APIS atmos openstack-nova cloudsigma s3 cloudservers swift keystone sts rackspace-cloudidentity cloudfiles PROVIDERS aws-s3 rackspace-cloudservers-uk rackspace-cloudservers-us azureblob hpcloud-objectstorage LABS savvis-symphonyvpdc cloudstack-ec2 carrenza-vcloud-director joyent-cloudapi cdmi vcloud-director azure-management jenkins greenqcloud-compute opsource-servers
          Andrew Phillips made changes -
          Assignee Andrew Phillips [ andrewp ]
          Andrew Phillips made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Hide
          Andrew Phillips added a comment -
          Show
          Andrew Phillips added a comment - Making some progress at https://git-wip-us.apache.org/repos/asf?p=jclouds.git;a=shortlog;h=refs/heads/JCLOUDS-427 . It's not pretty, though
          Hide
          Andrew Phillips added a comment -

          Down to 1 test failure in core, and potentially more in the rest of the codebase:

          https://jclouds.ci.cloudbees.com/view/Java%207/job/jclouds-java-7u51/14/

          I'm guessing the type parameter replacement in https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/internal/BaseView.java#L73 is also failing somehow..?

          Show
          Andrew Phillips added a comment - Down to 1 test failure in core, and potentially more in the rest of the codebase: https://jclouds.ci.cloudbees.com/view/Java%207/job/jclouds-java-7u51/14/ I'm guessing the type parameter replacement in https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/internal/BaseView.java#L73 is also failing somehow..?
          Hide
          Andrew Phillips added a comment -

          > I'm guessing the type parameter replacement in ... is also failing somehow..?

          Yup: https://jclouds.ci.cloudbees.com/view/Java%207/job/jclouds-java-7u51/org.apache.jclouds$jclouds-core/16/testReport/junit/org.jclouds.internal/BaseViewTest/testUnwrapApi/

          OK, done for the day. Managed to get past this one (no more test failures in core), but still problems with the build:

          https://github.com/jclouds/jclouds/pull/261

          I hope someone will be able to take this further!

          Show
          Andrew Phillips added a comment - > I'm guessing the type parameter replacement in ... is also failing somehow..? Yup: https://jclouds.ci.cloudbees.com/view/Java%207/job/jclouds-java-7u51/org.apache.jclouds$jclouds-core/16/testReport/junit/org.jclouds.internal/BaseViewTest/testUnwrapApi/ OK, done for the day. Managed to get past this one (no more test failures in core), but still problems with the build: https://github.com/jclouds/jclouds/pull/261 I hope someone will be able to take this further!
          Andrew Phillips made changes -
          Status In Progress [ 3 ] Open [ 1 ]
          Andrew Phillips made changes -
          Assignee Andrew Phillips [ andrewp ]
          Andrew Phillips made changes -
          Assignee Andrew Phillips [ andrewp ]
          Andrew Phillips made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Hide
          Andrew Phillips added a comment - - edited

          PR build successful! Now just for some code review...

          https://jclouds.ci.cloudbees.com/job/jclouds-pull-requests/523/

          Show
          Andrew Phillips added a comment - - edited PR build successful! Now just for some code review... https://jclouds.ci.cloudbees.com/job/jclouds-pull-requests/523/
          Hide
          ASF subversion and git services added a comment -

          Commit 0c09d44b359c7d228794c51d1c78fbfc5e472aef in branch refs/heads/JCLOUDS-427 from Andrew Phillips
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=0c09d44 ]

          JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51

          • Adding a version of TypeToken.where that replaces two parameters in one go
          • Avoiding TypeToken type parameter replacement with wildcard bounds

          Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635

          Show
          ASF subversion and git services added a comment - Commit 0c09d44b359c7d228794c51d1c78fbfc5e472aef in branch refs/heads/ JCLOUDS-427 from Andrew Phillips [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=0c09d44 ] JCLOUDS-427 : Avoiding Guava reflection code broken in Java 7u51 Adding a version of TypeToken.where that replaces two parameters in one go Avoiding TypeToken type parameter replacement with wildcard bounds Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635
          Hide
          Andrew Phillips added a comment - - edited

          Squashed commit is: https://git-wip-us.apache.org/repos/asf?p=jclouds.git;a=commit;h=0c09d44b359c7d228794c51d1c78fbfc5e472aef

          I'm not sure why the JIRA-Git integration doesn't seem to be working any more..?

          Edited: ah, there it is

          Show
          Andrew Phillips added a comment - - edited Squashed commit is: https://git-wip-us.apache.org/repos/asf?p=jclouds.git;a=commit;h=0c09d44b359c7d228794c51d1c78fbfc5e472aef I'm not sure why the JIRA-Git integration doesn't seem to be working any more..? Edited: ah, there it is
          Andrew Phillips made changes -
          Attachment JCLOUDS-427.patch [ 12624935 ]
          Andrew Phillips made changes -
          Status In Progress [ 3 ] Open [ 1 ]
          Andrew Phillips made changes -
          Assignee Andrew Phillips [ andrewp ]
          Hide
          ASF subversion and git services added a comment -

          Commit 7b4d98f3cb75c0c8d199e7908bee79ee42dcb85c in branch refs/heads/JCLOUDS-427-1.7.x from Andrew Phillips
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=7b4d98f ]

          JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51

          • Adding a version of TypeToken.where that replaces two parameters in one go
          • Avoiding TypeToken type parameter replacement with wildcard bounds

          Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635

          Show
          ASF subversion and git services added a comment - Commit 7b4d98f3cb75c0c8d199e7908bee79ee42dcb85c in branch refs/heads/ JCLOUDS-427 -1.7.x from Andrew Phillips [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=7b4d98f ] JCLOUDS-427 : Avoiding Guava reflection code broken in Java 7u51 Adding a version of TypeToken.where that replaces two parameters in one go Avoiding TypeToken type parameter replacement with wildcard bounds Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635
          Andrew Phillips made changes -
          Attachment JCLOUDS-427.patch [ 12624935 ]
          Andrew Phillips made changes -
          Attachment JCLOUDS-427.patch [ 12624990 ]
          Andrew Phillips made changes -
          Assignee Andrew Phillips [ andrewp ]
          Hide
          ASF subversion and git services added a comment -

          Commit 8ff60020f85ae5d9f57e9a25a6342fb7b00e1d2a in branch refs/heads/master from Andrew Phillips
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=8ff6002 ]

          JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51

          • Adding a version of TypeToken.where that replaces two parameters in one go
          • Avoiding TypeToken type parameter replacement with wildcard bounds

          Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635

          Show
          ASF subversion and git services added a comment - Commit 8ff60020f85ae5d9f57e9a25a6342fb7b00e1d2a in branch refs/heads/master from Andrew Phillips [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=8ff6002 ] JCLOUDS-427 : Avoiding Guava reflection code broken in Java 7u51 Adding a version of TypeToken.where that replaces two parameters in one go Avoiding TypeToken type parameter replacement with wildcard bounds Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635
          Andrew Phillips made changes -
          Fix Version/s 1.8.0 [ 12325587 ]
          Hide
          ASF subversion and git services added a comment -

          Commit 597615977e7e2b10f3680aae24e541a76a1d4606 in branch refs/heads/1.7.x from Andrew Phillips
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=5976159 ]

          JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51

          • Adding a version of TypeToken.where that replaces two parameters in one go
          • Avoiding TypeToken type parameter replacement with wildcard bounds

          Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635

          Show
          ASF subversion and git services added a comment - Commit 597615977e7e2b10f3680aae24e541a76a1d4606 in branch refs/heads/1.7.x from Andrew Phillips [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=5976159 ] JCLOUDS-427 : Avoiding Guava reflection code broken in Java 7u51 Adding a version of TypeToken.where that replaces two parameters in one go Avoiding TypeToken type parameter replacement with wildcard bounds Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635
          Andrew Phillips made changes -
          Fix Version/s 1.7.1 [ 12325588 ]
          Hide
          ASF subversion and git services added a comment -

          Commit d3849e2ff7be939ea92e5f07cd6adb1ce1442ce9 in branch refs/heads/JCLOUDS-427-1.6.x from Andrew Phillips
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=d3849e2 ]

          JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51

          • Adding a version of TypeToken.where that replaces two parameters in one go
          • Avoiding TypeToken type parameter replacement with wildcard bounds

          Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635

          Show
          ASF subversion and git services added a comment - Commit d3849e2ff7be939ea92e5f07cd6adb1ce1442ce9 in branch refs/heads/ JCLOUDS-427 -1.6.x from Andrew Phillips [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=d3849e2 ] JCLOUDS-427 : Avoiding Guava reflection code broken in Java 7u51 Adding a version of TypeToken.where that replaces two parameters in one go Avoiding TypeToken type parameter replacement with wildcard bounds Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635
          Hide
          ASF subversion and git services added a comment -

          Commit 17c11f2b2db18dc4bcaf6c2b94bbd434810011e7 in branch refs/heads/JCLOUDS-427-1.6.x from Andrew Phillips
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=17c11f2 ]

          JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51

          • Adding a version of TypeToken.where that replaces two parameters in one go
          • Avoiding TypeToken type parameter replacement with wildcard bounds

          Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635

          Show
          ASF subversion and git services added a comment - Commit 17c11f2b2db18dc4bcaf6c2b94bbd434810011e7 in branch refs/heads/ JCLOUDS-427 -1.6.x from Andrew Phillips [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=17c11f2 ] JCLOUDS-427 : Avoiding Guava reflection code broken in Java 7u51 Adding a version of TypeToken.where that replaces two parameters in one go Avoiding TypeToken type parameter replacement with wildcard bounds Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635
          Hide
          Andrew Phillips added a comment -

          Notified the user list about this one: http://apache.markmail.org/thread/637ayb6d6uz36bam

          Show
          Andrew Phillips added a comment - Notified the user list about this one: http://apache.markmail.org/thread/637ayb6d6uz36bam
          Hide
          Andrew Phillips added a comment -

          PR for 1.6.x: https://github.com/jclouds/jclouds/pull/263

          Note that this requires an upgrade of Guava to 15.0, so still want to discuss if this is feasible...

          Show
          Andrew Phillips added a comment - PR for 1.6.x: https://github.com/jclouds/jclouds/pull/263 Note that this requires an upgrade of Guava to 15.0, so still want to discuss if this is feasible...
          Hide
          Andrew Phillips added a comment -

          Comment from Andrew Gaul on IRC:

          [13:09] <apwashere_demobo> gaul: very quickly? Any urgent objections to upgrading 1.6.x to Guava 15.0 to get the backport for the 7u51 issue to work?
          [13:10] <gaul> apwashere_demobo: we should not upgrade guava in micro releases based on feedback from users on this issue previously

          Show
          Andrew Phillips added a comment - Comment from Andrew Gaul on IRC: [13:09] <apwashere_demobo> gaul: very quickly? Any urgent objections to upgrading 1.6.x to Guava 15.0 to get the backport for the 7u51 issue to work? [13:10] <gaul> apwashere_demobo: we should not upgrade guava in micro releases based on feedback from users on this issue previously
          Hide
          Andrew Phillips added a comment -

          graham o'regan: Would a fix for 1.7.x be sufficient for you? Or are you (also) using 1.6.x?

          Show
          Andrew Phillips added a comment - graham o'regan : Would a fix for 1.7.x be sufficient for you? Or are you (also) using 1.6.x?
          Hide
          ASF subversion and git services added a comment -

          Commit 478e44c5ab30421cae1a40e9c375d254bd92b207 in branch refs/heads/JCLOUDS-427-1.6.x from Andrew Phillips
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=478e44c ]

          JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51

          Backport of 8ff60020f

          • Adding a version of TypeToken.where that replaces two parameters in one go
          • Avoiding TypeToken type parameter replacement with wildcard bounds

          Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635

          All reflection magic now

          Show
          ASF subversion and git services added a comment - Commit 478e44c5ab30421cae1a40e9c375d254bd92b207 in branch refs/heads/ JCLOUDS-427 -1.6.x from Andrew Phillips [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=478e44c ] JCLOUDS-427 : Avoiding Guava reflection code broken in Java 7u51 Backport of 8ff60020f Adding a version of TypeToken.where that replaces two parameters in one go Avoiding TypeToken type parameter replacement with wildcard bounds Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635 All reflection magic now
          Andrew Phillips made changes -
          Attachment JCLOUDS-427-1.6.x.patch [ 12625199 ]
          Hide
          Thomas GL added a comment -

          Just FYI, updating to 1.6.4-SNAPSHOT built from the JCLOUDS-427-1.6.x branch (with guava 14.0.1) seems to perfectly fix the 7u51 incompatibility in our application. Looking forward to seeing it in an official release.
          Thanks for the good work.

          Show
          Thomas GL added a comment - Just FYI, updating to 1.6.4-SNAPSHOT built from the JCLOUDS-427 -1.6.x branch (with guava 14.0.1) seems to perfectly fix the 7u51 incompatibility in our application. Looking forward to seeing it in an official release. Thanks for the good work.
          Hide
          Andrew Phillips added a comment -

          > updating to 1.6.4-SNAPSHOT built from the JCLOUDS-427-1.6.x branc

          Thanks for confirming that, Thomas GL. We're planning to merge that into the 1.6.x branch soon.

          Show
          Andrew Phillips added a comment - > updating to 1.6.4-SNAPSHOT built from the JCLOUDS-427 -1.6.x branc Thanks for confirming that, Thomas GL . We're planning to merge that into the 1.6.x branch soon.
          Hide
          Andrew Gaul added a comment -

          Andrew Phillips This workaround looks good to me; thanks for fixing this! You already committed this to master and 1.7.x and we should backport to 1.6.x. Can you comment on the upstream Guava bug explaining your workaround?

          Show
          Andrew Gaul added a comment - Andrew Phillips This workaround looks good to me; thanks for fixing this! You already committed this to master and 1.7.x and we should backport to 1.6.x. Can you comment on the upstream Guava bug explaining your workaround?
          Andrew Phillips made changes -
          Attachment JCLOUDS-427-1.6.x.patch [ 12625199 ]
          Andrew Phillips made changes -
          Attachment JCLOUDS-427-1.6.x.patch [ 12625407 ]
          Andrew Phillips made changes -
          Attachment JCLOUDS-427-1.6.x.patch [ 12625407 ]
          Andrew Phillips made changes -
          Attachment JCLOUDS-427-1.6.x.patch [ 12625408 ]
          Hide
          ASF subversion and git services added a comment -

          Commit 1b2fb3e10f1863ac64a471718bc072a4792eda7e in branch refs/heads/1.6.x from Andrew Phillips
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=1b2fb3e ]

          JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51

          Backport of 8ff60020f

          • Adding a version of TypeToken.where that replaces two parameters in one go
          • Avoiding TypeToken type parameter replacement with wildcard bounds

          Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635

          All reflection magic now

          Show
          ASF subversion and git services added a comment - Commit 1b2fb3e10f1863ac64a471718bc072a4792eda7e in branch refs/heads/1.6.x from Andrew Phillips [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=1b2fb3e ] JCLOUDS-427 : Avoiding Guava reflection code broken in Java 7u51 Backport of 8ff60020f Adding a version of TypeToken.where that replaces two parameters in one go Avoiding TypeToken type parameter replacement with wildcard bounds Works around https://code.google.com/p/guava-libraries/issues/detail?id=1635 All reflection magic now
          Andrew Phillips made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Fix Version/s 1.6.4 [ 12325590 ]
          Resolution Fixed [ 1 ]
          Hide
          Artem Kozlov added a comment -

          Do you have any ETA for 1.7.1 release? This bug is really blocker and it would be great to have this fix released.

          Show
          Artem Kozlov added a comment - Do you have any ETA for 1.7.1 release? This bug is really blocker and it would be great to have this fix released.
          Hide
          Andrew Phillips added a comment -

          Artem Kozlov: The current plan is to give the Guava team a bit more time to see if they can fix the issue, because what we have implemented here is really a workaround. See http://markmail.org/message/637ayb6d6uz36bam

          I take it you are unable to use a recent snapshot version?

          Show
          Andrew Phillips added a comment - Artem Kozlov : The current plan is to give the Guava team a bit more time to see if they can fix the issue, because what we have implemented here is really a workaround. See http://markmail.org/message/637ayb6d6uz36bam I take it you are unable to use a recent snapshot version?
          Hide
          Andrew Phillips added a comment -

          Fixed in Guava: https://code.google.com/p/guava-libraries/issues/detail?id=1635#c40

          Yay! Patch release for Guava coming up, it seems...

          Show
          Andrew Phillips added a comment - Fixed in Guava: https://code.google.com/p/guava-libraries/issues/detail?id=1635#c40 Yay! Patch release for Guava coming up, it seems...
          Christian Müller made changes -
          Link This issue is depended upon by CAMEL-7171 [ CAMEL-7171 ]
          Hide
          ASF subversion and git services added a comment -

          Commit e5576fce4e2bc7dd55ff1128867245d51d707835 in branch refs/heads/revert-guava-fix from Andrew Phillips
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=e5576fc ]

          Upgrading Guava 16.0 -> 16.0.1

          Fixes Guava issue 1635. See JCLOUDS-427

          Show
          ASF subversion and git services added a comment - Commit e5576fce4e2bc7dd55ff1128867245d51d707835 in branch refs/heads/revert-guava-fix from Andrew Phillips [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=e5576fc ] Upgrading Guava 16.0 -> 16.0.1 Fixes Guava issue 1635. See JCLOUDS-427
          Hide
          ASF subversion and git services added a comment -

          Commit 9f935146dcbc52cd4f10328dbf81f499c552493e in branch refs/heads/revert-guava-fix from Andrew Phillips
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=9f93514 ]

          Revert "JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51"

          This reverts commit 8ff60020f85ae5d9f57e9a25a6342fb7b00e1d2a.

          Show
          ASF subversion and git services added a comment - Commit 9f935146dcbc52cd4f10328dbf81f499c552493e in branch refs/heads/revert-guava-fix from Andrew Phillips [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=9f93514 ] Revert " JCLOUDS-427 : Avoiding Guava reflection code broken in Java 7u51" This reverts commit 8ff60020f85ae5d9f57e9a25a6342fb7b00e1d2a.
          Hide
          Andrew Phillips added a comment -

          For those following this issue: we're looking to get a 1.7.1 release that fixes this out in the next few days.

          Show
          Andrew Phillips added a comment - For those following this issue: we're looking to get a 1.7.1 release that fixes this out in the next few days.
          Hide
          ASF subversion and git services added a comment -

          Commit 02615adc4f45799d07f61727167b65c87458f573 in branch refs/heads/master from Andrew Phillips
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=02615ad ]

          JCLOUDS-427: Upgrading Guava 16.0 -> 16.0.1

          Fixes Guava issue 1635.

          Show
          ASF subversion and git services added a comment - Commit 02615adc4f45799d07f61727167b65c87458f573 in branch refs/heads/master from Andrew Phillips [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=02615ad ] JCLOUDS-427 : Upgrading Guava 16.0 -> 16.0.1 Fixes Guava issue 1635.
          Hide
          ASF subversion and git services added a comment -

          Commit 4c07702d29de64df45c11819c2cc9d725382b0c2 in branch refs/heads/master from Andrew Phillips
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=4c07702 ]

          JCLOUDS-432: Revert "JCLOUDS-427: Avoiding Guava reflection code broken in Java 7u51"

          This reverts commit 8ff60020f85ae5d9f57e9a25a6342fb7b00e1d2a.

          Show
          ASF subversion and git services added a comment - Commit 4c07702d29de64df45c11819c2cc9d725382b0c2 in branch refs/heads/master from Andrew Phillips [ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=4c07702 ] JCLOUDS-432 : Revert " JCLOUDS-427 : Avoiding Guava reflection code broken in Java 7u51" This reverts commit 8ff60020f85ae5d9f57e9a25a6342fb7b00e1d2a.
          Hide
          Andrew Phillips added a comment -
          Show
          Andrew Phillips added a comment - 1.7.1 is now available in Maven Central: http://search.maven.org/#artifactdetails%7Corg.apache.jclouds%7Cjclouds%7C1.7.1%7Cpom
          Hide
          Ben Mabey added a comment -

          Thanks for resolving this issue so quickly. Do you have any idea when 1.6.4 will land on Maven Central?

          Show
          Ben Mabey added a comment - Thanks for resolving this issue so quickly. Do you have any idea when 1.6.4 will land on Maven Central?
          Hide
          Andrew Phillips added a comment -

          Ben Mabey: 1.6.4 is not currently planned, as far as I'm aware. I take it from your comment that upgrading to 1.7.1 is not an option for you. Are you able to use 1.6.3-SNAPSHOT successfully for now (this contains the relevant workaround)?

          Show
          Andrew Phillips added a comment - Ben Mabey : 1.6.4 is not currently planned, as far as I'm aware. I take it from your comment that upgrading to 1.7.1 is not an option for you. Are you able to use 1.6.3-SNAPSHOT successfully for now (this contains the relevant workaround)?
          Hide
          Ben Mabey added a comment -

          Yeah, I'm looking for a quick fix now so I can take time to upgrade to the 1.7x line. A 1.6.3-SNAPSHOT would work for me but I am not finding it in Maven Central either. I'll look into making the jump to 1.7.1.

          Show
          Ben Mabey added a comment - Yeah, I'm looking for a quick fix now so I can take time to upgrade to the 1.7x line. A 1.6.3-SNAPSHOT would work for me but I am not finding it in Maven Central either. I'll look into making the jump to 1.7.1.
          Hide
          Andrew Phillips added a comment -

          Ben Mabey: If a quick fix is OK for now, see http://jclouds.apache.org/documentation/userguide/installation-guide/#snapshot or http://apache.markmail.org/thread/637ayb6d6uz36bam for instructions on getting hold of 1.6.3-SNAPSHOT.

          Hope that helps!

          Show
          Andrew Phillips added a comment - Ben Mabey : If a quick fix is OK for now, see http://jclouds.apache.org/documentation/userguide/installation-guide/#snapshot or http://apache.markmail.org/thread/637ayb6d6uz36bam for instructions on getting hold of 1.6.3-SNAPSHOT. Hope that helps!
          Hide
          ASF subversion and git services added a comment -

          Commit 6a6a45ed944824f3cf67621d7209cd2aca384960 in jclouds-karaf's branch refs/heads/master from Andrew Gaul
          [ https://git-wip-us.apache.org/repos/asf?p=jclouds-karaf.git;h=6a6a45e ]

          JCLOUDS-427: Upgrading Guava 16.0 -> 16.0.1

          Fixes Guava issue 1635.

          Show
          ASF subversion and git services added a comment - Commit 6a6a45ed944824f3cf67621d7209cd2aca384960 in jclouds-karaf's branch refs/heads/master from Andrew Gaul [ https://git-wip-us.apache.org/repos/asf?p=jclouds-karaf.git;h=6a6a45e ] JCLOUDS-427 : Upgrading Guava 16.0 -> 16.0.1 Fixes Guava issue 1635.
          Hide
          Ishaaq Chandy added a comment -

          If a 1.6.4 release is not planned why does this issue have it marked as such in its "Fixed Version/s" field? I ask because, for many convoluted reasons (jar dependency hell), it isn't actually possible for us to upgrade to Guava 16.x right now.

          Show
          Ishaaq Chandy added a comment - If a 1.6.4 release is not planned why does this issue have it marked as such in its "Fixed Version/s" field? I ask because, for many convoluted reasons (jar dependency hell), it isn't actually possible for us to upgrade to Guava 16.x right now.
          Andrew Phillips made changes -
          Fix Version/s 1.6.4 [ 12325590 ]
          Andrew Phillips made changes -
          Fix Version/s 1.6.4 [ 12325590 ]
          Hide
          Andrew Phillips added a comment -

          > If a 1.6.4 release is not planned why does this issue have it marked as such in its "Fixed Version/s"
          > field?

          Fair point. I suspect it was set because the issue should be resolved in the current 1.6.x branch, the next release of which would be 1.6.4. Similarly, 1.8.0 has not been released yet, but that will be the version in which the issue will be fixed on trunk.

          If you cannot upgrade to Guava 16 to use jclouds 1.7.1, could you send an email to the user list [1] to help us gauge how many users are in a similar situation? That will make it easier to decide on the priority of a 1.6.4 release.

          Thanks!

          [1] http://jclouds.apache.org/community/

          Show
          Andrew Phillips added a comment - > If a 1.6.4 release is not planned why does this issue have it marked as such in its "Fixed Version/s" > field? Fair point. I suspect it was set because the issue should be resolved in the current 1.6.x branch, the next release of which would be 1.6.4. Similarly, 1.8.0 has not been released yet, but that will be the version in which the issue will be fixed on trunk. If you cannot upgrade to Guava 16 to use jclouds 1.7.1, could you send an email to the user list [1] to help us gauge how many users are in a similar situation? That will make it easier to decide on the priority of a 1.6.4 release. Thanks! [1] http://jclouds.apache.org/community/
          Ignasi Barrera made changes -
          Fix Version/s 1.6.4 [ 12325590 ]

            People

            • Assignee:
              Andrew Phillips
              Reporter:
              graham o'regan
            • Votes:
              6 Vote for this issue
              Watchers:
              16 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development