jclouds-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Edouard Mercier (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JCLOUDS-836) Support for the GAE
Date Fri, 13 Mar 2015 22:37:38 GMT

    [ https://issues.apache.org/jira/browse/JCLOUDS-836?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14361220#comment-14361220
] 

Edouard Mercier commented on JCLOUDS-836:
-----------------------------------------

[~gaul]: thank your for taking care of my issue, and sorry to be so long to answer. Unfortunately,
I haven't the opportunity to test the BlobStorage against AWS, and cannot tell you whether
this is specific to the Google Cloud Platform. I do not know whether the fact that the "com.google.gson"
package is involved means that this is a GCP specific issue, what I can guess, is that this
is a web service response serialization issue. If the same serialization mechanism is involved
for all clouds platforms, this means that it independent from GCP. I know nothing about the
JClouds implementation… 

>From a pure technical point of view, I guess that the issue is linked to the fact that
the "org.jclouds.reflect.Reflection" component is attempting to use unauthorized reflection
on the GAE. A very quick search (see http://stackoverflow.com/questions/14097973/app-engine-reflection-is-not-allowed-on-private-java-lang-throwable-java-lang-t)
reveals and states: "The sandbox restrictions don't allow reflection on private variables.".

Please, tell me if you have enough material to investigate on. If you need to perform test
agains the GAE, I may help running them. Please, let me know. Regards.

> Support for the GAE
> -------------------
>
>                 Key: JCLOUDS-836
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-836
>             Project: jclouds
>          Issue Type: Bug
>          Components: jclouds-blobstore, jclouds-core, jclouds-drivers
>    Affects Versions: 1.8.1
>         Environment: When running jclouds on the Google App Engine (v1.9.18), the BlobStore
API cannot work.
>            Reporter: Edouard Mercier
>              Labels: gae
>
> Hello.
> I've been digging a long time, both using the v1.8.1 and the v2.0.0-SNAPSHOT, and found
no way to jclouds BlobStore to work on the current GAE Java flavor v1.9.18.
> When attempting to use the "BlobStore.putBlob()" method, I get this
> {noformat}
> java.lang.SecurityException: java.lang.IllegalAccessException: Reflection is not allowed
on java.lang.String(int,int,char[])
> at com.google.appengine.runtime.Request.process-6c82fef5146f94d9(Request.java)
> at java.lang.reflect.Constructor.setAccessible(Constructor.java:40)
> at org.jclouds.reflect.Reflection2$1.load(Reflection2.java:156)
> at org.jclouds.reflect.Reflection2$1.load(Reflection2.java:152)
> at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)
> at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
> at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
> at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
> at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
> at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
> at org.jclouds.reflect.Reflection2.get(Reflection2.java:345)
> at org.jclouds.reflect.Reflection2.constructors(Reflection2.java:99)
> at org.jclouds.json.internal.NamingStrategies$AnnotationConstructorNamingStrategy.getDeserializer(NamingStrategies.java:248)
> at org.jclouds.json.internal.DeserializationConstructorAndReflectiveTypeAdapterFactory.create(DeserializationConstructorAndReflectiveTypeAdapterFactory.java:122)
> at com.google.gson.Gson.getAdapter(Gson.java:358)
> at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getFieldAdapter(ReflectiveTypeAdapterFactory.java:109)
> at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.access$100(ReflectiveTypeAdapterFactory.java:46)
> at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:84)
> at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:83)
> at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:129)
> at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:75)
> at com.google.gson.Gson.getAdapter(Gson.java:358)
> at com.google.gson.Gson.toJson(Gson.java:587)
> at com.google.gson.Gson.toJson(Gson.java:574)
> at com.google.gson.Gson.toJson(Gson.java:529)
> at com.google.gson.Gson.toJson(Gson.java:509)
> at org.jclouds.json.internal.GsonWrapper.toJson(GsonWrapper.java:52)
> at org.jclouds.googlecloudstorage.binders.MultipartUploadBinder.bindToRequest(MultipartUploadBinder.java:53)
> at org.jclouds.rest.internal.RestAnnotationProcessor.apply(RestAnnotationProcessor.java:324)
> at org.jclouds.rest.internal.RestAnnotationProcessor.apply(RestAnnotationProcessor.java:129)
> at org.jclouds.rest.internal.InvokeHttpMethod.toCommand(InvokeHttpMethod.java:188)
> at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:84)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
> at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
> at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
> at com.sun.proxy.$Proxy62.multipartUpload(Unknown Source)
> at org.jclouds.googlecloudstorage.blobstore.GoogleCloudStorageBlobStore.putBlob(GoogleCloudStorageBlobStore.java:224)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:45)
> at com.google.inject.internal.DelegatingInvocationHandler.invoke(DelegatingInvocationHandler.java:37)
> at com.sun.proxy.$Proxy60.putBlob(Unknown Source)
> {noformat}
> exception (this one was caused using jclouds v2.0.0-SNAPSHOT).
> I've seen that there has been initiatives to have jclouds working on the GAE in the past,
but would like to know if this is still on the roadmap. Any help which shows how to have jclouds
BlobStore working on GAE is very welcome.
> Thank you for your support.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message