[ 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)