- "Download the sadun-utility jar file from Cristiano Sadun's
sourceforge website, or directly here." The "here" link gives a version that does not seem to work. I tried to download directly from SourceForge and it worked.
hm... maybe that's a coincidence. My colleagues use the version they downloaded from my website and that works fine.
After following your instructions from a clean image (on VisualWorks 7.5, Mac Intel) I get stack trace below when starting JavaConntect. If I use org.sadun.util.jar from SourceForge instead of the one file linked from your site, it works and I end up within the JavaConnect Browser.
Then I set the workspace location and start Eclipse. It seems that this happens in the background, as I can't see anything starting (it just takes a while). Is that correct?
Now I notice that the Penumbra-Moose has troubles if Eclipse is already running. So I restart the image and try again without using the PenumbraConsole. I get a debugger as it tries to import an Enum, so I hack your code to only consider interfaces and classes.
It works. Thank you very much!
Cheers, Lukas
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Unhandled exception: The identifier JavaWorld.org.sadun.util.SimpleClassPackageExplorer has no binding LiteralBindingReference(Object)>>error: LiteralBindingReference(GeneralBindingReference)>>binding LiteralBindingReference(GeneralBindingReference)>>value optimized [] in JavaConnect.JavaConnectBrowser>>classExplorer UndefinedObject>>ifNil: JavaConnect.JavaConnectBrowser>>classExplorer optimized [] in JavaConnect.JavaConnectBrowser>>loadPackages BlockClosure>>ensure: Cursor>>showWhile: JavaConnect.JavaConnectBrowser>>loadPackages JavaConnect.JavaConnectBrowser class>>openAndLoadPackages optimized [] in VisualLauncher>>openJavaConnect ByteSymbol(Object)>>ifNotNil: VisualLauncher>>openJavaConnect optimized [] in ApplicationModel>>actionFor: optimized [] in ToolBar>>newButtonFor: PluggableAdaptor>>setValue: PluggableAdaptor(ValueModel)>>value: Win98ToolbarButtonController(TriggerButtonController)>>pressAction TriggerButtonTracker(BasicButtonTracker)>>finishSelectionFor: TriggerButtonTracker>>finishSelectionFor: TriggerButtonTracker(SelectionTracker)>>redButtonReleasedEvent: RedButtonReleasedEvent>>dispatchTo: TriggerButtonTracker(SelectionTracker)>>handleEvent: EventDispatcher>>dispatch:to: EventDispatcher>>dispatchEvent: RedButtonReleasedEvent(Event)>>dispatch RedButtonReleasedEvent(Event)>>dispatchForWindowManager: optimized [] in WindowManager>>safelyDispatchForWindowManager: BlockClosure>>on:do: WindowManager>>safelyDispatchForWindowManager: WindowManager>>processNextEvent optimized [] in [] in WindowManager>>newProcess BlockClosure>>on:do: optimized [] in WindowManager>>newProcess BlockClosure>>on:do: optimized [] in Process class>>forBlock:priority:
---------------------------------------------------------------------- LiteralBindingReference(Object)>>error: Receiver: a LiteralBindingReference Instance Variables: path = an Array[5] cache = #notFound method = CompiledBlock [] in JavaConnect.JavaConnectBrowser>>classExplorer Arguments: aStringOrMessage = 'The identifier JavaWorld.org....ckageExplorer has no binding' Temporaries: lastNonSpace = 81 aString = 'The identifier JavaWorld.org....ckageExplorer has no binding' Context PC = 18
---------------------------------------------------------------------- LiteralBindingReference(GeneralBindingReference)>>binding Receiver: a LiteralBindingReference Instance Variables: path = an Array[5] cache = #notFound method = CompiledBlock [] in JavaConnect.JavaConnectBrowser>>classExplorer Temporaries: b = nil Context PC = 23
---------------------------------------------------------------------- LiteralBindingReference(GeneralBindingReference)>>value Receiver: a LiteralBindingReference Instance Variables: path = an Array[5] cache = #notFound method = CompiledBlock [] in JavaConnect.JavaConnectBrowser>>classExplorer Context PC = 4
---------------------------------------------------------------------- optimized [] in JavaConnect.JavaConnectBrowser>>classExplorer Receiver: an UndefinedObject Temporaries: .self = a JavaConnect.JavaConnectBrowser test = nil Context PC = 4
---------------------------------------------------------------------- UndefinedObject>>ifNil: Receiver: an UndefinedObject Arguments: aBlock = BlockClosure [] in JavaConnect.JavaConnectBrowser>>classExplorer Context PC = 3
---------------------------------------------------------------------- JavaConnect.JavaConnectBrowser>>classExplorer Receiver: a JavaConnect.JavaConnectBrowser Instance Variables: dependents = nil builder = nil uiSession = nil eventHandlers = nil classList = nil packages = nil selectorsList = nil systemproperties = nil propertyValues = nil selectedProperty = nil classExplorer = nil options = nil Temporaries: test = nil Context PC = 11
---------------------------------------------------------------------- optimized [] in JavaConnect.JavaConnectBrowser>>loadPackages Receiver: an UndefinedObject Temporaries: .self = a JavaConnect.JavaConnectBrowser allPackageNames = nil size = nil progressModel = nil windowController = nil Context PC = 6
---------------------------------------------------------------------- BlockClosure>>ensure: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in JavaConnect.JavaConnectBrowser>>loadPackages outerContext = nil copiedValues = an Array[2] Arguments: aBlock = BlockClosure [] in Cursor>>showWhile: Temporaries: result = nil Context PC = 4
---------------------------------------------------------------------- Cursor>>showWhile: Receiver: a Cursor Instance Variables: errorCode = 0 handle = a ByteArray[4] image = Depth1Image(extent: 16@16 depth: 1) mask = Depth1Image(extent: 16@16 depth: 1) hotSpot = 0@0 name = 'wait' Arguments: aBlock = BlockClosure [] in JavaConnect.JavaConnectBrowser>>loadPackages Temporaries: oldcursor = Cursor normal Context PC = 23
---------------------------------------------------------------------- JavaConnect.JavaConnectBrowser>>loadPackages Receiver: a JavaConnect.JavaConnectBrowser Instance Variables: dependents = nil builder = nil uiSession = nil eventHandlers = nil classList = nil packages = nil selectorsList = nil systemproperties = nil propertyValues = nil selectedProperty = nil classExplorer = nil options = nil Temporaries: allPackageNames = nil size = nil progressModel = nil windowController = nil Context PC = 14
---------------------------------------------------------------------- JavaConnect.JavaConnectBrowser class>>openAndLoadPackages Receiver: a JavaConnect.JavaConnectBrowser class Instance Variables: superclass = ApplicationModel methodDict = a MethodDictionary[22] format = 16396 subclasses = nil instanceVariables = an Array[8] organization = ('aspects' #classList #packages #selectorsList) ('private' #allPackagesBelow: #classExplorer #loadClassesInPackage:progressModel: #loadClassesInPackageRecursively:packagesProgressModel:classesProgressModel: #options) ('menu actions' #loadClassesInSelectedPackage #loadClassesInSelectedPackageRecursively #loadPackages #openSystemProperties #optionsEditor #startJVM #stopJVM) ('menu enabling/disabling' #jvmisActive #jvmisNotActive) ('aspects - system properties' #selectedProperty #systemproperties) ('events' #classSelectionChanged #packageSelectionChanged) ('actions' #refreshPackages)
name = #JavaConnectBrowser classPool = a NameSpaceOfClass[0] environment = a NameSpace[42] savedWindowInformation = nil Temporaries: instance = a JavaConnect.JavaConnectBrowser Context PC = 7
---------------------------------------------------------------------- optimized [] in VisualLauncher>>openJavaConnect Receiver: an UndefinedObject Temporaries: .configurationKey = #default Context PC = 11
---------------------------------------------------------------------- ByteSymbol(Object)>>ifNotNil: Receiver: a ByteSymbol Arguments: aBlock = BlockClosure [] in VisualLauncher>>openJavaConnect Context PC = 10
---------------------------------------------------------------------- VisualLauncher>>openJavaConnect Receiver: a VisualLauncher Instance Variables: dependents = an ApplicationWindow 5116992 builder = an UIBuilder uiSession = a ControlManager eventHandlers = nil menuBar = a Menu toolBar = a ValueHolder on: a Menu textCollector = a TextCollector on: Text for ' visualnc.im created at April 17, 2007 10:52:24 am Unloading package: ''Non-Commercialization'' Rescuing source in $(VISUALWORKS)/parcels/Non-Commercialization.pst...(none) Copying /Applications/VisualWorks/image/visualnc.cha to /Applications/VisualWorks/image/visual.cha... done
/Applications/VisualWorks/image/visual.im created at December 10, 2007 4:12:47 am /Applications/VisualWorks/image/visual.im created at December 10, 2007 4:14:52 am /Applications/VisualWorks/image/visual.im created at December 18, 2007 2:00:02 am /Applications/VisualWorks/image/visual.im created at December 18, 2007 2:02:18 am /Applications/VisualWorks/image/visual.im created at December 20, 2007 12:13:25 am Copying /Applications/VisualWorks/image/visual.cha to /Applications/VisualWorks/image/moose-java.cha... done
/Applications/VisualWorks/image/moose-java.im created at December 20, 2007 12:13:37 am Loading JavaConnect . . . Autoloading DLLCC from $(VISUALWORKS)/dllcc/DLLCC.pcl Autoloading Weaklings from $(VISUALWORKS)/contributed/Weaklings.pcl (UndefinedObject #DoIt - undeclaredSoftLink) (UndefinedObject #DoIt - undeclaredSoftLink) (UndefinedObject #DoIt - undeclaredSoftLink) (JavaConnect.JavaConnectSubSystem #canActivate - JavaVM is undeclared) (JavaConnect.JavaVM class #bootstrapPackages - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapThrowable - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapArrays - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapMethod - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapString - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapClass - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapConstructor - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapModifier - undeclaredSoftLink) (JavaConnect.JavaVM class #resetJavaNamespace - undeclaredSoftLink) (JavaConnect.JavaVM class #resetJavaNamespace - undeclaredSoftLink) (JavaConnect.JavaVM class #resetJavaNamespace - undeclaredSoftLink) (JavaConnect.JavaVM class #resetJavaNamespace - undeclaredSoftLink) (JavaConnect.JavaVM class #resetJavaNamespace - undeclaredSoftLink) (JavaConnect.JavaVM class #resetJavaNamespace - undeclaredSoftLink) (JavaConnect.JavaVM class #resetJavaNamespace - undeclaredSoftLink) (JavaConnect.JavaVM class #resetJavaNamespace - undeclaredSoftLink) (JavaConnect.JavaVM class #resetJavaNamespace - undeclaredSoftLink) (JavaConnect.JavaVM class #resetJavaNamespace - undeclaredSoftLink) (JavaConnect.JavaVM class #resetJavaNamespace - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapJavaConnect - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapJavaConnect - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapJavaConnect - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapJavaConnect - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapJavaConnect - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapJavaConnect - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapJavaConnect - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapJavaConnect - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapJavaConnect - undeclaredSoftLink) (JavaConnect.JavaVM class #bootstrapField - undeclaredSoftLink) (JavaConnect.JavaObjectArray #hashCode - undeclaredSoftLink) (JavaConnect.JavaCharArray #hashCode - undeclaredSoftLink) (JavaConnect.JavaPackage class #loadPackageNamed: - JavaWorld is undeclared) (JavaConnect.JavaPackage #javaPackageName - undeclaredSoftLink) (JavaConnect.JavaPackage #javaPackageNamed: - undeclaredSoftLink) (JavaConnect.JavaPackage #javaPackageNamed: - undeclaredSoftLink) (JavaConnect.JavaBooleanArray #hashCode - undeclaredSoftLink) (JavaConnect.JavaClass class #uninitializedClassNamed:inPackage: - undeclaredSoftLink) (JavaConnect.JavaClass #initializeJavaMethods - undeclaredSoftLink) (JavaConnect.JavaClass #initializeJavaMethods - undeclaredSoftLink) (JavaConnect.JavaClass #javalangClass - undeclaredSoftLink) (JavaConnect.JavaClass #retrieveJavaSourceFor:fromJarFile: - undeclaredSoftLink) (JavaConnect.JavaClass #retrieveJavaSourceFor:fromJarFile: - undeclaredSoftLink) (JavaConnect.JavaClass #retrieveJavaSourceFor:fromJarFile: - undeclaredSoftLink) (JavaConnect.JavaClass #retrieveJavaSource - undeclaredSoftLink) (JavaConnect.JavaClass #retrieveJavaSource - result - readBeforeWritten) (JavaConnect.JavaClass #initializeFields - undeclaredSoftLink) (JavaConnect.JavaClass #initializeFields - undeclaredSoftLink) (JavaConnect.JNINativeInterface #throwException - undeclaredSoftLink) (JavaConnect.JavaCompiledMethod #retrieveJavaSource - undeclaredSoftLink) (JavaConnect.JavaCompiledMethod #retrieveJavaSource - result - readBeforeWritten) (JavaConnect.JavaCompiledMethod #retrieveJavaSourceFor:fromJarFile: - undeclaredSoftLink) (JavaConnect.JavaCompiledMethod #retrieveJavaSourceFor:fromJarFile: - undeclaredSoftLink) (JavaConnect.JavaCompiledMethod #retrieveJavaSourceFor:fromJarFile: - undeclaredSoftLink) (JavaConnect.JavaIntArray #hashCode - undeclaredSoftLink) (CPointer #asSmalltalkValueForArrayType: - undeclaredSoftLink) (CPointer #asSmalltalkValueForType: - undeclaredSoftLink) (CPointer #asSmalltalkValueForObjectType: - undeclaredSoftLink) (CPointer #asSmalltalkValueForObjectArrayType: - undeclaredSoftLink) (String #asJavaValue - undeclaredSoftLink) (JavaConnect.JavaConnectBrowser #classExplorer - undeclaredSoftLink) (JavaConnect.JavaConnectBrowser #classExplorer - undeclaredSoftLink) (JavaConnect.JavaConnectBrowser #systemproperties - undeclaredSoftLink) (JavaConnect.CoreJavaTests #test8bitStringEncodingDecoding - undeclaredSoftLink) (JavaConnect.CoreJavaTests #testNativeValueTypes - undeclaredSoftLink) (JavaConnect.CoreJavaTests #testStatics - undeclaredSoftLink) (JavaConnect.CoreJavaTests #testStatics - undeclaredSoftLink) (JavaConnect.CoreJavaTests #testEmptyStringEncodingDecoding - undeclaredSoftLink) (JavaConnect.CoreJavaTests #test16bitStringEncodingDecoding - undeclaredSoftLink) (JavaConnect.CoreJavaTests #testEmptyStringDecoding - undeclaredSoftLink) (JavaConnect.CoreJavaTests #testStringEncodingDecoding - undeclaredSoftLink) (JavaConnect.CoreJavaTests #test8BitStringDecoding - undeclaredSoftLink) (JavaConnect.CoreJavaTests #test16BitStringDecoding - undeclaredSoftLink) (JavaConnect.KernelTests #testLoadedFields - undeclaredSoftLink) (JavaConnect.KernelTests #testObjectReturns - undeclaredSoftLink) (JavaConnect.KernelTests #testOverLoadedMethods - undeclaredSoftLink) (JavaConnect.KernelTests #testOverLoadedMethods - undeclaredSoftLink) (JavaConnect.KernelTests #testOverLoadedMethods - undeclaredSoftLink) (JavaConnect.KernelTests #testLoadedMethods - undeclaredSoftLink) Done ' toolDock = a VisualLauncherToolDock Temporaries: choices = an Array[2] configurationKey = #default Context PC = 37
---------------------------------------------------------------------- optimized [] in ApplicationModel>>actionFor: Receiver: an UndefinedObject Temporaries: .self = a VisualLauncher .aKey = #openJavaConnect Context PC = 7
---------------------------------------------------------------------- optimized [] in ToolBar>>newButtonFor: Receiver: an UndefinedObject Arguments: b = a ValueHolder on: nil v = true Temporaries: .self = a Win98ToolBar .item = a MenuItem 'JavaConnect' Context PC = 19
---------------------------------------------------------------------- PluggableAdaptor>>setValue: Receiver: a PluggableAdaptor Instance Variables: dependents = a Win98ToolbarButtonView model = a ValueHolder on: nil getBlock = BlockClosure [] in ToolBar>>newButtonFor: putBlock = BlockClosure [] in ToolBar>>newButtonFor: updateBlock = BlockClosure [] in ToolBar>>newButtonFor: Arguments: newValue = true Context PC = 6
---------------------------------------------------------------------- PluggableAdaptor(ValueModel)>>value: Receiver: a PluggableAdaptor Instance Variables: dependents = a Win98ToolbarButtonView model = a ValueHolder on: nil getBlock = BlockClosure [] in ToolBar>>newButtonFor: putBlock = BlockClosure [] in ToolBar>>newButtonFor: updateBlock = BlockClosure [] in ToolBar>>newButtonFor: Arguments: newValue = true Context PC = 5
---------------------------------------------------------------------- Win98ToolbarButtonController(TriggerButtonController)>>pressAction Receiver: a Win98ToolbarButtonController Instance Variables: model = a PluggableAdaptor view = a Win98ToolbarButtonView sensor = a TranslatingSensor keyboardProcessor = nil keyboardHook = nil dispatcher = nil Context PC = 17
---------------------------------------------------------------------- TriggerButtonTracker(BasicButtonTracker)>>finishSelectionFor: Receiver: a TriggerButtonTracker Instance Variables: controller = a Win98ToolbarButtonController inside = true Arguments: aPoint = 8@5 Context PC = 8
---------------------------------------------------------------------- TriggerButtonTracker>>finishSelectionFor: Receiver: a TriggerButtonTracker Instance Variables: controller = a Win98ToolbarButtonController inside = true Arguments: aPoint = 8@5 Context PC = 11
---------------------------------------------------------------------- TriggerButtonTracker(SelectionTracker)>>redButtonReleasedEvent: Receiver: a TriggerButtonTracker Instance Variables: controller = a Win98ToolbarButtonController inside = true Arguments: aMouseButtonEvent = a RedButtonReleasedEvent Context PC = 13
---------------------------------------------------------------------- RedButtonReleasedEvent>>dispatchTo: Receiver: a RedButtonReleasedEvent Instance Variables: time = 39244609 initiator = an EventDispatcher window = an ApplicationWindow 5116992 state = 0 x = 248 y = 31 gx = 383 gy = 84 buttonNumber = 1 Arguments: anObject = a TriggerButtonTracker Context PC = 4
---------------------------------------------------------------------- TriggerButtonTracker(SelectionTracker)>>handleEvent: Receiver: a TriggerButtonTracker Instance Variables: controller = a Win98ToolbarButtonController inside = true Arguments: anEvent = a RedButtonReleasedEvent Context PC = 4
---------------------------------------------------------------------- EventDispatcher>>dispatch:to: Receiver: an EventDispatcher Instance Variables: windowController = an ApplicationStandardSystemController currentMouseConsumer = nil grabbingMouse = false keyboardProcessor = nil lastControlObject = nil trapList = nil state = nil repairDamageWhenDebugging = true flushQueueAfterError = true distributeEventsWhenDebugging = true dragDropInProgress = false dragDropTracker = nil dispatchUnknownEvents = false Arguments: event = a RedButtonReleasedEvent object = a TriggerButtonTracker Temporaries: tmp = nil Context PC = 10
---------------------------------------------------------------------- EventDispatcher>>dispatchEvent: Receiver: an EventDispatcher Instance Variables: windowController = an ApplicationStandardSystemController currentMouseConsumer = nil grabbingMouse = false keyboardProcessor = nil lastControlObject = nil trapList = nil state = nil repairDamageWhenDebugging = true flushQueueAfterError = true distributeEventsWhenDebugging = true dragDropInProgress = false dragDropTracker = nil dispatchUnknownEvents = false Arguments: event = a RedButtonReleasedEvent Temporaries: objectWantingControl = nil targetKeyboardProcessor = nil Context PC = 60
---------------------------------------------------------------------- RedButtonReleasedEvent(Event)>>dispatch Receiver: a RedButtonReleasedEvent Instance Variables: time = 39244609 initiator = an EventDispatcher window = an ApplicationWindow 5116992 state = 0 x = 248 y = 31 gx = 383 gy = 84 buttonNumber = 1 Context PC = 16
---------------------------------------------------------------------- RedButtonReleasedEvent(Event)>>dispatchForWindowManager: Receiver: a RedButtonReleasedEvent Instance Variables: time = 39244609 initiator = an EventDispatcher window = an ApplicationWindow 5116992 state = 0 x = 248 y = 31 gx = 383 gy = 84 buttonNumber = 1 Arguments: aWinMgr = a WindowManager Context PC = 4
---------------------------------------------------------------------- optimized [] in WindowManager>>safelyDispatchForWindowManager: Receiver: an UndefinedObject Temporaries: .event = a RedButtonReleasedEvent .self = a WindowManager Context PC = 6
---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in WindowManager>>safelyDispatchForWindowManager: outerContext = nil copiedValues = an Array[2] Arguments: anExceptionSelector = BadControllerError handlerBlock = BlockClosure [] in WindowManager>>safelyDispatchForWindowManager: Context PC = 18
---------------------------------------------------------------------- WindowManager>>safelyDispatchForWindowManager: Receiver: a WindowManager Instance Variables: windows = an OrderedCollection[1] activeController = nil interruptLock = false outstandingMetaOrDamage = false openInProgress = false eventQueue = an EventQueue baseProcess = a Process in Semaphore>>wait dontFilterEvents = false Arguments: event = a RedButtonReleasedEvent Context PC = 13
---------------------------------------------------------------------- WindowManager>>processNextEvent Receiver: a WindowManager Instance Variables: windows = an OrderedCollection[1] activeController = nil interruptLock = false outstandingMetaOrDamage = false openInProgress = false eventQueue = an EventQueue baseProcess = a Process in Semaphore>>wait dontFilterEvents = false Temporaries: event = a RedButtonReleasedEvent Context PC = 9
---------------------------------------------------------------------- optimized [] in [] in WindowManager>>newProcess Receiver: an UndefinedObject Temporaries: .self = a WindowManager Context PC = 13
---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in [] in WindowManager>>newProcess outerContext = nil copiedValues = a WindowManager Arguments: anExceptionSelector = TerminateException handlerBlock = BlockClosure [] in [] in WindowManager>>newProcess Context PC = 18
---------------------------------------------------------------------- optimized [] in WindowManager>>newProcess Receiver: an UndefinedObject Temporaries: .self = a WindowManager Context PC = 15
---------------------------------------------------------------------- BlockClosure>>on:do: Receiver: a BlockClosure Instance Variables: method = CompiledBlock [] in WindowManager>>newProcess outerContext = nil copiedValues = a WindowManager Arguments: anExceptionSelector = TerminateException handlerBlock = BlockClosure [] in [] in Process class>>forBlock:priority: Context PC = 18
---------------------------------------------------------------------- optimized [] in Process class>>forBlock:priority: Receiver: an UndefinedObject Temporaries: .aBlock = BlockClosure [] in WindowManager>>newProcess Context PC = 9
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-