存档

2013年5月 的存档

不能重用SSLsession问题

2013年5月26日 没有评论

Android 2.3有个bug,需要重新改造SSLSocketFactory,把socket中的impl对象实例中注入带host信息的InetAddress及port。样例代码如下:

@Override
public Socket createSocket(Socket socket, String host, int port,
        boolean autoClose)throws IOException, UnknownHostException {
    Socket sk = xx.getSocketFactory().createSocket(socket, host, port, false);
    //特殊解决方案,解决android 2.3 SSL不能重用session问题
    try {
        Field implFiled = Socket.class.getDeclaredField("impl");
        implFiled.setAccessible(true);
        SocketImpl impl = (SocketImpl) implFiled.get(sk);

        Field addFiled = SocketImpl.class.getDeclaredField("address");
        addFiled.setAccessible(true);
        addFiled.set(impl, InetAddress.getByName(host));

        Field portFiled = SocketImpl.class.getDeclaredField("port");
        portFiled.setAccessible(true);
        portFiled.set(impl, port);

    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }
    return sk;
}
分类: 工作 标签:

Java的不规范用法

2013年5月26日 没有评论

今天看到一个不规范的用法:finally中有return,例子如下:

    public static void main(String[] args) {
        System.out.print(a());
    }

    public static int a() {
        try {
            return 10;
        } catch (Throwable t) {
            return 11;
        } finally {
            return 12;
        }
    }

执行结果是12,说明是以最终的finally返回为准的。

分类: 工作 标签: ,

Oracle性能监控脚本

2013年5月26日 没有评论

当Oracle出现IO瓶颈时,用下面的SQL可以查当前执行的SQL

SELECT osuser, username, sql_text
  from v$session a, v$sqltext b
  where a.sql_address =b.address
  order by address, piece;

顺便附上查到的完整资料:
更多内容…

分类: 工作 标签: , , , ,