Workaround:
The following code resolves this problem on GBJ 2.3 for sigAbort errors.
Customers using earlier versions should check that the modified methods
are consistent with their version. If your problem involves a different
error, replace "6009" with the appropriate error number.
! Fix for sigAbort variation of bug 41956
!
! Note: can be extended to cover other exceptions as needed..
!
! This code is based off of GBJ 2.3
!
! File-in as SystemUser and commit
!
category: 'Event Handling'
method: GsbFramework
handleEvent: anEvent
Exception category: nil number: nil do:
[ :ex :cat :num :args || response |
"fix 41956: resignal sigAborts"
(num == 6009)
ifTrue: [
ex resignal: cat number: num args: args ]
ifFalse: [
response := self eventErrorHandler
value: ex
value: cat
value: num
value: args.
response == nil ifFalse:
[^response]].
]. "fix 41956"
(myConfiguration at: #verbose) ifTrue: [
self log: #GsbEvent object: anEvent].
self computeEventDateTime.
anEvent handleEvent.
self heartbeat
%
category: 'Startup'
method: GbjServer
startup3
"Run the SMF until the Java client quits."
| pm reporting |
Exception category: nil number: nil do: [ :ex :cat :num :args |
"fix 41956: resignal sigAborts"
(num == 6009)
ifTrue: [
ex resignal: cat number: num args: args ]
ifFalse: [
(GbjError isEventError: cat number: num)
ifTrue: [ "GemStone event error"
self event: (GbjError category: cat number: num args: args)
]
ifFalse: [
self logError: (GbjError category: cat number: num args: args).
self close.
^0 ].
nil ].
]. "fix 41956"
Exception category: GbjSignals number: nil do: [ :ex :cat :num :args
|
ex remove.
((num = clientClosedConnection) _or: [num = clientTimedOut])
ifTrue: [
self log: (GbjError category: cat number: num args: args) messageText.
self close.
^0 ].
ex resignal: cat number: num args: args.
nil ].
self profileServer ifTrue: [
self log: 'Server profile requested by client'.
pm := ProfMonitor new.
pm startMonitoring.
].
self framework eventLoop.
(pm ~~ nil) ifTrue: [
reporting := true.
pm stopMonitoring; gatherResults; removeFile.
self log: (pm reportDownTo: 1).
pm removeResults.
].
self close.
^0
%