Hi Pradheep. The library that you are using is attempting to spawn a new
thread which is not permitted by App Engine's sandbox. You will have to
either disable multithreading via configuration, if the library exposes
this, or use another library.

The "Google Accounts API" that is referenced in the paragraph that you
quoted from our documentation is referring to the Google Accounts service
that App Engine exposes:

http://code.google.com/appengine/docs/java/users/

This App Engine API only returns the user's nickname and email address,
however, so you'll need to use a different mechanism if other profile
information is necessary.

- Jason

On Sun, Nov 1, 2009 at 8:24 PM, Pradheep A R <[email protected]> wrote:

>
>
>  Hello everyone,
>
>  I am sure i am asking something that some one here knows the answer.
>
>  I am trying to implement the OpenID client to authenticate my users
> in
>  the Google App Engine website and then use Google Accounts API to
>  access their profile (All i want is to show their profile pics, show
>  their contacts when they want to notify some information to their
>  friends when they use my websitewww.letsvoteonline.com)
>  I am using OpenID for Java library for this purpose. The problem here
>  is i am getting the following exception.
>
>  java.security.AccessControlException: access denied
>  (java.lang.RuntimePermission modifyThreadGroup)
>         at java.security.AccessControlContext.checkPermission(Unknown
> Source)
>         at java.security.AccessController.checkPermission(Unknown
> Source)
>         at java.lang.SecurityManager.checkPermission(Unknown Source)
>         at com.google.appengine.tools.development.DevAppServerFactory
>  $CustomSecurityManager.checkPermission(DevAppServerFactory.java:151)
>         at com.google.appengine.tools.development.DevAppServerFactory
>  $CustomSecurityManager.checkAccess(DevAppServerFactory.java:176)
>         at java.lang.ThreadGroup.checkAccess(Unknown Source)
>         at java.lang.Thread.init(Unknown Source)
>         at java.lang.Thread.(Unknown Source)
>         at
> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager
>  $ReferenceQueueThread.(MultiThreadedHttpConnectionManager.java:1039)
>         at
>
> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.storeRefer
> enceToConnection
>  (MultiThreadedHttpConnectionManager.java:164)
>         at
>
> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.access
>  $900(MultiThreadedHttpConnectionManager.java:64)
>         at
> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager
>  $ConnectionPool.createConnection
>  (MultiThreadedHttpConnectionManager.java:750)
>         at
>
> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConne
> ction
>  (MultiThreadedHttpConnectionManager.java:469)
>         at
>
> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getConnect
> ionWithTimeout
>  (MultiThreadedHttpConnectionManager.java:394)
>         at
> org.apache.commons.httpclient.HttpMethodDirector.executeMethod
>  (HttpMethodDirector.java:152)
>         at org.apache.commons.httpclient.HttpClient.executeMethod
>  (HttpClient.java:396)
>         at org.apache.commons.httpclient.HttpClient.executeMethod
>  (HttpClient.java:324)
>         at org.openid4java.util.HttpCache.head(HttpCache.java:296)
>         at
> org.openid4java.discovery.yadis.YadisResolver.retrieveXrdsLocation
>  (YadisResolver.java:360)
>         at org.openid4java.discovery.yadis.YadisResolver.discover
>  (YadisResolver.java:229)
>         at org.openid4java.discovery.yadis.YadisResolver.discover
>  (YadisResolver.java:221)
>         at org.openid4java.discovery.yadis.YadisResolver.discover
>  (YadisResolver.java:179)
>         at org.openid4java.discovery.Discovery.discover
> (Discovery.java:134)
>         at org.openid4java.discovery.Discovery.discover
> (Discovery.java:114)
>         at org.openid4java.consumer.ConsumerManager.discover
>  (ConsumerManager.java:527)
>         at letsvote.webapps.Letsvote_test1Servlet.authRequest
>  (Letsvote_test1Servlet.java:170)
>         at letsvote.webapps.Letsvote_test1Servlet.doGet
>  (Letsvote_test1Servlet.java:93)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:
> 693)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:
> 806)
>         at org.mortbay.jetty.servlet.ServletHolder.handle
> (ServletHolder.java:
>  487)
>         at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter
>  (ServletHandler.java:1093)
>         at
>  com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
>  (TransactionCleanupFilter.java:43)
>         at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter
>  (ServletHandler.java:1084)
>         at
> com.google.appengine.tools.development.StaticFileFilter.doFilter
>  (StaticFileFilter.java:121)
>         at org.mortbay.jetty.servlet.ServletHandler
> $CachedChain.doFilter
>  (ServletHandler.java:1084)
>         at org.mortbay.jetty.servlet.ServletHandler.handle
>  (ServletHandler.java:360)
>         at org.mortbay.jetty.security.SecurityHandler.handle
>  (SecurityHandler.java:216)
>         at org.mortbay.jetty.servlet.SessionHandler.handle
>  (SessionHandler.java:181)
>         at org.mortbay.jetty.handler.ContextHandler.handle
>  (ContextHandler.java:712)
>         at org.mortbay.jetty.webapp.WebAppContext.handle
> (WebAppContext.java:
>  405)
>         at
> com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle
>  (DevAppEngineWebAppContext.java:54)
>         at org.mortbay.jetty.handler.HandlerWrapper.handle
>  (HandlerWrapper.java:139)
>         at
> com.google.appengine.tools.development.JettyContainerService
>  $ApiProxyHandler.handle(JettyContainerService.java:342)
>         at org.mortbay.jetty.handler.HandlerWrapper.handle
>  (HandlerWrapper.java:139)
>         at org.mortbay.jetty.Server.handle(Server.java:313)
>         at org.mortbay.jetty.HttpConnection.handleRequest
> (HttpConnection.java:
>  506)
>         at org.mortbay.jetty.HttpConnection
> $RequestHandler.headerComplete
>  (HttpConnection.java:830)
>         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:
> 514)
>         at org.mortbay.jetty.HttpParser.parseAvailable
> (HttpParser.java:211)
>         at org.mortbay.jetty.HttpConnection.handle
> (HttpConnection.java:381)
>         at org.mortbay.io.nio.SelectChannelEndPoint.run
>  (SelectChannelEndPoint.java:396)
>         at org.mortbay.thread.BoundedThreadPool$PoolThread.run
>  (BoundedThreadPool.java:442)
>  Powered by Jetty://
>
>  I heard Google Appengine doesnot support running multiple threads. So
>  is this related to that?
>
>  I see the following lines in Google App Engine Docs
>
>  "The App Engine datastore supports storing the User object returned
> by
>  the Google Accounts API as a special value type. As of this writing,
>  User values do not behave as stable identifiers for users: if an app
>  stores a User value and the user changes her email address, the User
>  value will no longer refer to a valid user. In practice, users rarely
>  change their Google Account email addresses, but it's worth designing
>  for this rare case. A future update to the service may update User
>  values in the datastore automatically. Until then, it is a best
>  practice to not rely on the User value for stability.
>  The User object exposes a unique user ID that is guaranteed to be
>  stable for the lifetime of the user's account, even after changing
> the
>  email address. You can use this value in a datastore entity key or
>  property value. If you wish to perform datastore queries over both
>  email addresses and user IDs, you can store both the User object and
>  the user ID from the object as separate properties."
>
>  So Does it mean that Google App Engine really support Google Accounts
>  API?
>
>  Can some one point me to some step by step how to do information?
>
>  People, your help is really needed here.
>
>  Thanks
>  Pradheep
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to