This could be a server problem also. Not sure if it's related, this
sounds like a problem I discovered in our server.

We had a bug that's only reproducible on PHP client, not Java. It
turns out that the PHP using Curl doesn't do keepalive and the Java
with pool manager does it. The root cause is that the servers get out
of sync due to the DB replication lag. Without pooling, HTTP
connections are directed to different servers by VIP and the request
fails due to inconsistent state. Our solution is to create another DB
which is not replicated. The same request always goes to the same DB.

Zhihong

On Mar 13, 4:04 pm, raid5 <[email protected]> wrote:
> It appears that initializing the OAuthClient with a HttpClientPool
> solves the issue. The issue appears to be related to how the Java
> OAuth library shared a single HttpClient but I'm not positive why this
> causes issues.
>
> Instead of:
> client = new OAuthClient(new HttpClient4());
>
> try:
> HttpClientPool pool = new HttpClientPool() {
>     public HttpClient getHttpClient(URL u) {
>         return new DefaultHttpClient();
>     }};
>
> client = new OAuthClient(new HttpClient4(pool));
>
> Let me know if this resolves your issues.
>
> Adam
>
> On Jan 20, 3:14 am, Tane Piper <[email protected]> wrote:
>
> > Hi Sean,
>
> > I've added this to before the definitions of both my AndroidAccessor
> > class and my PostNote class, however I'm not getting any additional
> > debug statements.  Here is my Accessor, is this correct?
>
> > package org.ifies.brightroid.oauth;
>
> > import java.io.IOException;
> > import java.net.URISyntaxException;
> > import java.util.Collection;
> > import java.util.List;
> > import java.util.Map.Entry;
>
> > import net.oauth.OAuth;
> > import net.oauth.OAuthAccessor;
> > import net.oauth.OAuthConsumer;
> > import net.oauth.OAuthException;
> > import net.oauth.OAuthMessage;
> > import net.oauth.OAuthServiceProvider;
> > import net.oauth.client.OAuthClient;
> > import net.oauth.client.httpclient4.HttpClient4;
>
> > public class AndroidAccessor {
>
> >     private final String OAUTH_REQUEST_TOKEN_URL = "http://
> > brightkite.com/oauth/request_token";
> >     private final String OAUTH_AUTHORIZE_URL = "http://brightkite.com/
> > oauth/authorize";
> >     private final String OAUTH_ACCESS_TOKEN_URL = "http://
> > brightkite.com/oauth/access_token";
> >     private String CONSUMER_KEY = "";
> >     private String CONSUMER_SECRET = "";
>
> >     public OAuthServiceProvider provider;
> >     public OAuthConsumer consumer;
> >     public OAuthAccessor accessor;
> >     public OAuthClient client;
>
> >     static {
> >         System.getProperties().put("org.apache.commons.logging.Log",
> >                         "org.apache.commons.logging.impl.SimpleLog");
> >         System.getProperties().put
> > ("org.apache.commons.logging.simplelog.defaultlog",
> >                         "trace");
> >     }
>
> >         /**
> >          * @param args
> >          */
> >         public void main(String[] args) {
> >                 // TODO Auto-generated method stub
> >         }
>
> >         public void createAccessor() {
> >                 provider = new OAuthServiceProvider(
> >                                 OAUTH_REQUEST_TOKEN_URL,
> >                                 OAUTH_AUTHORIZE_URL,
> >                                 OAUTH_ACCESS_TOKEN_URL);
> >                 consumer = new OAuthConsumer(null // callback URL
> >                     , CONSUMER_KEY // consumer key
> >                     , CONSUMER_SECRET // consumer secret
> >                     , provider);
> >                 accessor = new OAuthAccessor(consumer);
> >                 client = new OAuthClient(new HttpClient4());
> >         }
>
> >         public void setAccessToken(String access_token) {
> >                 accessor.accessToken = access_token;
> >         }
>
> >         public String getAccessToken() {
> >                 return accessor.accessToken;
> >         }
>
> >         public void requestAccessToken() throws IOException, OAuthException,
> > URISyntaxException {
> >                 client.getAccessToken(accessor, null, null);
> >         }
>
> >         public void getRequestToken() throws IOException, OAuthException,
> > URISyntaxException {
> >                 client.getRequestToken(accessor);
> >         }
>
> >         public String getAuthorisationUrl() throws IOException {
> >                 return OAuth.addParameters
> > (accessor.consumer.serviceProvider.userAuthorizationURL,
> > "oauth_token", accessor.requestToken);
> >         }
>
> >         public OAuthMessage getMessage(String url, Collection<? extends
> > Entry> parameters) throws IOException, OAuthException,
> > URISyntaxException {
> >                 return client.invoke(accessor, "GET", url, parameters);
> >         }
>
> >         public void postMessage(String url, Collection<? extends Entry>
> > parameters) throws IOException, OAuthException, URISyntaxException {
> >                 client.invoke(accessor, "POST", url, parameters);
> >         }
>
> > }
>
> > On Jan 20, 9:40 am, "Sean Sullivan" <[email protected]> wrote:
>
> > > Are you using the OAuth Java library with HttpClient 4 ?
>
> > > If you are using HttpClient 4.x (or Http Client 3.x), you can enable
> > > trace level logging
> > > by adding this static initializer to your app:
>
> > > static
>
> > > {
>
> > > System.getProperties().put("org.apache.commons.logging.Log",
> > > "org.apache.commons.logging.impl.SimpleLog");
>
> > > System.getProperties().put("org.apache.commons.logging.simplelog.defaultlog
> > >  ",
> > > "trace");
>
> > > }
>
> > > The trace output should help you debug this.
>
> > > Sean
>
> > > On Tue, Jan 20, 2009 at 10:33 AM, Tane Piper
>
> > > <[email protected]> wrote:
>
> > > > Hey folks,
>
> > > > I'm adding some new features to my app - but have had some weird
> > > > results recently.  In my new feature, I use OAuth to post a note to
> > > > the Brightkite service.  I'm getting the exact same result each time
> > > > here.  When I open the activity and try to post, I have to do it
> > > > twice, every time.  And every time I get the exact same errors:
>
> > > > 01-20 09:25:41.016: WARN/System.err(19409):
> > > > org.apache.http.client.ClientProtocolException
> > > > 01-20 09:25:41.026: WARN/System.err(19409):     at
> > > > org.apache.http.impl.client.AbstractHttpClient.execute
> > > > (AbstractHttpClient.java:557)
> > > > 01-20 09:25:41.036: WARN/System.err(19409):     at
> > > > org.apache.http.impl.client.AbstractHttpClient.execute
> > > > (AbstractHttpClient.java:487)
> > > > 01-20 09:25:41.036: WARN/System.err(19409):     at
> > > > org.apache.http.impl.client.AbstractHttpClient.execute
> > > > (AbstractHttpClient.java:465)
> > > > 01-20 09:25:41.046: WARN/System.err(19409):     at
> > > > net.oauth.client.httpclient4.HttpClient4.execute(HttpClient4.java:89)
> > > > 01-20 09:25:41.056: WARN/System.err(19409):     at
> > > > net.oauth.client.OAuthClient.invoke(OAuthClient.java:260)
> > > > 01-20 09:25:41.056: WARN/System.err(19409):     at
> > > > net.oauth.client.OAuthClient.invoke(OAuthClient.java:160)
> > > > 01-20 09:25:41.066: WARN/System.err(19409):     at
> > > > org.ifies.brightroid.oauth.AndroidAccessor.postMessage
> > > > (AndroidAccessor.java:76)
> > > > 01-20 09:25:41.066: WARN/System.err(19409):     at
> > > > org.ifies.brightroid.me.PostNote$2.run(PostNote.java:77)
> > > > 01-20 09:25:41.076: WARN/System.err(19409):     at
> > > > android.os.Handler.handleCallback(Handler.java:542)
> > > > 01-20 09:25:41.076: WARN/System.err(19409):     at
> > > > android.os.Handler.dispatchMessage(Handler.java:86)
> > > > 01-20 09:25:41.086: WARN/System.err(19409):     at
> > > > android.os.Looper.loop(Looper.java:123)
> > > > 01-20 09:25:41.086: WARN/System.err(19409):     at
> > > > android.app.ActivityThread.main(ActivityThread.java:3742)
> > > > 01-20 09:25:41.096: WARN/System.err(19409):     at
> > > > java.lang.reflect.Method.invokeNative(Native Method)
> > > > 01-20 09:25:41.096: WARN/System.err(19409):     at
> > > > java.lang.reflect.Method.invoke(Method.java:515)
> > > > 01-20 09:25:41.106: WARN/System.err(19409):     at
> > > > com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
> > > > (ZygoteInit.java:739)
> > > > 01-20 09:25:41.106: WARN/System.err(19409):     at
> > > > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497)
> > > > 01-20 09:25:41.116: WARN/System.err(19409):     at
> > > > dalvik.system.NativeStart.main(Native Method)
> > > > 01-20 09:25:41.116: WARN/System.err(19409): Caused by:
> > > > org.apache.http.client.NonRepeatableRequestException: Cannot retry
> > > > request with a non-repeatable request entity
> > > > 01-20 09:25:41.136: WARN/System.err(19409):     at
> > > > org.apache.http.impl.client.DefaultRequestDirector.execute
> > > > (DefaultRequestDirector.java:402)
> > > > 01-20 09:25:41.136: WARN/System.err(19409):     at
> > > > org.apache.http.impl.client.AbstractHttpClient.execute
> > > > (AbstractHttpClient.java:555)
> > > > 01-20 09:25:41.146: WARN/System.err(19409):     ... 16 more
>
> > > > 01-20 09:26:18.196: WARN/System.err(19409):
> > > > net.oauth.OAuthProblemException: HTTP/1.1 201 Created
> > > > 01-20 09:26:18.206: WARN/System.err(19409):     at
> > > > net.oauth.client.OAuthClient.invoke(OAuthClient.java:264)
> > > > 01-20 09:26:18.216: WARN/System.err(19409):     at
> > > > net.oauth.client.OAuthClient.invoke(OAuthClient.java:160)
> > > > 01-20 09:26:18.216: WARN/System.err(19409):     at
> > > > org.ifies.brightroid.oauth.AndroidAccessor.postMessage
> > > > (AndroidAccessor.java:76)
> > > > 01-20 09:26:18.226: WARN/System.err(19409):     at
> > > > org.ifies.brightroid.me.PostNote$2.run(PostNote.java:77)
> > > > 01-20 09:26:18.226: WARN/System.err(19409):     at
> > > > android.os.Handler.handleCallback(Handler.java:542)
> > > > 01-20 09:26:18.236: WARN/System.err(19409):     at
> > > > android.os.Handler.dispatchMessage(Handler.java:86)
> > > > 01-20 09:26:18.236: WARN/System.err(19409):     at
> > > > android.os.Looper.loop(Looper.java:123)
> > > > 01-20 09:26:18.246: WARN/System.err(19409):     at
> > > > android.app.ActivityThread.main(ActivityThread.java:3742)
> > > > 01-20 09:26:18.246: WARN/System.err(19409):     at
> > > > java.lang.reflect.Method.invokeNative(Native Method)
> > > > 01-20 09:26:18.256: WARN/System.err(19409):     at...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"OAuth" 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/oauth?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to