by hart404 » Wed May 05, 2010 7:59 am
We are having a problem using a DLL that provides linkage with Lotus Notes. It's been working for years. But now when we migrate from 7.5.2 to 8.0.1 we get an error "Primitive failed due to unknown API type". We've done all the obvious things like checking to make sure the DLL is in the right location. Can anyone give us a clue about what might be going on here, please? Full stack trace follows.
Phil
Debugger Stack Trace Report:
Error String: 'Primitive failed in: PlatformFunction>>#callWith:with: due to Unknown API type'
Resumable: false
UIProcess
Name: (5/3/2010 4:41:34 PM)
Process State: suspended
Priority: 3
Executing in: [] in <optimized block>(ExceptionalEvent class)>>#initializeSystemExceptions
System Configuration Dump
Copyright:
VA Smalltalk V8.0.1 ; Image: 8.0.1
VM Timestamp: 4.0,(NC) 11/2/2009 (79)
(C) Copyright Instantiations 1994, 2009. All rights reserved.
(C) Copyright International Business Machines Corp. 1994, 2006. All rights reserved.
Time: 4:48:38 PM
Date: 5/3/2010
Platform:
Virtual machine: ES
Bytecode version: 4.0
Manager version: 4.00
'OS' subsystem: 'WIN32s'
'CLIM' subsystem: 'ES'
'CP' subsystem: 'WIN32s'
'CLDT' subsystem: 'ES'
'CFS' subsystem: 'WIN32s'
'SCI' subsystem: 'WIN'
'CW' subsystem: 'WIN32s'
'CPM' subsystem: 'ES'
'CG' subsystem: 'WIN32s'
'CPIC' subsystem: 'WIN32s'
Current user:
Connected Library:
Pathname: C:\Program Files\vast801\manager\manager\nwamgr80.dat
INFO: Trapped error dumping system configuration.
=============<STACK TRACE BEGINS>============
[] in <optimized block>(ExceptionalEvent class)>>#initializeSystemExceptions
signal=Signal on Exception: (ExError) An error has occurred.
Signal>>#evaluate:
self=Signal on Exception: (ExError) An error has occurred.
aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
Signal>>#evaluateDefaultHandler:
self=Signal on Exception: (ExError) An error has occurred.
aBlock=[] in ExceptionalEvent class>>#initializeSystemExceptions
ExceptionalEvent>>#applyDefaultHandler:
self=Exception: (ExError) An error has occurred.
aSignal=Signal on Exception: (ExError) An error has occurred.
exception=Exception: (ExError) An error has occurred.
ExceptionalEvent>>#signalFor:
self=Exception: (ExError) An error has occurred.
aSignalOrExceptionSelector=Signal on Exception: (ExError) An error has occurred.
handler=nil
ExceptionalEvent>>#signalWithArguments:
self=Exception: (ExError) An error has occurred.
arguments=('Primitive failed in: PlatformFunction>>#callWith:with: due to Unknown API type')
ExceptionalEvent>>#signalWith:
self=Exception: (ExError) An error has occurred.
arg1='Primitive failed in: PlatformFunction>>#callWith:with: due to Unknown API type'
PlatformFunction(Object)>>#error:
self=<pascal: uint16 'NOTES.DLL':NotesInitExtended uint32 pointer>
aString='Primitive failed in: PlatformFunction>>#callWith:with: due to Unknown API type'
PlatformFunction(Object)>>#primitiveFailed:withArgument:backUp:
self=<pascal: uint16 'NOTES.DLL':NotesInitExtended uint32 pointer>
errorCode=15
argument=-1
backUp=1
PlatformFunction(Object)>>#primitiveFailed
self=<pascal: uint16 'NOTES.DLL':NotesInitExtended uint32 pointer>
PlatformFunction>>#callWith:with:
self=<pascal: uint16 'NOTES.DLL':NotesInitExtended uint32 pointer>
arg1=1
arg2=*UtyOSPtr {16r001855E8}
[] in UtyNotesAPIApp class>>#notesInitialize
self=UtyNotesAPIApp
UtyNotesStatus class>>#evaluate:
self=UtyNotesStatus
aBlock=[] in UtyNotesAPIApp class>>#notesInitialize
UtyNotesAPIApp class>>#notesInitialize
self=UtyNotesAPIApp
ScyLnBasePersistencyApp class>>#connectToLotusNotes
self=ScyLnBasePersistencyApp
lnStoragePolicies=OrderedCollection(ScyLnTaskNumberRecordStoragePolicy ScyLnPatchStoragePolicy ScyLnCustomAttributeDefinitionManagerStoragePolicy ScyLnUserStoragePolicy ScyLnTaskStoragePolicy ScyLnFixStoragePolicy ScyLnProductStoragePolicy ScyLnTaskHistoryItemStoragePolicy ScyLnProductReleaseStoragePolicy )
errorText=nil
UndefinedObject>>#Doit
self=nil
EsCompiler class>>#evaluateForNil:additionalPoolNames:ifFail:
self=EsCompiler
sourceString='ScyLnBasePersistencyApp connectToLotusNotes'
additionalPoolNames=(#CfsConstants #CgConstants #CwConstants #CldtConstants #SystemExceptions)
exceptionHandler=[] in EtWorkspace>>#evaluateSelectionIn:ifFail:
descriptor=UndefinedObject:initialized
result=an EsCompilationResult
StsTranscript(EtWindow)>>#evaluate:for:ifFail:
self=a StsTranscript
text='ScyLnBasePersistencyApp connectToLotusNotes'
doitReceiver=nil
exceptionHandler=[] in EtWorkspace>>#evaluateSelectionIn:ifFail:
[] in StsTranscript(EtWorkspace)>>#evaluateSelectionIn:ifFail:
self=a StsTranscript
aWidget=CwText(text)
failBlock=[]
text='ScyLnBasePersistencyApp connectToLotusNotes'
result=nil
failed=false
EmSystemConfiguration>>#showBusyCursorWhile:
self=an EmSystemConfiguration
aBlock=[] in EtWorkspace>>#evaluateSelectionIn:ifFail:
shell=CwTopLevelShell(Transcript)
window=nil
StsTranscript(EtWindow)>>#execShortOperation:
self=a StsTranscript
aBlock=[] in EtWorkspace>>#evaluateSelectionIn:ifFail:
StsTranscript(EtWorkspace)>>#evaluateSelectionIn:ifFail:
self=a StsTranscript
aWidget=CwText(text)
failBlock=[]
text='ScyLnBasePersistencyApp connectToLotusNotes'
result=nil
failed=false
[] in StsTranscript(EtWindow)>>#menuEditExecute
self=a StsTranscript
widget=CwText(text)
EmSystemConfiguration>>#showBusyCursorWhile:
self=an EmSystemConfiguration
aBlock=[] in EtWindow>>#menuEditExecute
shell=CwTopLevelShell(Transcript)
window=a CgWindow
StsTranscript(EtWindow)>>#execShortOperation:
self=a StsTranscript
aBlock=[] in EtWindow>>#menuEditExecute
StsTranscript(EtWindow)>>#menuEditExecute
self=a StsTranscript
widget=CwText(text)
CwMenuPushButton>>#dispatchTo:
self=a CwMenuPushButton
receiver=a StsTranscript
selectorOrDirectedMessage=#menuEditExecute
CwMenu>>#simpleCallback:clientData:callData:
self=a CwMenu
w=CwPushButton(button_5)
index=5
callData=CwAnyCallbackData(
reason -> 10
)
CwCallbackRec>>#callWith:callData:
self=a CwCallbackRec
aWidget=CwPushButton(button_5)
callData=CwAnyCallbackData(
reason -> 10
)
CwPushButton(CwBasicWidget)>>#callCallbackList:callData:
self=CwPushButton(button_5)
aCallbackList=OrderedCollection(a CwCallbackRec )
callData=CwAnyCallbackData(
reason -> 10
)
callbacks=nil
size=1
rec1=nil
rec2=nil
rec3=nil
[] in CwRowColumn>>#simple:clientData:callData:
self=CwRowColumn(~Edit)
aRowColumn=CwRowColumn(~Edit)
clientData=nil
callData=CwRowColumnCallbackData(
reason -> 10
widget -> CwPushButton(button_5)
data -> nil
callbackData -> CwAnyCallbackData(
reason -> 10
)
)
data=CwAnyCallbackData(
reason -> 10
)
index=5
list=OrderedCollection(a CwCallbackRec )
child=CwPushButton(button_5)
OrderedCollection>>#do:
self=OrderedCollection(CwPushButton(button_0) CwPushButton(button_1) CwSeparator(button_2) CwPushButton(button_2) CwPushButton(button_3) CwPushButton(button_4) CwSeparator(button_5) CwPushButton(button_5) CwPushButton(button_6) CwPushButton(button_7) CwPushButton(button_8) CwPushButton(button_9) CwSeparator(button_10) CwPushButton(button_10) CwPushButton(button_11) CwSeparator(button_12) CwCascadeButton(button_12) )
aBlock=[] in CwRowColumn>>#simple:clientData:callData:
CwRowColumn>>#simple:clientData:callData:
self=CwRowColumn(~Edit)
aRowColumn=CwRowColumn(~Edit)
clientData=nil
callData=CwRowColumnCallbackData(
reason -> 10
widget -> CwPushButton(button_5)
data -> nil
callbackData -> CwAnyCallbackData(
reason -> 10
)
)
data=CwAnyCallbackData(
reason -> 10
)
index=5
list=OrderedCollection(a CwCallbackRec )
CwCallbackRec>>#callWith:callData:
self=a CwCallbackRec
aWidget=CwRowColumn(~Edit)
callData=CwRowColumnCallbackData(
reason -> 10
widget -> CwPushButton(button_5)
data -> nil
callbackData -> CwAnyCallbackData(
reason -> 10
)
)
CwRowColumn(CwBasicWidget)>>#callCallbackList:callData:
self=CwRowColumn(~Edit)
aCallbackList=OrderedCollection(a CwCallbackRec )
callData=CwRowColumnCallbackData(
reason -> 10
widget -> CwPushButton(button_5)
data -> nil
callbackData -> CwAnyCallbackData(
reason -> 10
)
)
callbacks=nil
size=1
rec1=nil
rec2=nil
rec3=nil
CwRowColumn>>#entry:clientData:callData:
self=CwRowColumn(~Edit)
aWidget=CwPushButton(button_5)
callbackList=nil
callData=CwAnyCallbackData(
reason -> 10
)
entryCallData=CwRowColumnCallbackData(
reason -> 10
widget -> CwPushButton(button_5)
data -> nil
callbackData -> CwAnyCallbackData(
reason -> 10
)
)
CwPushButton>>#callActivateCallback:
self=CwPushButton(button_5)
anEvent=an OSEvent
OSMenuItem(OSWidget)>>#callHandlers:with:
self=OSMenuItem()
handlers=#callActivateCallback:
data=an OSEvent
DirectedMessage>>#send
self=DirectedMessage (OSMenuItem(), #callHandlers:with:, (#callActivateCallback: an OSEvent))
OSEventManager class>>#runDeferredMessages
self=OSEventManager
messageAvailable=true
message=DirectedMessage (OSMenuItem(), #callHandlers:with:, (#callActivateCallback: an OSEvent))
state=true
OSWidget class>>#readAndDispatch
self=OSWidget
state=true
gotEvent=true
CwAppContext>>#readAndDispatch
self=a CwAppContext
AbtWindowSystemStartUp class(EsWindowSystemStartUp class)>>#messageLoop
self=AbtWindowSystemStartUp
lastEventTime=26401156
appContext=a CwAppContext
[] in <optimized block>(UIProcess class)>>#forkUserInterface
[] in UIProcess(Process)>>#executeBlock:withArguments:
self=UIProcess:(5/3/2010 4:41:34 PM){suspended,3}
aBlock=[] in UIProcess class>>#forkUserInterface
args=()
UIProcess(Process)>>#executeBlock:withArguments:
self=UIProcess:(5/3/2010 4:41:34 PM){suspended,3}
aBlock=[] in UIProcess class>>#forkUserInterface
args=()
UIProcess(Process)>>#newProcessOn:stackSize:withArguments:named:
self=UIProcess:(5/3/2010 4:41:34 PM){suspended,3}
aBlock=[] in UIProcess class>>#forkUserInterface
stackSize=1024
args=()
procName='(5/3/2010 4:41:34 PM)'
==============<STACK TRACE ENDS>=============