List<String> (final String stratum) { if (mySourcePaths == null) { mySourcePaths = new ArrayList<>(); final SMAPInfo smapInfo = getSmapInfo(); if (smapInfo == null) { final ClassReader reader = myVirtualMachine.getReader(myType); reader.accept(new ClassVisitor(Opcodes.API_VERSION) { @Override public void visitSource(String source, String debug) { mySourcePaths.add(source); } }, 0); } else { for (SMAPInfo.FileInfo info : smapInfo.getStratum(stratum).getFileInfos()) { final String path = info.getPath(); if (path != null) { mySourcePaths.add(path); } } } } return mySourcePaths; }