Java SE7并发-数据未到达原子引用<;地图…>;

Java SE7并发-数据未到达原子引用<;地图…>;,java,concurrency,Java,Concurrency,仍在努力解决这个线程/货币问题。谢谢你的帮助。 程序分为三个类,Analysis打开一个文件,从文件中提取一行并使用ForkJoinPool将其传递给可运行类,然后等待池完成,然后将数据输出到另一个文件,RowCheck是可运行类,它对数据进行排序,然后将其传递给最终类data,它有一个AtomicReference>>来在输出之前组织数据。 分析: threadmgmt.execute(thread); ...close loop...close try block...exception h

仍在努力解决这个线程/货币问题。谢谢你的帮助。 程序分为三个类,Analysis打开一个文件,从文件中提取一行并使用ForkJoinPool将其传递给可运行类,然后等待池完成,然后将数据输出到另一个文件,RowCheck是可运行类,它对数据进行排序,然后将其传递给最终类data,它有一个AtomicReference>>来在输出之前组织数据。 分析:

threadmgmt.execute(thread);
...close loop...close try block...exception handling...
while(threadmgmt.hasQueuedSubmissions()){ }
        while(Data.isBusy()){
    if(threadmgmt.isQuiescent()){
        Data.setBusy(false); }   }
...try block for output...
output = Data.getArray(); // This is where the error is called from

Exception in thread "main" java.lang.NullPointerException
at com.hcue.csvanalysis.Data.getArray(Data.java:56)
at com.hcue.csvanalysis.Analysis.main(Analysis.java:55)

毫不奇怪,它是一个NullPointerException,因为原子引用没有被触动,尽管RowCheck在之前已经在60多个线程中调用了该方法。您有什么建议?

您没有显示足够的代码,我们无法识别您的问题。你能至少显示一下
数据.getArray
吗?很高兴。。。数据。getArray:很高兴。。。Data.getArray:
public static Map getArray(){Map answer=new HashMap();Map temp=Data.get();HashSet collection=(HashSet)temp.keySet();for(String iteration:collection){answer.put(iteration,temp.get(iteration));}返回答案;}