class: Autoload
authorStefan Vogel <sv@exept.de>
Mon, 13 May 2013 15:41:06 +0200
changeset 15236 31a3ab65d988
parent 15235 7c44dd513e27
child 15237 661c2ad1edb8
class: Autoload added: #handles:
Autoload.st
--- a/Autoload.st	Mon May 13 10:21:40 2013 +0200
+++ b/Autoload.st	Mon May 13 15:41:06 2013 +0200
@@ -721,6 +721,23 @@
     ^ false
 !
 
+handles:anException
+    "redefined to avoid recursive autoload.
+     (#autoload eventually raises QueryExceptions.
+      These exception may send #handles: to exception classes
+      that are currently being loaded)"
+
+    |newClass|
+
+    self isBeingLoaded ifFalse:[
+        newClass := self autoload.
+        newClass notNil ifTrue:[
+            ^ newClass handles:anException
+        ].
+    ].
+    ^ false
+!
+
 isBehavior
     "return true, if the receiver is describing another objects behavior.
      Autoloaded classes are definitely; therefore return true."
@@ -810,11 +827,11 @@
 !Autoload class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.164 2013-04-03 19:57:42 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.165 2013-05-13 13:41:06 stefan Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.164 2013-04-03 19:57:42 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Autoload.st,v 1.165 2013-05-13 13:41:06 stefan Exp $'
 ! !