public void showURL(String urls) { if (urls.startsWith(OPEN_THREADS_URL)) { urls = urls.substring(OPEN_THREADS_URL.length()); String parts[] = urls.split("\\|"); // NOI18N String className = parts[0]; String method = parts[1]; int linenumber = Integer.parseInt(parts[2]); GoToSource.openSource(heapFragmentWalker.getHeapDumpProject(), className, method, linenumber); } else if (urls.startsWith(INSTANCE_URL_PREFIX)) { urls = urls.substring(INSTANCE_URL_PREFIX.length()); String[] id = urls.split("/"); // NOI18N long instanceId = Long.parseLong(id[2]); Instance i = heapFragmentWalker.getHeapFragment().getInstanceByID(instanceId); if (i != null) { heapFragmentWalker.getClassesController().showInstance(i); } else { ProfilerDialogs.displayError( Bundle.AnalysisController_CannotResolveInstanceMsg(id[1], id[0])); } } else if (urls.startsWith(CLASS_URL_PREFIX)) { urls = urls.substring(CLASS_URL_PREFIX.length()); String[] id = urls.split("/"); // NOI18N long jclsid = Long.parseLong(id[1]); JavaClass c = heapFragmentWalker.getHeapFragment().getJavaClassByID(jclsid); if (c != null) { heapFragmentWalker.getClassesController().showClass(c); } else { ProfilerDialogs.displayError(Bundle.AnalysisController_CannotResolveClassMsg(id[0])); } } else if (urls.startsWith(THREAD_URL_PREFIX)) { urls = urls.substring(THREAD_URL_PREFIX.length()); String[] id = urls.split("/"); // NOI18N long threadid = Long.parseLong(id[1]); showInThreads(heapFragmentWalker.getHeapFragment().getInstanceByID(threadid)); } }