在学习java nio的过程中发现某些情况下使用该方法会导致程序阻塞,(情况:服务器,Linux;客户端,WIN10)

java.net.InetAddress.getHostName()

阻塞情况如下:

"TCP:Selector@server:/192.168.0.117:18300" prio=6 tid=0x0000000007eff800 nid=0x3674 runnable [0x00000000093ae000]
java.lang.Thread.State: RUNNABLE
at java.net.Inet6AddressImpl.getHostByAddr(Native Method)
at java.net.InetAddress$1.getHostByAddr(InetAddress.java:880)
at java.net.InetAddress.getHostFromNameService(InetAddress.java:559)
at java.net.InetAddress.getHostName(InetAddress.java:502)
at java.net.InetAddress.getHostName(InetAddress.java:474)
at com.gifisan.nio.component.AbstractEndPoint.getRemoteHost(AbstractEndPoint.java:69)
at com.gifisan.nio.component.AbstractEndPoint.toString(AbstractEndPoint.java:90)
at com.gifisan.nio.common.MessageFormatter.safeObjectAppend(MessageFormatter.java:138)
at com.gifisan.nio.common.MessageFormatter.deeplyAppendParameter(MessageFormatter.java:110)
at com.gifisan.nio.common.MessageFormatter.arrayFormat(MessageFormatter.java:68)
at com.gifisan.nio.common.MessageFormatter.format(MessageFormatter.java:16)
at com.gifisan.nio.component.IOSession.toString(IOSession.java:245)
at org.slf4j.helpers.MessageFormatter.safeObjectAppend(MessageFormatter.java:304)
at org.slf4j.helpers.MessageFormatter.deeplyAppendParameter(MessageFormatter.java:276)
at org.slf4j.helpers.MessageFormatter.arrayFormat(MessageFormatter.java:230)
at org.slf4j.helpers.MessageFormatter.format(MessageFormatter.java:124)
at org.slf4j.impl.Log4jLoggerAdapter.debug(Log4jLoggerAdapter.java:228)
at com.gifisan.nio.common.SLF4JLogger.debug(SLF4JLogger.java:45)
at com.gifisan.nio.component.LoggerSEtListener.sessionOpened(LoggerSEtListener.java:11)
at com.gifisan.nio.component.SessionEventListenerWrapper.sessionOpened(SessionEventListenerWrapper.java:22)
at com.gifisan.nio.component.DefaultTCPEndPoint.<init>(DefaultTCPEndPoint.java:55)
at com.gifisan.nio.connector.TCPSelectionConnector.attachEndPoint(TCPSelectionConnector.java:50)
at com.gifisan.nio.connector.TCPSelectionConnector.finishConnect(TCPSelectionConnector.java:66)
at com.gifisan.nio.connector.TCPSelectionConnector.accept(TCPSelectionConnector.java:40)
at com.gifisan.nio.component.TCPSelectorLoop.accept(TCPSelectorLoop.java:40)
at com.gifisan.nio.component.AbstractSelectorLoop.loop(AbstractSelectorLoop.java:45)
at com.gifisan.nio.component.concurrent.UniqueThread.loop(UniqueThread.java:44)
at com.gifisan.nio.component.concurrent.UniqueThread$1.run(UniqueThread.java:30)
at java.lang.Thread.run(Thread.java:662) Locked ownable synchronizers:
- None

网上找了下有人说是jdk的bug,不过这为直接crashes了,

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6487744

ITEYE:

http://jiajianchao-gmail-com.iteye.com/blog/1597253

文章来源:http://www.cnblogs.com/gifisan/p/5695013.html

[已解决] java.net.InetAddress.getHostName() 阻塞问题的更多相关文章

  1. [已解决] java.net.ConnectException: Connection refused: no further information

    程序抛出这个异常的原因多数是因为在此[host:port]没有监听,那么该如何解决这个问题呢,如下 第一个要做的是看你的host和port是否写错了,如 [ 127.00.1:8080 ] 第二个要看 ...

  2. [已解决] java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.com.yourproject.test_jsp

    同事遇到了一个问题,开始项目运行的好好的,过了一段时间再访问页面会报出如下错误信息(只贴了部分), 这是为啥呢,可能是由于servlet-api版本jar包重复导致的,他项目本身使用了servlet- ...

  3. [已解决] java 增加 ALPN支持

    添加javaVM参数: -Xbootclasspath/p:lib/alpn-boot-8.1.10.v20161026.jar 文章来源:http://www.cnblogs.com/gifisan ...

  4. (已解决)java.lang.NoSuchMethodException: com.kevenwu.pojo.User.<init>()

    搭建ssm框架时报了如下错误,原因是: mybatis在初始化bean的时候需要无参构造器, 如果写了有参构造器,将会把无参构造器覆盖掉,加上一个无参构造器就可以了

  5. 在本地开启了代理,postman可以正常发起外部请求,但Java代码却请求失败,已解决

    在本地开启了代理,postman可以正常发起外部请求,但Java代码却请求失败,已解决 现象:开了vpn访问公司服务器,postman可以正常发起服务器请求,但是java代码请求失败,连接超时.包括在 ...

  6. Java NIO Socket 非阻塞通信

    相对于非阻塞通信的复杂性,通常客户端并不需要使用非阻塞通信以提高性能,故这里只有服务端使用非阻塞通信方式实现 客户端: package com.test.client; import java.io. ...

  7. Java线程唤醒与阻塞

    阻塞指的是暂停一个线程的执行以等待某个条件发生(如某资源就绪),学过操作系统的同学对它一 定已经很熟悉了.Java 提供了大量方法来支持阻塞,下面让我们逐一分析. 转载于:http://blog.cs ...

  8. 使用Notepad++编码编译时报错(已解决?)

    使用Notepad++编码编译时报错(已解决?) 使用Notepad++编码,编译的时候经常会报错,说什么GBK编码啥啥啥~~~但同样的编码用ECLIPSE就没有问题.再有,用记事本把他保存成ANSI ...

  9. Java并发编程:阻塞队列(转载)

    Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable.Vector),也讨论了并发容器(ConcurrentHashMap.CopyOnWriteArrayList), ...

随机推荐

  1. 第一次scrum meeting 报告

    1.第一次scrum meeting确定了我们任务和相应的分配方案,具体分配情况如下: 这是我们团队其中一名成员的任务内容及相应预估时长,其他成员具体分配情况已在TFS上作了相应更新. 第一次scru ...

  2. error CS0016: 未能写入输出文件

    win7 下解决办法: 1.打开C:\Windows ,找到 TEMP 文件夹 2. 进行权限设置,点击编辑,找到 IIS-User,勾选所有权限

  3. dede新建模型中自定义联动类别调用及修改方法

    搜索了好久,没找到一个好的方法,就凑活用这个方法吧.也许只有这个方法比较好 先在后台的“联动类别管理”里新增“类别组”,“类 别 名”填中文,“缓存组名”填英文字母. 在“分类名称”后面增加分类 然后 ...

  4. Windows内核 语言选择注意点

    调用约定: 调用约定指的是函数被调用时,会按照不同规则,翻译成不同的汇编代码.当一个函数被调用时,首先会将返回地址压入堆栈,紧接着会将函数的参数依次压入堆栈.不同的调用约定,会指明不同的参数入栈顺序, ...

  5. js中特有语句-with

    <script type="text/javascript"> /* *为了简化对象调用内容的书写. *可以用js中的特有语句with来完成. *格式 *with{ * ...

  6. Sharepoint 2013 发布功能(Publishing features)

    一.默认情况下,在创建网站集时,只有选择的模板为‘ Publishing Portal(发布门户)’与‘ Enterprise Wiki(企业 Wiki)’时才默认启用发布功能,如下图所示: 二.发布 ...

  7. centos安装后iptables基本设置

    一.首先关闭防火墙#service iptables stop 二.查看状态,确认关闭#service iptables status 三.清除掉防火墙规则#iptables -F#iptables ...

  8. ListView简单使用

    先上效果: 主要实现了Listview的绑定和点击事件.项目资源结构如下: 先创建一个动物类,用来装载数据: Animal类如下: package com.example.simplelistview ...

  9. TypedValue.applyDimension 中dp和sp之间转化的真相

    转载自http://www.cnblogs.com/xilinch/p/4444833.html 最近在看了许多关于dp-px,px-dp,sp-px,px-sp之间转化的博文,过去我比较常用的方式是 ...

  10. UIView 的autoresizingMask属性

    autoresizingMask属性的意思就是自动调整子控件与父控件中间的位置,宽高,定义如下: typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) ...