NIO SelectionKey attachment()空指针错误

Channel注册到Selector时添加了一个Object:

serverSocketChannel1.register(selector, SelectionKey.OP_ACCEPT, num[0]); 

后来取这个Object:

selectionKey.attachment();

出现空指针错误:

Exception in thread "main" java.lang.NullPointerException

很奇怪,后来发现第一次注册时添加了Object,后来注册时没有添加,导致了空指针错误:

client.register(selector, SelectionKey.OP_READ);

每次注册都添加Object,就不会有这个错误了:

client.register(selector, SelectionKey.OP_READ, num); 
时间: 2024-10-29 04:19:19

NIO SelectionKey attachment()空指针错误的相关文章

空指针错误 java.lang.NullPointerException

使用基本的JAVA数据类型,变量的值要么已经是默认值,如果没有对其正常赋值,程序便 不能通过编译,因此使用基本的JAVA数据类型(double,float,boolean,char,int,long)一般不会引起空指针异常.由此 可见,空指针异常主要跟与对象的操作相关. 下面先列出了可能发生空指针异常的几种情况及相应解决方案: 不管对象是否为空就直接开始使用. (JSP)代码段1: out.println(request.getParameter("username")); 描述: 代

Tomcat8.5配置https启动报空指针错误

tomcat8.5版本和tomcat8.0有了很大的区别,默认的server.xml中https的配置方式也有了变化: <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" secure="true" URIEncoding="UTF-8" useBodyEncodi

获取表单信息,进行对比时的空指针错误

在进行多条件查询的时候会用到多个输入框,在进行实际操作的时候可能会让一个输入框为空,但是,如果还是用之前字符串中的(.equals)判断的话就会出现空指针错误 就如: request.getParameter("表单中input属性的名字"); 如果此时表单在提交的时候此输入框中没有输入信息,当你去做判断的时候就会出错 if(a.equals(request.getParameter("表单中input属性的名字"))) 或if(request.getParamet

JDK NIO SelectionKey bug

此bug项目中使用elasticSearch中出现的,原因是,nio事件选择器,在特性内核下以及jdk6版本中,出现不hold线程,死循环获取事件的bug,导致cup使用率过高: 此bug在官网已被修复:http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6403933 如果不升级版本, System.setProperty(“org.elasticsearch.common.netty.epollBugWorkaround”,true); 增

Xamarin 与VS2015RC(xamarin 3.11.450) 报空指针错误。

在Android开发中发现的一个“初步认为是调试器的bug”. 于早些时候发布在公司论坛上,传送门: http://www.newlifex.com/showtopic-1400.aspx 使用vs2015RC进行xamarin.Android开发的时候 有时会莫名其妙的报空引用异常 或Android报错位置异常. 先后2次卸载VS2015.改用2013后发现正常, 目前有两个异常位置不确定 1.一是VS2015rc版本编译器的问题(根据开发环境 猜测可能性30%-50%) 2.二是xamari

NIO SelectionKey中定义的4种事件

SelectionKey.OP_ACCEPT —— 接收连接继续事件,表示服务器监听到了客户连接,服务器可以接收这个连接了 SelectionKey.OP_CONNECT —— 连接就绪事件,表示客户与服务器的连接已经建立成功 SelectionKey.OP_READ —— 读就绪事件,表示通道中已经有了可读的数据,可以执行读操作了(通道目前有数据,可以进行读操作了) SelectionKey.OP_WRITE —— 写就绪事件,表示已经可以向通道写数据了(通道目前可以用于写操作) 这里 注意,

hadoop jps 出现空指针错误

在hadoop中安装jdk软件以后出现如下问题: 错误描述 [[email protected] jdk1.8.0_181]$ ./bin/jps Exception in thread "main" java.lang.NullPointerException at sun.jvmstat.perfdata.monitor.protocol.local.LocalVmManager.activeVms(LocalVmManager.java:148) at sun.jvmstat.p

空指针错误悼念与分析

关于@Autowired注入空指针问题的解决(利用Bean的生命周期) @Autowired注解都在构造函数之后,而如果一个对象像下面代码一样声明(private XXX = new XXX() 直接在类中声明)的话,成员变量是在构造函数之前进行初始化的,甚至可以作为构造函数的参数. 即 成员变量初始化 -> Constructor -> @Autowired 所以,在这个时候如果成员变量初始化时调用了利用@Autowired注解初始化的对象时,必然会报空指针异常的啊 原文地址:https:/

新人HelloAndroid onCreate 空指针错误

============问题描述============ 按照教程来的,它自己生成的框架竟然有问题!!!简直了...请大神解答! 代码如下:(MainActivity.java) package com.example.hello1; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; p