DataInputStream in = null; try { in = new DataInputStream(new BufferedInputStream(new FileInputStream(fileName))); ClassParser classParser = new ClassParser(in, null, new SingleFileCodeBaseEntry(this)); ClassInfo classInfo = classParser.parse(); resourceName = classInfo.getClassDescriptor().toResourceName(); } catch (IOException e) { resourceName = fileName; } catch (CheckedAnalysisException e) { resourceName = fileName; } finally { if (in != null) { IO.close(in); } }
	String getResourceName() {		if (!resourceNameKnown) {			// The resource name of a classfile can only be determined by reading			// the file and parsing the constant pool.			// If we can't do this for some reason, then we just			// make the resource name equal to the filename.						DataInputStream in = null;			try {				in = new DataInputStream(new BufferedInputStream(new FileInputStream(fileName)));				ClassParser classParser = new ClassParser(in, null, new SingleFileCodeBaseEntry(this));				ClassInfo classInfo = classParser.parse();				resourceName = classInfo.getClassDescriptor().toResourceName();			} catch (IOException e) {				resourceName = fileName;			} catch (CheckedAnalysisException e) {				resourceName = fileName;			} finally {				if (in != null) {					IO.close(in);				}			}			resourceNameKnown = true;		}		return resourceName;	}