SystemBrowser.st
changeset 17734 e01603154e47
parent 17624 241986474521
child 17775 0bd37dc16a54
--- a/SystemBrowser.st	Thu Nov 09 09:53:59 2017 +0100
+++ b/SystemBrowser.st	Thu Nov 09 09:54:14 2017 +0100
@@ -2505,6 +2505,58 @@
      )
 ! !
 
+!SystemBrowser class methodsFor:'private-code update'!
+
+sourceOfMethod:mthd
+    |code|
+
+    code := mthd source.
+    code notNil ifTrue:[ ^ code].
+
+    "/ wrong: even if there is no source, we
+    "/ should be able to type in something and accept
+    "/ self setNoAcceptAction.
+
+    (mthd sourcePosition isNil
+    or:[mthd getSource isNil]) ifTrue:[
+        ^ '"
+Sorry, but the method''s sourceCode is not available.
+
+Probably, the method''s sourceCode-info was stripped from the system.
+"'.
+    ].
+
+    ^ '"
+Sorry, but the method''s sourceCode is not available or corrupted.
+
+',(Smalltalk isStandAloneApp ifTrue:['If this is a deployed application, this part of the source is probably not
+part of the distribution (only the base Smalltalk/X framework is open-source).
+'] ifFalse:['']),'
+Please check the setting of your packagePath, which contains a collection of pathNames.
+The system searches those directories for a package-subdirectories,
+which should either contain the classes source file.
+Also, check if that directory and/or sourceFile grants read access.
+The packagePath can be accessed via
+    Smalltalk packagePath
+
+To fix this (in the running system), evaluate:
+    Smalltalk packagePath addFirst:''<<pathOfDirContainingPackageDir>>''.
+    Smalltalk flushPathCaches.
+
+You may also want to add those statements to the end of your ''private.rc''
+file - so you will not get this error again and again.
+
+Also, check if you have the sourceCodeManagement (CVS) enabled,
+and (if so) configured correctly.
+
+If all of the above fail, and you know the path of the source file,
+you can workaround the problem, by adding a symbolic link to that sourcefile
+in the ''source'' directory.
+"'.
+
+    "Modified: / 09-11-2017 / 08:16:28 / cg"
+! !
+
 !SystemBrowser class methodsFor:'private-helpers'!
 
 askForPackageChangeFrom:oldPkg to:newPkg