There's one integration test failing after upgrading to Juneau 7.2.0

org.apache.streams.twitter.test.api.TwitterIT.testRetweeterIds

Relevant code in 

org.apache.streams.twitter.api.Statuses

http://streams.apache.org/streams-contrib/streams-provider-twitter/apidocs/index.html

@RemoteInterface(path = "https://api.twitter.com/1.1/statuses")
public interface Statuses {


	// This the call that's failing
	@RemoteMethod(method ="GET", path = "/retweeters/ids.json")
	public RetweeterIdsResponse retweeterIds( @Query(name = "*", skipIfEmpty = true) RetweeterIdsRequest parameters);


	// This call accesses very similar data - it succeeds
  	@RemoteMethod(method ="GET", path = "/retweets/{id}")
	public List<Tweet> retweets( @Request RetweetsRequest parameters);


	// This call is almost identical in terms of how the method annotated - it succeeds
	@RemoteMethod(method ="GET", path = "/user_timeline.json")
	public List<Tweet> userTimeline( @Query(name = "*", skipIfEmpty = true) StatusesUserTimelineRequest parameters);
}

Here are the logs I see on the failing test


java.lang.RuntimeException: org.apache.juneau.rest.client.RestCallException: HTTP method 'GET' call to 'https://api.twitter.com:443/1.1/statuses/retweeters%2Fids.json?id=1049134195354865665' caused response code '404, Not Found'.
Response: 
{"errors":[{"message":"Sorry, that page does not exist","code":34}]}
at org.apache.juneau.rest.client.RestClient$3.invoke(RestClient.java:1133)
at com.sun.proxy.$Proxy35.retweeterIds(Unknown Source)
at org.apache.streams.twitter.api.Twitter.retweeterIds(Twitter.java:181)
at org.apache.streams.twitter.test.api.TwitterIT.testRetweeterIds(TwitterIT.java:253)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:108)
at org.testng.internal.Invoker.invokeMethod(Invoker.java:661)
at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:869)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1193)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
at org.testng.TestRunner.privateRun(TestRunner.java:744)
at org.testng.TestRunner.run(TestRunner.java:602)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:380)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:375)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)
at org.testng.SuiteRunner.run(SuiteRunner.java:289)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1301)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1226)
at org.testng.TestNG.runSuites(TestNG.java:1144)
at org.testng.TestNG.run(TestNG.java:1115)
at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)
Caused by: org.apache.juneau.rest.client.RestCallException: HTTP method 'GET' call to 'https://api.twitter.com:443/1.1/statuses/retweeters%2Fids.json?id=1049134195354865665' caused response code '404, Not Found'.
Response: 
{"errors":[{"message":"Sorry, that page does not exist","code":34}]}
at org.apache.juneau.rest.client.RestCall.connect(RestCall.java:1676)
at org.apache.juneau.rest.client.RestCall.getResponseInner(RestCall.java:2231)
at org.apache.juneau.rest.client.RestCall.getResponseBody(RestCall.java:2164)
at org.apache.juneau.rest.client.RestClient$3.invoke(RestClient.java:1124)
... 27 more
  • No labels

2 Comments

  1. When I debug RestClient (specifically getRemoteResource)

    • in most cases, the value assigned to String url on line 1048 DOES NOT contain an escaped slash (%2F)
    • retweeterIds value of url DOES contain an escaped slash (%2F)
    • i think whatever circumstances cause this difference in behavior is at the root of the problem
    • on the surface, it's not clear to me what that difference is.