<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Samuraism - java tag</title>
  <link>http://samuraism.jp/blog/tags/java/</link>
  <description></description>
  <language>en</language>
  <copyright>Yusuke Yamamoto</copyright>
  <lastBuildDate>Sat, 07 Apr 2012 17:05:00 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>Hudson build fails with Maven JVM terminated unexpectedly with exit code 134</title>
    <link>http://samuraism.jp/blog/2010/12/16/hudson_build_fails_with_maven_jvm_terminated_unexpectedly_with_exit_code_134.html</link>
    
      
        <description>
          &lt;p&gt;We use &lt;a href=&#034;http://hudson-ci.org/&#034;&gt;Hudson&lt;/a&gt; as a continuous integration tool for &lt;a href=&#034;http://twitter4j.org/&#034;&gt;Twitter4J&lt;/a&gt;.&lt;br/&gt;I really love the maven oriented and easy to use tool and it makes Twitter4J development much smoother.&lt;br/&gt;&lt;br/&gt;But what unfortunate is the error message &lt;a href=&#034;http://twitter4j.org/hudson/job/T4J/1201/console&#034;&gt;&amp;quot;ERROR: Maven JVM terminated unexpectedly with exit code 134&amp;quot;&lt;/a&gt; which can be seen quite often. This is really annoying because it happens randomly and when it happens, it persists until I restart Hudson.&lt;br/&gt;&lt;br/&gt;I consulted &lt;a href=&#034;https://groups.google.com/group/hudson-ja/browse_thread/thread/4bfb2f6588a7e58b?hl=ja#6b159721308c4a98&#034;&gt;the mailing list&lt;/a&gt; and knew that exit code 134 indicates that the process crashed with SEGV or something like that.&lt;br/&gt;But somehow I don&#039;t couldn&#039;t find hs_err_pid[PID].log or core dump on the current directory.&lt;br/&gt;Then I dug an important message from syslog, saying&lt;br/&gt;&lt;div class=&#034;codeSample&#034;&gt;Nov 25 21:59:17 macmini com.apple.ReportCrash.Root[3736]: 2010-11-25 21:59:17.966 ReportCrash[3736:1407] Saved crash report for java[3732] version 1.0 (1.0) to /Library/Logs/DiagnosticReports/java_2010-11-25-215917_localhost.crash&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;It seems that Apple&#039;s JVM stores crash reports under /Library/Logs/DiagnosticReports/ as same as other native OSX apps.&lt;br/&gt;Here&#039;s snippet of the crash report:&lt;br/&gt;&lt;div class=&#034;codeSample&#034;&gt;Thread 0 Crashed:  Dispatch queue: com.apple.main-thread &lt;br/&gt;0   libSystem.B.dylib                   0x00007fff82e7a3d6 __kill + 10 &lt;br/&gt;1   libSystem.B.dylib                   0x00007fff82f1a972 abort + 83 &lt;br/&gt;2   com.apple.LaunchServices            0x00007fff80a31c9c GetOurLSSessionIDInit() + 298 &lt;br/&gt;3   libSystem.B.dylib                   0x00007fff82e447fa pthread_once + 95 &lt;br/&gt;4   com.apple.LaunchServices            0x00007fff80a31b6a GetOurLSSessionAttributeBits() + 23 &lt;br/&gt;5   com.apple.LaunchServices            0x00007fff80a31b3b NormalizeLSSessionID(LSSessionID) + 28 &lt;br/&gt;6   com.apple.LaunchServices            0x00007fff80a30c10 _LSApplicationCheckIn + 44 &lt;br/&gt;7   com.apple.HIServices                0x00007fff85e473ce _RegisterApplication + 1086 &lt;br/&gt;8   com.apple.HIServices                0x00007fff85e4e926 SetApplicationIsDaemon + 90 &lt;br/&gt;9   libawt.jnilib                       0x00000001150a9884 +[AWTStarter startAWT:] + 902 &lt;br/&gt;10  libawt.jnilib                       0x000000011506d625 -[CPerformer perform] + 93 &lt;br/&gt;11  com.apple.Foundation                0x00007fff811f563b __NSThreadPerformPerform + 219 &lt;br/&gt;12  com.apple.CoreFoundation            0x00007fff8734be91 __CFRunLoopDoSources0 + 1361 &lt;br/&gt;13  com.apple.CoreFoundation            0x00007fff8734a089 __CFRunLoopRun + 873 &lt;br/&gt;14  com.apple.CoreFoundation            0x00007fff8734984f CFRunLoopRunSpecific + 575 &lt;br/&gt;15  java                                0x0000000100004696 0x100000000 + 18070 &lt;br/&gt;16  java                                0x0000000100003eee 0x100000000 + 16110 &lt;br/&gt;17  java                                0x00000001000017b4 0x100000000 + 6068 &lt;/div&gt;&lt;br/&gt;From the stack, I can see that the JVM crashed while initializing AWT and it appears to be a Mac OSX specific issue.&lt;br/&gt;&lt;br/&gt;Then I &lt;a href=&#034;http://www.google.co.jp/search?hl=ja&amp;safe=off&amp;client=safari&amp;rls=en&amp;q=AWTStarter+crashed+__NSThreadPerformPerform+java+com.apple.main-thread+GetOurLSSessionIDInit&amp;aq=f&amp;aqi=&amp;aql=&amp;oq=&amp;gs_rfai=&#034;&gt;googled with &amp;quot;AWTStarter crashed __NSThreadPerformPerform java com.apple.main-thread GetOurLSSessionIDInit&amp;quot;&lt;/a&gt; and found this thread.&lt;br/&gt;・&lt;a href=&#034;http://www.techienuggets.com/Comments?tx=115123&#034;&gt;Comments about Nasty problem with headless mode in Tomcat 6-0-24&lt;/a&gt;&lt;br/&gt;&lt;div class=&#034;codeSample&#034;&gt;In fact just after receiving this email from you I also got one from &lt;br/&gt;Apple saying that it&#039;s a bug and that they&#039;re trying to solve it.&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;The above thread doesn&#039;t tell any solution or workaround, but the subject hints that it happens only on headless mode.&lt;br/&gt;So I turned -Djava.awt.headless=false to true and the problem solved, yay!&lt;br/&gt;&lt;br/&gt;Things learned from the issue:&lt;br/&gt;- usually exit code 134 is caused by SEGV &lt;br/&gt;- Apple&#039;s JVM dumps crash report to /Library/Logs/DiagnosticReports/java_YYYY-MM-DD-******_[hostname].crash&lt;br/&gt;- Apple&#039;s JVM dies with code 134 occasionally and it&#039;s a known issue&lt;br/&gt;- the issue can be workarounded with  -Djava.awt.headless=true (or just without -Djava.awt.headless option)&lt;br/&gt;&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2010/12/16/hudson_build_fails_with_maven_jvm_terminated_unexpectedly_with_exit_code_134.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2010/12/16/hudson_build_fails_with_maven_jvm_terminated_unexpectedly_with_exit_code_134.html</guid>
    <pubDate>Thu, 16 Dec 2010 01:09:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Twitter4J 2.1.8 released - now supports ALL official APIs</title>
    <link>http://samuraism.jp/blog/2010/12/07/twitter4j_2_1_8_released_now_supports_all_official_apis.html</link>
    
      
        <description>
          &lt;p&gt;Twitter4J is an open-sourced, mavenized and Google App Engine/Android ready Java library for the Twitter API which is released under the BSD license.&lt;br/&gt;&lt;br/&gt;Twitter4J 2.1.8 is now available for download.&lt;br/&gt;This version supports all existing REST APIs, and comes with example codes for all APIs.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/&#034;&gt;&lt;img border=&#034;2&#034; src=&#034;http://samuraism.jp/diary/images/2009/04/duke-twitter.png&#034;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This version is also available in the Maven central repository.&lt;br/&gt;&lt;a href=&#034;http://repo1.maven.org/maven2/org/twitter4j/&#034;&gt;http://repo1.maven.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;You can also use the snapshot repository.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/maven2/org/twitter4j/&#034;&gt;http://twitter4j.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;


        Release Notes - Twitter4J - Version 2.1.8
    
&lt;h2&gt;        Bug
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-392&#039;&gt;TFJ-392&lt;/a&gt;] -         &amp;amp; not escaped properly in JSON results
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-449&#039;&gt;TFJ-449&lt;/a&gt;] -         GetSuggestedUserCategories.java fails with ArrayIndexOutOfBoundsException
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-450&#039;&gt;TFJ-450&lt;/a&gt;] -         all trends Resources examples scripts point twitter4j.examples.tweets.UpdateStatus
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-455&#039;&gt;TFJ-455&lt;/a&gt;] -         createPlace() fails with 404
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Improvement
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-403&#039;&gt;TFJ-403&lt;/a&gt;] -         include entities is not enabled for some methods
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-447&#039;&gt;TFJ-447&lt;/a&gt;] -         getOAuthRequestToekn() should throw IllegalStateException if Access token is already available
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-448&#039;&gt;TFJ-448&lt;/a&gt;] -         getRetweetedBy(IDs)(long statusId, Paging paging) is useless as it returns only the first 100 users and no pagination is necessary
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-456&#039;&gt;TFJ-456&lt;/a&gt;] -         retry when receiving 503 status code
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-461&#039;&gt;TFJ-461&lt;/a&gt;] -         documentation is pointing old OAuth endpoints
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        New Feature
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-397&#039;&gt;TFJ-397&lt;/a&gt;] -         support site streams
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-451&#039;&gt;TFJ-451&lt;/a&gt;] -         support /related_results/show
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-457&#039;&gt;TFJ-457&lt;/a&gt;] -         support twipplePhoto
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Task
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-452&#039;&gt;TFJ-452&lt;/a&gt;] -         deprecate updateDeliveryDevice
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-453&#039;&gt;TFJ-453&lt;/a&gt;] -         changing email via account/update_profile is no longer supported
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-458&#039;&gt;TFJ-458&lt;/a&gt;] -         refactor ImageUpload
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-459&#039;&gt;TFJ-459&lt;/a&gt;] -         ImageUpload example
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-460&#039;&gt;TFJ-460&lt;/a&gt;] -         remove authentication credentials from the repository
&lt;/li&gt;
&lt;/ul&gt;
        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2010/12/07/twitter4j_2_1_8_released_now_supports_all_official_apis.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2010/12/07/twitter4j_2_1_8_released_now_supports_all_official_apis.html</guid>
    <pubDate>Tue, 07 Dec 2010 14:35:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Twitter4J 2.1.7 released - supports ALL existing REST APIs</title>
    <link>http://samuraism.jp/blog/2010/11/24/twitter4j_2_1_7_released_supports_all_existing_rest_apis.html</link>
    
      
        <description>
          &lt;p&gt;Twitter4J is an open-sourced, mavenized and Google App Engine/Android ready Java library for the Twitter API which is released under the BSD license.&lt;br/&gt;&lt;br/&gt;Twitter4J 2.1.7 is now available for download.&lt;br/&gt;This version supports all existing REST APIs, and comes with example codes for all APIs.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/&#034;&gt;&lt;img border=&#034;2&#034; src=&#034;http://yusuke.homeip.net/diary/images/2009/04/duke-twitter.png&#034;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This version is also available in the Maven central repository.&lt;br/&gt;&lt;a href=&#034;http://repo1.maven.org/maven2/org/twitter4j/&#034;&gt;http://repo1.maven.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;You can also use the snapshot repository.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/maven2/org/twitter4j/&#034;&gt;http://twitter4j.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

        Release Notes - Twitter4J - Version 2.1.7
    
&lt;h2&gt;        Bug
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-408&#039;&gt;TFJ-408&lt;/a&gt;] -         Twitter.getLocationTrends(int woeid) throws twitter4j.internal.org.json.JSONException for some woeids
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-412&#039;&gt;TFJ-412&lt;/a&gt;] -         twitter4j-httpclient-support doesn&amp;#39;t respect HTTP timeout parameters
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-420&#039;&gt;TFJ-420&lt;/a&gt;] -         Searching for phrases with a whitespace leads 401 unauthorized
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Improvement
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-372&#039;&gt;TFJ-372&lt;/a&gt;] -         UserStream: support replies=all option
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-410&#039;&gt;TFJ-410&lt;/a&gt;] -         java.lang.SecurityException in ConfigurationBase
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-411&#039;&gt;TFJ-411&lt;/a&gt;] -         warn that Proxy is not supported with the default HTTPClient implementation on JDK1.4.2
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        New Feature
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-366&#039;&gt;TFJ-366&lt;/a&gt;] -         support GET users/profile_image/:screen_name method
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-398&#039;&gt;TFJ-398&lt;/a&gt;] -         UserStream example
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-413&#039;&gt;TFJ-413&lt;/a&gt;] -         support legal resources
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-414&#039;&gt;TFJ-414&lt;/a&gt;] -         support POST :user/:list_id/create_all
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-415&#039;&gt;TFJ-415&lt;/a&gt;] -         support GET geo/search
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-416&#039;&gt;TFJ-416&lt;/a&gt;] -         support geo/similar_places
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-417&#039;&gt;TFJ-417&lt;/a&gt;] -         support POST geo/place
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-419&#039;&gt;TFJ-419&lt;/a&gt;] -         introduce stream connection lifecycle listener
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-421&#039;&gt;TFJ-421&lt;/a&gt;] -         add TwitterStream handling multiple Listener capability
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-422&#039;&gt;TFJ-422&lt;/a&gt;] -         provide access to raw JSON strings
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-445&#039;&gt;TFJ-445&lt;/a&gt;] -         ability to get response headers from TwitterException
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Task
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-399&#039;&gt;TFJ-399&lt;/a&gt;] -         example classes need to migrate to OAuth
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-423&#039;&gt;TFJ-423&lt;/a&gt;] -         Tweets Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-424&#039;&gt;TFJ-424&lt;/a&gt;] -         User Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-425&#039;&gt;TFJ-425&lt;/a&gt;] -         Trends Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-426&#039;&gt;TFJ-426&lt;/a&gt;] -         Local Trends Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-427&#039;&gt;TFJ-427&lt;/a&gt;] -         List Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-428&#039;&gt;TFJ-428&lt;/a&gt;] -         List Members Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-429&#039;&gt;TFJ-429&lt;/a&gt;] -         List Subscribers Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-430&#039;&gt;TFJ-430&lt;/a&gt;] -         Direct Message Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-431&#039;&gt;TFJ-431&lt;/a&gt;] -         Friendship Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-432&#039;&gt;TFJ-432&lt;/a&gt;] -         Friends and Followers Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-433&#039;&gt;TFJ-433&lt;/a&gt;] -         Account Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-434&#039;&gt;TFJ-434&lt;/a&gt;] -         Favorite Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-435&#039;&gt;TFJ-435&lt;/a&gt;] -         Notification Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-436&#039;&gt;TFJ-436&lt;/a&gt;] -         Block Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-437&#039;&gt;TFJ-437&lt;/a&gt;] -         Spam Reporting Resources example
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-438&#039;&gt;TFJ-438&lt;/a&gt;] -         Saved Searches Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-439&#039;&gt;TFJ-439&lt;/a&gt;] -         Geo Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-440&#039;&gt;TFJ-440&lt;/a&gt;] -         Legal Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-441&#039;&gt;TFJ-441&lt;/a&gt;] -         Help Resource examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-442&#039;&gt;TFJ-442&lt;/a&gt;] -         Streamed Tweets Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-443&#039;&gt;TFJ-443&lt;/a&gt;] -         Search API Resources examples
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://twitter4j.org/jira/browse/TFJ-444&#039;&gt;TFJ-444&lt;/a&gt;] -         httpclient-support compilation fails: ThreadSafeClientConnManager#setMaxTotalConnections() is now setMaxTotal()
&lt;/li&gt;
&lt;/ul&gt;
        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2010/11/24/twitter4j_2_1_7_released_supports_all_existing_rest_apis.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2010/11/24/twitter4j_2_1_7_released_supports_all_existing_rest_apis.html</guid>
    <pubDate>Tue, 23 Nov 2010 17:04:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Twitter4J 2.1.3 released - with UserStream and YFrog/TwitPic support</title>
    <link>http://samuraism.jp/blog/2010/07/24/twitter4j_2_1_3_released_with_userstream_and_yfrog_twitpic_support.html</link>
    
      
        <description>
          &lt;p&gt;Twitter4J is an open-sourced, mavenized and Google App Engine/Android ready Java library for the Twitter API which is released under the BSD license.&lt;br/&gt;&lt;br/&gt;Twitter4J 2.1.3 is now available for download.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/&#034;&gt;&lt;img border=&#034;2&#034; src=&#034;http://yusuke.homeip.net/diary/images/2009/04/duke-twitter.png&#034;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This version is also available in the Maven central repository.&lt;br/&gt;&lt;a href=&#034;http://repo1.maven.org/maven2/org/twitter4j/&#034;&gt;http://repo1.maven.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;You can also use the snapshot repository.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/maven2/org/twitter4j/&#034;&gt;http://twitter4j.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

        Release Notes - Twitter4J - Version 2.1.3
    
&lt;h2&gt;        Bug
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-326&#039;&gt;TFJ-326&lt;/a&gt;] -         xAuth: setOAuthConsumer() fails with IllegalStateException if the instance is Basic auth&#039;ed
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-338&#039;&gt;TFJ-338&lt;/a&gt;] -         getIncomingFriendship() / getOutgoingFriendship() are not checking credentials availability
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-341&#039;&gt;TFJ-341&lt;/a&gt;] -         StackOverFlowError at RequestToken.hashCode()
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-342&#039;&gt;TFJ-342&lt;/a&gt;] -         Streaming API: wait time for TCP level error is always initialized to 250ms
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-346&#039;&gt;TFJ-346&lt;/a&gt;] -         java.lang.IllegalStateException with httpclient-support
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-347&#039;&gt;TFJ-347&lt;/a&gt;] -         StatusUpdate#setInReplyToStatusId() is not functioning
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-348&#039;&gt;TFJ-348&lt;/a&gt;] -         JSONObject[&amp;quot;created_at&amp;quot;] not found. 
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-356&#039;&gt;TFJ-356&lt;/a&gt;] -         typo in reportSpam method
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-357&#039;&gt;TFJ-357&lt;/a&gt;] -         NoSuchMethodError with Log4J 1.2.16
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-369&#039;&gt;TFJ-369&lt;/a&gt;] -         httpclient connection closing still not quite right
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Improvement
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-349&#039;&gt;TFJ-349&lt;/a&gt;] -         JSONObject[&amp;quot;created_at&amp;quot;] not found.
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-355&#039;&gt;TFJ-355&lt;/a&gt;] -         make PagableResponseList mocking test friendly
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-358&#039;&gt;TFJ-358&lt;/a&gt;] -         Apache HttpClient need to be shutdown gracefully
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-359&#039;&gt;TFJ-359&lt;/a&gt;] -         defaulting useSSL=false
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-364&#039;&gt;TFJ-364&lt;/a&gt;] -         getRetweets() returns only 20 retweets
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-370&#039;&gt;TFJ-370&lt;/a&gt;] -         support location element in Tweet
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        New Feature
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-39&#039;&gt;TFJ-39&lt;/a&gt;] -         ability to upload images to TwitPic
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-299&#039;&gt;TFJ-299&lt;/a&gt;] -         support YFrog APIs
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-330&#039;&gt;TFJ-330&lt;/a&gt;] -         include error code generated from stacktrace in TwitterException#getMessage() for the ease of support
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-334&#039;&gt;TFJ-334&lt;/a&gt;] -         support User Stream API
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-339&#039;&gt;TFJ-339&lt;/a&gt;] -         support statuses/id/retweeted_by and statuses/id/retweeted_by/ids
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-343&#039;&gt;TFJ-343&lt;/a&gt;] -         Add Twitter Search option parameter, result_type
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-350&#039;&gt;TFJ-350&lt;/a&gt;] -         support include_rts
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-352&#039;&gt;TFJ-352&lt;/a&gt;] -         Have a source code jar in the release zip
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-354&#039;&gt;TFJ-354&lt;/a&gt;] -         add verifyCredentials in AsyncTwitter
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-360&#039;&gt;TFJ-360&lt;/a&gt;] -         add httpclient max conns configuration
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-361&#039;&gt;TFJ-361&lt;/a&gt;] -         Add support for clients specifying arbitrary stream endpoints
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-362&#039;&gt;TFJ-362&lt;/a&gt;] -         Streaming API - OAuth support
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Task
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-363&#039;&gt;TFJ-363&lt;/a&gt;] -         deprecate Basic auth methods
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-365&#039;&gt;TFJ-365&lt;/a&gt;] -         move JavaDoc links from https://apiwiki.twitter.com/* to http://dev.twitter.com/doc/*
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-368&#039;&gt;TFJ-368&lt;/a&gt;] -         deprecate nearby_places
&lt;/li&gt;
&lt;/ul&gt;
        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2010/07/24/twitter4j_2_1_3_released_with_userstream_and_yfrog_twitpic_support.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2010/07/24/twitter4j_2_1_3_released_with_userstream_and_yfrog_twitpic_support.html</guid>
    <pubDate>Fri, 23 Jul 2010 18:25:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Twitter4J 2.1.2 released with latest API support</title>
    <link>http://samuraism.jp/blog/2010/04/19/twitter4j_2_1_2_released_with_latest_api_support.html</link>
    
      
        <description>
          &lt;p&gt;Twitter4J is an open-sourced, mavenized and Google App Engine safe Java library for the Twitter API which is released under the BSD license.&lt;br/&gt;&lt;br/&gt;Twitter4J 2.1.2 is now available for download.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/&#034;&gt;&lt;img border=&#034;2&#034; src=&#034;http://yusuke.homeip.net/diary/images/2009/04/duke-twitter.png&#034;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This version is also available in the Maven central repository.&lt;br/&gt;&lt;a href=&#034;http://repo1.maven.org/maven2/org/twitter4j/&#034;&gt;http://repo1.maven.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;You can also use the snapshot repository.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/maven2/org/twitter4j/&#034;&gt;http://twitter4j.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;

        Release Notes - Twitter4J - Version 2.1.2
    
&lt;h2&gt;        Bug
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-213&#039;&gt;TFJ-213&lt;/a&gt;] -         until is misspelled: untli
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Improvement
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-286&#039;&gt;TFJ-286&lt;/a&gt;] -         Allow for alternative implementations of http classes. 
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-293&#039;&gt;TFJ-293&lt;/a&gt;] -         data objects should implement Comparable
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-314&#039;&gt;TFJ-314&lt;/a&gt;] -         implement a test case which reports unknown fileds in the response
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-327&#039;&gt;TFJ-327&lt;/a&gt;] -         Some classes are preferable to be non-filal for mock testing purpose
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-328&#039;&gt;TFJ-328&lt;/a&gt;] -         RequestToken.getAuthenticationURL()/getAuthorizationURL() should return URLs starting with https:// for security reasons
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-329&#039;&gt;TFJ-329&lt;/a&gt;] -         groupId is missing in pom in core and examples project.
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-333&#039;&gt;TFJ-333&lt;/a&gt;] -         street_address support in Place interface
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        New Feature
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-232&#039;&gt;TFJ-232&lt;/a&gt;] -         introduce a utility class that counts the length of tweets
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-254&#039;&gt;TFJ-254&lt;/a&gt;] -         contributors element support in Status interface, contributors_enabled element support in User interface
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-275&#039;&gt;TFJ-275&lt;/a&gt;] -         add some test methods to TwitterException which make it easier to determine the cause of the exception
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-285&#039;&gt;TFJ-285&lt;/a&gt;] -         Allow for alternative implementations of Dispatcher classes. 
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-287&#039;&gt;TFJ-287&lt;/a&gt;] -         Ability to communicate the API using Apache-HttpClient
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-324&#039;&gt;TFJ-324&lt;/a&gt;] -         streaming support filtering by locations
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-331&#039;&gt;TFJ-331&lt;/a&gt;] -         TwitterException should implement TwitterResponse
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-335&#039;&gt;TFJ-335&lt;/a&gt;] -         support  feature-specific rate limit information
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-336&#039;&gt;TFJ-336&lt;/a&gt;] -         support friendships/incoming and friendships/outgoing
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Task
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-332&#039;&gt;TFJ-332&lt;/a&gt;] -         move twitter4j.TimeSpanUtil to twitter4j.util.*
&lt;/li&gt;
&lt;/ul&gt;
        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2010/04/19/twitter4j_2_1_2_released_with_latest_api_support.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2010/04/19/twitter4j_2_1_2_released_with_latest_api_support.html</guid>
    <pubDate>Sun, 18 Apr 2010 15:28:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Twitter4J 2.1.1 is out! - with Geo Methods support, improved Android compatibility and more..</title>
    <link>http://samuraism.jp/blog/2010/04/02/twitter4j_2_1_1_is_out_with_geo_methods_support_improved_android_compatibility_and_more.html</link>
    
      
        <description>
          &lt;p&gt;Twitter4J is an open-sourced, mavenized and Google App Engine safe Java library for the Twitter API which is released under the BSD license.&lt;br/&gt;&lt;br/&gt;Twitter4J 2.1.1 is now available for download.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/&#034;&gt;&lt;img border=&#034;2&#034; src=&#034;http://yusuke.homeip.net/diary/images/2009/04/duke-twitter.png&#034;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This version is also available in the Maven central repository.&lt;br/&gt;&lt;a href=&#034;http://repo1.maven.org/maven2/org/twitter4j/&#034;&gt;http://repo1.maven.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;You can also use the snapshot repository.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/maven2/org/twitter4j/&#034;&gt;http://twitter4j.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;

        Release Notes - Twitter4J - Version 2.1.1
    
&lt;h2&gt;        Bug
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-221&#039;&gt;TFJ-221&lt;/a&gt;] -         changing the filter statement causes TwitterException
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-296&#039;&gt;TFJ-296&lt;/a&gt;] -         TwitterException: -1 on Android platform
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-305&#039;&gt;TFJ-305&lt;/a&gt;] -         retry interval seconds is unnecessarily multiplied by 1000
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-308&#039;&gt;TFJ-308&lt;/a&gt;] -         UserList.isPublic() always returns false
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-310&#039;&gt;TFJ-310&lt;/a&gt;] -         TwitterStream methods are declared to throw TwitterException unnecessarily
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-311&#039;&gt;TFJ-311&lt;/a&gt;] -         TwitterStream methods are declared to throw TwitterException unnecessarily
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-321&#039;&gt;TFJ-321&lt;/a&gt;] -         infinite loop in TwitterStream, results 100% cpu utilization
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Improvement
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-148&#039;&gt;TFJ-148&lt;/a&gt;] -         ability to plugin logging frameworks : SLF4J / commons-logging / log4j
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-260&#039;&gt;TFJ-260&lt;/a&gt;] -         follow recommended re-connection policy documented in the Streaming API documentation
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-271&#039;&gt;TFJ-271&lt;/a&gt;] -         JAVA_HOME should not be hard-coded in setEnv.cmd
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-291&#039;&gt;TFJ-291&lt;/a&gt;] -         TwitterException.getStatusCode() returns -1 when the account exceeds its rate limit
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-292&#039;&gt;TFJ-292&lt;/a&gt;] -         clear javadoc warnings
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-294&#039;&gt;TFJ-294&lt;/a&gt;] -         TwitterListener better to have references of TwitterMethod fields for ease of coding
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-295&#039;&gt;TFJ-295&lt;/a&gt;] -         getOAuthAccessToken should throw IllegalStateException when no request token is available.
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-297&#039;&gt;TFJ-297&lt;/a&gt;] -         configure Twitter4J without specifying any system property
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-300&#039;&gt;TFJ-300&lt;/a&gt;] -         Introduce User.getStatus() deprecate all other status related getters
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-301&#039;&gt;TFJ-301&lt;/a&gt;] -         TwitterFactory should return strongly typed object for SpringFramwork friendliness
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-307&#039;&gt;TFJ-307&lt;/a&gt;] -         add bin/oauthUpdate.sh/cmd
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-309&#039;&gt;TFJ-309&lt;/a&gt;] -         move twitter4j.conf/http/logging/org.json to twitter4j.internal.*
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-318&#039;&gt;TFJ-318&lt;/a&gt;] -         OAuthAuthorization.toString() / BasicAuthorization.toString() shouldn&#039;t include consumerSecret / password in the result
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-319&#039;&gt;TFJ-319&lt;/a&gt;] -         twitter4j.internal.http.HttpResponse#asJSONObject calls asString() unnecessarily
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-323&#039;&gt;TFJ-323&lt;/a&gt;] -         getOAuthAccessToken should return a cached access token instead of throw an IllegalStateException in the case the instance is already OAuth&#039;ed
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        New Feature
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-204&#039;&gt;TFJ-204&lt;/a&gt;] -         Support locale, max_id, since and until parameter for Search API
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-233&#039;&gt;TFJ-233&lt;/a&gt;] -         support local trends methods
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-241&#039;&gt;TFJ-241&lt;/a&gt;] -         async support of list methods
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-242&#039;&gt;TFJ-242&lt;/a&gt;] -         async support of list subscribers methods
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-243&#039;&gt;TFJ-243&lt;/a&gt;] -         async support of list members methods
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-302&#039;&gt;TFJ-302&lt;/a&gt;] -         introduce Twitter.getScreenName() &amp;amp; Twitter.getId()
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-303&#039;&gt;TFJ-303&lt;/a&gt;] -         xauth support (acquiring Access token with Basic credentials)
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-306&#039;&gt;TFJ-306&lt;/a&gt;] -         support links stream
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-312&#039;&gt;TFJ-312&lt;/a&gt;] -         streaming API example
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-313&#039;&gt;TFJ-313&lt;/a&gt;] -         make TwitterFactory(Configuration) public
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-317&#039;&gt;TFJ-317&lt;/a&gt;] -         Geo methods support
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-320&#039;&gt;TFJ-320&lt;/a&gt;] -         support users/lookup
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-322&#039;&gt;TFJ-322&lt;/a&gt;] -         support users/suggestions users/suggestions/slug
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Task
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-222&#039;&gt;TFJ-222&lt;/a&gt;] -         separate examples classes from Twitter4J core project
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-225&#039;&gt;TFJ-225&lt;/a&gt;] -         setup twitter4j.org
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-304&#039;&gt;TFJ-304&lt;/a&gt;] -         include &amp;quot;Powered by&amp;quot; badge in the distribution
&lt;/li&gt;
&lt;/ul&gt;
    

        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2010/04/02/twitter4j_2_1_1_is_out_with_geo_methods_support_improved_android_compatibility_and_more.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2010/04/02/twitter4j_2_1_1_is_out_with_geo_methods_support_improved_android_compatibility_and_more.html</guid>
    <pubDate>Thu, 01 Apr 2010 17:14:00 GMT</pubDate>
  </item>
  
  <item>
    <title>Twitter4J 2.1.0 released - with latest API support and performance / memory footprint improvements</title>
    <link>http://samuraism.jp/blog/2010/03/02/twitter4j_2_1_0_released_with_latest_api_support_and_performance_memory_footprint_improvements.html</link>
    
      
        <description>
          &lt;p&gt;Twitter4J is an open-sourced, mavenized and Google App Engine safe Java library for the Twitter API which is released under the BSD license.&lt;br/&gt;&lt;br/&gt;Twitter4J 2.1.0 is now available for download.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/&#034;&gt;&lt;img border=&#034;2&#034; src=&#034;http://yusuke.homeip.net/diary/images/2009/04/duke-twitter.png&#034;/&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;This version is also available in the Maven central repository.&lt;br/&gt;&lt;a href=&#034;http://repo1.maven.org/maven2/org/twitter4j/&#034;&gt;http://repo1.maven.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;You can also use the snapshot repository.&lt;br/&gt;&lt;a href=&#034;http://twitter4j.org/maven2/org/twitter4j/&#034;&gt;http://twitter4j.org/maven2/org/twitter4j/&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;

        Release Notes - Twitter4J - Version 2.1.0
    
&lt;h2&gt;        Bug
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-206&#039;&gt;TFJ-206&lt;/a&gt;] -         need to disambiguate methods showUser(integer-userid) and showUser(screen-name)
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-207&#039;&gt;TFJ-207&lt;/a&gt;] -         need to disambiguate methods ***ById(int id) and ***ByScreenName(String sn)
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-213&#039;&gt;TFJ-213&lt;/a&gt;] -         400 bad request when using within near: or within: operator.
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-215&#039;&gt;TFJ-215&lt;/a&gt;] -         geo lat/long are always -1
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-228&#039;&gt;TFJ-228&lt;/a&gt;] -         Unable to &amp;quot;close&amp;quot; a TwitterStream
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-230&#039;&gt;TFJ-230&lt;/a&gt;] -         DirectMessage.getSender()/getReceiver() always return null
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-235&#039;&gt;TFJ-235&lt;/a&gt;] -         Reply to Retweet does showe inReplyToStatusId as -1
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-236&#039;&gt;TFJ-236&lt;/a&gt;] -         twitter4j.Twitter doesn&#039;t implement Serializable properly
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-257&#039;&gt;TFJ-257&lt;/a&gt;] -         rateLimitStatus doesn&#039;t work with OAuth
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-262&#039;&gt;TFJ-262&lt;/a&gt;] -         unexpected TwitterException(statusCode=-1) on Android
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-282&#039;&gt;TFJ-282&lt;/a&gt;] -         java.lang.IllegalArgumentExcep tion: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: &amp;quot; s&amp;quot;
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-288&#039;&gt;TFJ-288&lt;/a&gt;] -         getFollowerIds needs authentication
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Improvement
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-162&#039;&gt;TFJ-162&lt;/a&gt;] -         use json to reduce computing / network footprint
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-217&#039;&gt;TFJ-217&lt;/a&gt;] -         geo location as a class
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-219&#039;&gt;TFJ-219&lt;/a&gt;] -         support improved retweet format
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-224&#039;&gt;TFJ-224&lt;/a&gt;] -         verifyCredentials: clarify when TwitterException will be thrown
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-234&#039;&gt;TFJ-234&lt;/a&gt;] -         cursor-based pagination for statuses/friends and statuses/followers.
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-239&#039;&gt;TFJ-239&lt;/a&gt;] -         rate limit status as a class
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-240&#039;&gt;TFJ-240&lt;/a&gt;] -         retire featured method
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-244&#039;&gt;TFJ-244&lt;/a&gt;] -         introduce a constant type class - TwitterMethod for AsyncTwitter exception handling
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-245&#039;&gt;TFJ-245&lt;/a&gt;] -         typo: deliverlyDevice -&amp;gt; deliveryDevice
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-246&#039;&gt;TFJ-246&lt;/a&gt;] -         retire async methods that don&#039;t take TwitterListener
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-250&#039;&gt;TFJ-250&lt;/a&gt;] -         add handy setter methods to Query class that returns itself to make it possible to generate a query instance in one line
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-253&#039;&gt;TFJ-253&lt;/a&gt;] -         methods that are API rate limited but are not requiring authentication need to pass credentials (if availalbe) to get whitelisted properly
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-261&#039;&gt;TFJ-261&lt;/a&gt;] -         introduce interface set which contain pre-categorized method set
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-263&#039;&gt;TFJ-263&lt;/a&gt;] -         define interfaces per method sets
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-264&#039;&gt;TFJ-264&lt;/a&gt;] -         rename ratelimitStatus() to getRateLimitStatus(), ratelimitStatusAsync() to getRateLimitStatusAsync()
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-266&#039;&gt;TFJ-266&lt;/a&gt;] -         mask Basic Authentication header in the debug output 
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-267&#039;&gt;TFJ-267&lt;/a&gt;] -         be ready for the new search api response code
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-273&#039;&gt;TFJ-273&lt;/a&gt;] -         use SSL by default when Basic Authentication is enabled.
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-274&#039;&gt;TFJ-274&lt;/a&gt;] -         ability to specify streaming api specific http read timeout value
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-276&#039;&gt;TFJ-276&lt;/a&gt;] -         introduce Interfaces for data objects
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-277&#039;&gt;TFJ-277&lt;/a&gt;] -         extract interfaces from data objects
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-278&#039;&gt;TFJ-278&lt;/a&gt;] -         ensure *JSONImpl are treating all fields as optional
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-279&#039;&gt;TFJ-279&lt;/a&gt;] -         User.getProfileBackgroundTile() should return boolean
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-283&#039;&gt;TFJ-283&lt;/a&gt;] -         retire Device#IM as &amp;quot;IM&amp;quot; is not a supported notification device anymore
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-284&#039;&gt;TFJ-284&lt;/a&gt;] -         separate AsyncTwitter from Twitter
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        New Feature
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-50&#039;&gt;TFJ-50&lt;/a&gt;] -         support update_profile_image method
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-51&#039;&gt;TFJ-51&lt;/a&gt;] -         support update_profile_background_image method
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-152&#039;&gt;TFJ-152&lt;/a&gt;] -         introduce a listener interface that can grab http responses
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-171&#039;&gt;TFJ-171&lt;/a&gt;] -         listener for rate limit status changes
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-210&#039;&gt;TFJ-210&lt;/a&gt;] -         ability to handle streaming api&#039;s deletion and limitation notices
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-214&#039;&gt;TFJ-214&lt;/a&gt;] -         list API support
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-223&#039;&gt;TFJ-223&lt;/a&gt;] -         support spam reporting API
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-226&#039;&gt;TFJ-226&lt;/a&gt;] -         use versioned URL
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-227&#039;&gt;TFJ-227&lt;/a&gt;] -         introduce a tiny utility class that produces &amp;quot;a minutes ago&amp;quot; like strings from Date objects
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-229&#039;&gt;TFJ-229&lt;/a&gt;] -         ability to get Retry-After info
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-231&#039;&gt;TFJ-231&lt;/a&gt;] -         introduce more flexible configuration scheme, make Twitter class immutable
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-237&#039;&gt;TFJ-237&lt;/a&gt;] -         support list members methods
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-238&#039;&gt;TFJ-238&lt;/a&gt;] -         support list subscribers methods
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-248&#039;&gt;TFJ-248&lt;/a&gt;] -         support friendships/show
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-249&#039;&gt;TFJ-249&lt;/a&gt;] -         support users/search
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-270&#039;&gt;TFJ-270&lt;/a&gt;] -         include geo location info in the search result
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-280&#039;&gt;TFJ-280&lt;/a&gt;] -         ability to configure baseURLs
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-289&#039;&gt;TFJ-289&lt;/a&gt;] -         async support spam reporting API
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-290&#039;&gt;TFJ-290&lt;/a&gt;] -         async support of support users/search API
&lt;/li&gt;
&lt;/ul&gt;
    
&lt;h2&gt;        Task
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-113&#039;&gt;TFJ-113&lt;/a&gt;] -         retire deprecated methods
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-220&#039;&gt;TFJ-220&lt;/a&gt;] -         remove User#sendDirectMessage()
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-255&#039;&gt;TFJ-255&lt;/a&gt;] -         remove getPublicTimeline(long sinceId) as the parameter is not documented anymore
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-256&#039;&gt;TFJ-256&lt;/a&gt;] -         deprecate(or remove?) getFriendsTimeline()
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-258&#039;&gt;TFJ-258&lt;/a&gt;] -         Streaming API example
&lt;/li&gt;
&lt;li&gt;[&lt;a href=&#039;http://yusuke.homeip.net/jira/browse/TFJ-265&#039;&gt;TFJ-265&lt;/a&gt;] -         ensure AsyncTwitter class is truly serializable
&lt;/li&gt;
&lt;/ul&gt;

        </description>
      
      
    
    
    
    <comments>http://samuraism.jp/blog/2010/03/02/twitter4j_2_1_0_released_with_latest_api_support_and_performance_memory_footprint_improvements.html#comments</comments>
    <guid isPermaLink="true">http://samuraism.jp/blog/2010/03/02/twitter4j_2_1_0_released_with_latest_api_support_and_performance_memory_footprint_improvements.html</guid>
    <pubDate>Tue, 02 Mar 2010 08:40:00 GMT</pubDate>
  </item>
  
  </channel>
</rss>

