[jira] [Commented] (JCLOUDS-836) Support for the GAE

2015-03-13 Thread Edouard Mercier (JIRA)

[ 
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

2015-03-04 Thread Edouard Mercier (JIRA)
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