- JavaClassReader jk_new_structure
authorvranyj1
Tue, 14 Aug 2012 16:03:28 +0000
branchjk_new_structure
changeset 1602 70859ab11828
parent 1601 45b54f02dad8
child 1603 43e382ba0a64
- JavaClassReader changed: #readFile:ignoring:
src/JavaClassReader.st
--- 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