Jayon/weibo4j

致命的多用户的多线程并发bug问题!!!weibo4j-oauth2-beta2.0.zip

Opened this issue · 9 comments

What steps will reproduce the problem?
weibo4j-oauth2-beta2.0.zip的提交token的方式存在致命bug, 
再多个微博帐号,并发请求sina微博的时候,会出现致命错误
1.  weibo4j.Weibo.java类中client定义为单例
    static HttpClient client = new HttpClient();
2.  多个微博帐号,请求sina微博的时候,设置
    public synchronized void setToken(String token) {
        client.setToken(token);
    }
    相当于是设置了全局的token值,则多个帐号并发请求sina的时候,会导致A帐号的内容会由B帐号发出!!!
3.  该版本的sdk根本不支持多微博帐号的多线程并发!!! 
请大家谨慎使用!!!
    (该不会是sina不愿意支持多微博帐号使用,才故意如此设计???)


What is the expected output? What do you see instead?
请新浪及时更新这个bug, 
或注明该问题,避免大家盲目使用!!!


Original issue reported on code.google.com by binliang...@gmail.com on 16 Mar 2012 at 6:19

楼上的,weibo4j不是新浪的官方SDK,或者说不是新浪的开发人�
��做的。
而是民间版,将就着用用吧。。。
觉得不好用,自己看一下协议,学习下weibo4j,自己写一个吧�
��
或者你申请下开发者,贡献下代码。。。

Original comment by narit...@gmail.com on 23 Apr 2012 at 5:10

-_-#  居然不是sina官方版本的... sina还把链接指过来 
真有他们的。

临时的方案是将token设置在ThreadLocal中,至少目前各个线程中�
��按次序设置token然后调用sina api的业务场景下, 
在这种情况下是没有问题的了。 
可以很少修改,而支持目前的业务需求。

但一个线程下,若存在同时设置多个不同token的场景,就要修
改多一些的代码。这个暂时没次业务需求。

Original comment by binliang...@gmail.com on 23 Apr 2012 at 5:52

估计就是新浪开发的,故意做成民间版本而已吧。看几个平��
�就这么玩。不过这个写法确实让人头痛啊。

Original comment by dizhi...@gmail.com on 13 Aug 2012 at 10:01

放ThreadLocal性能会很差。
做成无状态的就可以了。

Original comment by hanzheng...@gmail.com on 13 Sep 2012 at 2:29

trunk也没有做成无状态的。。。
把Weibo做成一个对象池吧。。。

Original comment by hanzheng...@gmail.com on 13 Sep 2012 at 3:16

项目刚刚中招,临时方案是做了线程同步,性能可想而知,��
�划修改中

Original comment by zhenggan...@gmail.com on 14 Sep 2012 at 10:45

我去. 连线程安全都木有啊. 这尼玛是给人用的吗.

自己写吧. 就那点东西. 用到神马写神马.

Original comment by ase...@gmail.com on 25 Sep 2013 at 4:51

真尼玛中了sina的大招了. 一技必杀啊. 我勒个去. 
我有强迫症. 这种垃圾代码我无法让他生存啊.

操蛋啊. google的变态验证码有特么11位啊. 跟手机号有一拼啊.

Original comment by ase...@gmail.com on 25 Sep 2013 at 4:57

真尼玛中了sina的大招了. 一技必杀啊. 我勒个去. 
我有强迫症. 这种垃圾代码我无法让他生存啊.

操蛋啊. google的变态验证码有特么11位啊. 跟手机号有一拼啊.

Original comment by ase...@gmail.com on 25 Sep 2013 at 4:57