--- a/src/JavaClassReader.st Tue Aug 14 13:11:52 2012 +0000
+++ b/src/JavaClassReader.st Tue Aug 14 16:03:28 2012 +0000
@@ -312,34 +312,36 @@
"Modified: / 14-08-2012 / 02:17:59 / jv"
!
-readFile: aFilename ignoring: classesBeingLoaded
+readFile:aFilename ignoring:classesBeingLoaded
"reads a class from aFilename and returns it.
The JavaClass is NOT installed as global and unresolved
refs are NOT patched."
| inStream javaClass |
- [ JavaVM commonOpenStreamUsing: [ inStream := aFilename asFilename readStream ] ] on: StreamError
- do: [
- :ex |
- Logger
- log: ('no file: ' , aFilename asString)
- severity: #error
- facility: 'JVM'.
- self halt.
- ^ nil
-].
- javaClass := self readStream: inStream ignoring: classesBeingLoaded.
- (javaClass notNil and: [ javaClass isJavaClass ]) ifTrue: [
- javaClass setBinaryFilePath: (inStream pathName).
+ [
+ JavaVM commonOpenStreamUsing:[ inStream := aFilename asFilename readStream ]
+ ] on:StreamError do:[:ex |
+ Logger
+ log:('cannot read .class file: ' , ex description) severity:#error facility:'JVM'.
+ self breakPoint: #jv.
+ ^ nil
].
- inStream close.
+
+ [
+ javaClass := self readStream:inStream ignoring:classesBeingLoaded.
+ (javaClass notNil and:[ javaClass isJavaClass ]) ifTrue:[
+ javaClass setBinaryFilePath:(inStream pathName).
+ ].
+ ] ensure:[
+ inStream close.
+ ].
^ javaClass.
"Created: / 15-04-1996 / 14:58:53 / cg"
"Modified: / 09-05-1998 / 01:44:24 / cg"
- "Modified: / 30-10-2011 / 18:01:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 14-08-2012 / 02:17:26 / jv"
+ "Modified: / 14-08-2012 / 17:08:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
readStream: aStream