protected boolean isThreadCompatible(Object[] targets) { if (targets.length == 1) { return true; } // check if frames from same thread Set<IThread> threads = new HashSet<IThread>(targets.length); for (int i = 0; i < targets.length; i++) { Object object = targets[i]; IStackFrame frame = null; if (object instanceof IStackFrame) { frame = (IStackFrame) object; } else if (object instanceof IAdaptable) { frame = ((IAdaptable) object).getAdapter(IStackFrame.class); } if (frame != null) { if (!threads.add(frame.getThread())) { return false; } } } return true; }