hbase 执行批量删除时出现错误:
  1. Exception in thread "main" java.lang.UnsupportedOperationException
  2. at java.util.AbstractList.remove(AbstractList.java:161)
  3. at org.apache.hadoop.hbase.client.HTable.delete(HTable.java:852)

这种异常其实很常见,remove操作不支持,为什么会出现不支持的情况呢?检查代码时发现传参list 是通过Arrays.asList()创建的,

很明显,问题就是这个地方导致的,Arrays.asList()返回是实际上是Arrays类内部的一个实现ArrayList:

  1. /**
  2. * @serial include
  3. */
  4. private static class ArrayList<E> extends AbstractList<E>
  5. implements RandomAccess, java.io.Serializable
  6. {
  7. private static final long serialVersionUID = -2764017481108945198L;
  8. private final E[] a;
  9.  
  10. ArrayList(E[] array) {
  11. if (array==null)
  12. throw new NullPointerException();
  13. a = array;
  14. }
  15.  
  16. public int size() {
  17. return a.length;
  18. }
  19.  
  20. public Object[] toArray() {
  21. return a.clone();
  22. }
  23.  
  24. public <T> T[] toArray(T[] a) {
  25. int size = size();
  26. if (a.length < size)
  27. return Arrays.copyOf(this.a, size,
  28. (Class<? extends T[]>) a.getClass());
  29. System.arraycopy(this.a, 0, a, 0, size);
  30. if (a.length > size)
  31. a[size] = null;
  32. return a;
  33. }
  34.  
  35. public E get(int index) {
  36. return a[index];
  37. }
  38.  
  39. public E set(int index, E element) {
  40. E oldValue = a[index];
  41. a[index] = element;
  42. return oldValue;
  43. }
  44.  
  45. public int indexOf(Object o) {
  46. if (o==null) {
  47. for (int i=0; i<a.length; i++)
  48. if (a[i]==null)
  49. return i;
  50. } else {
  51. for (int i=0; i<a.length; i++)
  52. if (o.equals(a[i]))
  53. return i;
  54. }
  55. return -1;
  56. }
  57.  
  58. public boolean contains(Object o) {
  59. return indexOf(o) != -1;
  60. }
  61. }

Arrays.ArrayList继承至AbstractList,AbstractList本身是不支持删除操作的,Arrays.ArrayList也没有重现remove方法,因此,如果通过Arrays.asList()创建的ArrayList,如果调用了remove方法,则会出现UnsupportedOperationException异常。

Hbase delete遇到的常见异常: Exception in thread "main" java.lang.UnsupportedOperationException的更多相关文章

  1. Java常见异常:Exception in thread "main" java.lang.NoClassDefFoundError

    在某一路径下执行编译好的class文件出错. 异常如下: E:\liwy>java Test98 Exception in thread "main" java.lang.N ...

  2. Sqoop异常:Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject

    18/12/07 01:09:03 INFO mapreduce.ImportJobBase: Beginning import of staffException in thread "m ...

  3. dom4j使用xpath报异常 Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext

    Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext      ...

  4. unit测试出现异常:Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.commons.util

    在进行单元测试时,测试出现异常 Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform ...

  5. 异常Exception in thread "AWT-EventQueue-XX" java.lang.StackOverflowError

    今天太背了,bug不断,检查到最后都会发现自己脑残了,粗心写错,更悲剧的是写错的时候还不提示错. 刚才有遇到一个问题,抛了这个异常Exception in thread "AWT-Event ...

  6. CXF安装和配置时出现Exception in thread "main" java.lang.UnsupportedClassVersionError:异常?

    异常信息: C:\Users\>wsdl2java -h Exception in thread "main" java.lang.UnsupportedClassVersi ...

  7. 【异常】idea执行Main方法出现 Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest

    一.异常复现步骤 1)首先得是一个Spring MVC项目 注:Spring Boot项目有内置的web 容器,不会出现该问题 2)main方法存在于使用HttpServletRequest类的类中 ...

  8. Java异常理解之Exception in thread “main“ java.lang.ArrayIndexOutOfBoundsException

    这个异常是Java中的数组越界问题 当你使用不合法的索引访问数组是会出现这种错误例如: class Solution { public static int climbStairs(int n) { ...

  9. Jenkins的slave异常:Exception in thread "main" java.lang.ClassNotFoundException: hudson.remoting.Launcher

    当任务分配到slave上执行时,报如下错误: Parsing POMs Established TCP socket on 38257 maven33-agent.jar already up to ...

随机推荐

  1. JS 金钱格式化

    JavaScript Money Format(用prototype对Number进行扩展) Number.prototype.formatMoney = function (places, symb ...

  2. 教你一步学会安装Hue

    一.简介 hue是一个开源的apache hadoop ui系统,由cloudear desktop演化而来,最后cloudera公司将其贡献给了apache基金会的hadoop社区,它基于pytho ...

  3. copyEvens

    public int[] copyEvens(int[] nums, int count) { int newIndex=0; int i=0; int newArray[] = new int[co ...

  4. Django笔记 —— 入门简介

    最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...

  5. 【视觉SLAM14讲】ch4心得与课后题答案【仅供参考】

    答案: Q1:验证SO(3) SE(3) Sim(3)关于乘法成群 SO(3) : 由P64最开始可知,乘法代表了旋转,而SO(3)是旋转矩阵的集合, SE(3)  Sim(3)  同理(最基础的部分 ...

  6. 【志银】Win764位配置Github环境及将代码部署到Github pages-志银强势总结

    (软件及教程下载分享:链接:http://pan.baidu.com/s/1dFysay9 密码:pug0) 1-安装Git-2.9.2-64-bit.exe(解压安装文件,运行安装程序,除了记得修改 ...

  7. springboot09 事务 H2数据库

    一.事务 1. 事务介绍 事务可以包含多个操作步骤 , 如果有一个步骤失败,那么这一组都以失败告终. 事务是指包含多个微小逻辑单元的一组操作, 只要其中有一个逻辑失败了,那么这一组操作就全部以失败告终 ...

  8. C++ 11 智能指针 lamda 以及一个 围棋程序

    lamda表达式使用 char* p = "Hello world"; ,nl = ; for_each(p,p+, [&](char i){ if(i=='e') ne+ ...

  9. 当发送ICMP包的时候不一定能收得到(arp已经应答了)【复现不了了】

    arp已经应答了,然后再返回ICMP应答的时候竟然不被回复. 其实这里想想也很容易想清楚: 虽然arp给了回复,但是真正到ICMP报文到的时候,我理解报文到的时候,我理解还是要进行与本地网络兑换的,本 ...

  10. POJ 1149 PIGS | 最大流问题

    参考了这个PDF 第一道网络流啊!感动 #include<cstdio> #include<algorithm> #include<cstring> #includ ...