[jira] [Commented] (JCLOUDS-836) Support for the GAE
[ https://issues.apache.org/jira/browse/JCLOUDS-836?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=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
[jira] [Created] (JCLOUDS-836) Support for the GAE
Edouard Mercier created JCLOUDS-836: --- Summary: 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, 2.0.0 Environment: When running jclouds on the Google App Engine (v1.9.18), the BlobStore API cannot work. Reporter: Edouard Mercier 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 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) 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