Hi,
we got an error by a customer during printer initialisation in CgPrinterJobAttributes class>>#devModeDriver:devName:devMedium:flags:oldDeviceMode: ->PlatformFunction>>#callWith:with:with:with:with:with: due to Floating point underflow. We are using VASmalltalk 8.02. The customer is using Windows 7. We have no idea, what happened and how to solve this problem.. Kind regards Klaus Here is the walkback (customer specific names are replaced by dummy names for printer, server..): Walkback at 16:38:20 on 12/05/2011 Primitive failed in: PlatformFunction>>#callWith:with:with:with:with:with: due to Floating point underflow [] in EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process: receiver = EpRuntimeStartUp arg1 = 'Primitive failed in: PlatformFunction>>#callWith:with:with:with:with:with: due to Floating point underflow' arg2 = UIProcess:(12/05/2011 16:38:19){running,3} temp1 = 'walkback.log' temp2 = -1 temp3 = a CfsWriteFileStream EsCompactBlockContextTemplate(Block)>>#valueWithErrorHandler:oldHandler:onReturnDo: receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process: arg1 = [] in Block>>#when:do:exitWith:retryReturn: arg2 = nil arg3 = [] EsCompactBlockContextTemplate(Block)>>#when:do:exitWith:retryReturn: receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process: arg1 = an ExceptionalEventCollection arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process: arg3 = [] in Block>>#when:do: arg4 = an Object temp1 = [] in Block>>#when:do:exitWith:retryReturn: temp2 = [] in Block>>#when:do:exitWith:retryReturn: temp3 = nil EsCompactBlockContextTemplate(Block)>>#when:do: receiver = [] in EsWindowSystemStartUp class>>#outputWalkback:process: arg1 = an ExceptionalEventCollection arg2 = [] in EsWindowSystemStartUp class>>#outputWalkback:process: temp1 = an Object temp2 = nil EpRuntimeStartUp class(EsWindowSystemStartUp class)>>#outputWalkback:process: receiver = EpRuntimeStartUp arg1 = 'Primitive failed in: PlatformFunction>>#callWith:with:with:with:with:with: due to Floating point underflow' arg2 = UIProcess:(12/05/2011 16:38:19){running,3} temp1 = 'walkback.log' temp2 = -1 temp3 = a CfsWriteFileStream EpRuntimeStartUp class(EsImageStartUp class)>>#outputWalkback: receiver = EpRuntimeStartUp arg1 = 'Primitive failed in: PlatformFunction>>#callWith:with:with:with:with:with: due to Floating point underflow' EpRuntimeStartUp class>>#reportError:resumable:startBP: receiver = EpRuntimeStartUp arg1 = 'Primitive failed in: PlatformFunction>>#callWith:with:with:with:with:with: due to Floating point underflow' arg2 = false arg3 = 909 UIProcess(Process)>>#reportError:resumable: receiver = UIProcess:(12/05/2011 16:38:19){running,3} arg1 = 'Primitive failed in: PlatformFunction>>#callWith:with:with:with:with:with: due to Floating point underflow' arg2 = false temp1 = 909 [optimized] in ExceptionalEvent class>>#initializeSystemExceptions blockarg1 = Signal on Exception: (ExError) An error has occurred. Signal>>#evaluate: receiver = Signal on Exception: (ExError) An error has occurred. arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions Signal>>#evaluateDefaultHandler: receiver = Signal on Exception: (ExError) An error has occurred. arg1 = [] in ExceptionalEvent class>>#initializeSystemExceptions ExceptionalEvent>>#applyDefaultHandler: receiver = Exception: (ExError) An error has occurred. arg1 = Signal on Exception: (ExError) An error has occurred. temp1 = Exception: (ExError) An error has occurred. ExceptionalEvent>>#signalFor: receiver = Exception: (ExError) An error has occurred. arg1 = Signal on Exception: (ExError) An error has occurred. temp1 = nil ExceptionalEvent>>#signalWithArguments: receiver = Exception: (ExError) An error has occurred. arg1 = ('Primitive failed in: PlatformFunction>>#callWith:with:with:with:with:with: due to Floating point underflow') ExceptionalEvent>>#signalWith: receiver = Exception: (ExError) An error has occurred. arg1 = 'Primitive failed in: PlatformFunction>>#callWith:with:with:with:with:with: due to Floating point underflow' PlatformFunction(Object)>>#error: receiver = <c: int32 'winspool.drv':DocumentPropertiesA pointer pointer pointer pointer pointer uint32> arg1 = 'Primitive failed in: PlatformFunction>>#callWith:with:with:with:with:with: due to Floating point underflow' PlatformFunction(Object)>>#primitiveFailed:withArgument:backUp: receiver = <c: int32 'winspool.drv':DocumentPropertiesA pointer pointer pointer pointer pointer uint32> arg1 = 59 arg2 = -1 arg3 = 1 PlatformFunction(Object)>>#primitiveFailed receiver = <c: int32 'winspool.drv':DocumentPropertiesA pointer pointer pointer pointer pointer uint32> PlatformFunction>>#callWith:with:with:with:with:with: receiver = <c: int32 'winspool.drv':DocumentPropertiesA pointer pointer pointer pointer pointer uint32> arg1 = OSHwnd {0} arg2 = OSHandle {2346284} arg3 = '\\MyPrintServer\P_sg4095' arg4 = OSDevmode [53] {*OSDevmode { dmDeviceName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmSpecVersion: 0 dmDriverVersion: 0 dmSize: 0 dmDriverExtra: 0 dmFields: 0 dmOrientation: 0 dmPaperSize: 0 dmPaperLength: 0 dmPaperWidth: 0 dmScale: 0 dmCopies: 0 dmDefaultSource: 0 dmPrintQuality: 0 dmColor: 0 dmDuplex: 0 dmYResolution: 0 dmTTOption: 0 dmCollate: 0 dmFormName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmLogPixels: 0 dmBitsPerPel: 0 dmPelsWidth: 0 dmPelsHeight: 0 dmDisplayFlags: 0 dmDisplayFrequency: 0 dmICMMethod: 0 dmICMIntent: 0 dmMediaType: 0 dmDitherType: 0 dmReserved1: 0 dmReserved2: 0 } . . *OSDevmode { dmDeviceName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmSpecVersion: 0 dmDriverVersion: 0 dmSize: 0 dmDriverExtra: 0 dmFields: 0 dmOrientation: 0 dmPaperSize: 0 dmPaperLength: 0 dmPaperWidth: 0 dmScale: 0 dmCopies: 0 dmDefaultSource: 0 dmPrintQuality: 0 dmColor: 0 dmDuplex: 0 dmYResolution: 0 dmTTOption: 0 dmCollate: 0 dmFormName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmLogPixels: 0 dmBitsPerPel: 0 dmPelsWidth: 0 dmPelsHeight: 0 dmDisplayFlags: 0 dmDisplayFrequency: 0 dmICMMethod: 0 dmICMIntent: 0 dmMediaType: 0 dmDitherType: 0 dmReserved1: 0 dmReserved2: 0 }} arg5 = nil arg6 = 2 OSCall>>#documentProperties:hPrinter:pDeviceName:pDevModeOutput:pDevModeInput:fMode: receiver = an OSCall arg1 = OSHwnd {0} arg2 = OSHandle {2346284} arg3 = '\\MyPrintServer\P_sg4095' arg4 = OSDevmode [53] {*OSDevmode { dmDeviceName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmSpecVersion: 0 dmDriverVersion: 0 dmSize: 0 dmDriverExtra: 0 dmFields: 0 dmOrientation: 0 dmPaperSize: 0 dmPaperLength: 0 dmPaperWidth: 0 dmScale: 0 dmCopies: 0 dmDefaultSource: 0 dmPrintQuality: 0 dmColor: 0 dmDuplex: 0 dmYResolution: 0 dmTTOption: 0 dmCollate: 0 dmFormName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmLogPixels: 0 dmBitsPerPel: 0 dmPelsWidth: 0 dmPelsHeight: 0 dmDisplayFlags: 0 dmDisplayFrequency: 0 dmICMMethod: 0 dmICMIntent: 0 dmMediaType: 0 dmDitherType: 0 dmReserved1: 0 dmReserved2: 0 } *OSDevmode { dmDeviceName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmSpecVersion: 0 dmDriverVersion: 0 dmSize: 0 dmDriverExtra: 0 dmFields: 0 dmOrientation: 0 dmPaperSize: 0 dmPaperLength: 0 dmPaperWidth: 0 dmScale: 0 dmCopies: 0 dmDefaultSource: 0 dmPrintQuality: 0 dmColor: 0 dmDuplex: 0 dmYResolution: 0 dmTTOption: 0 dmCollate: 0 dmFormName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmLogPixels: 0 dmBitsPerPel: 0 dmPelsWidth: 0 dmPelsHeight: 0 dmDisplayFlags: 0 dmDisplayFrequency: 0 dmICMMethod: 0 dmICMIntent: 0 dmMediaType: 0 dmDitherType: 0 dmReserved1: 0 dmReserved2: 0 } . . *OSDevmode { dmDeviceName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmSpecVersion: 0 dmDriverVersion: 0 dmSize: 0 dmDriverExtra: 0 dmFields: 0 dmOrientation: 0 dmPaperSize: 0 dmPaperLength: 0 dmPaperWidth: 0 dmScale: 0 dmCopies: 0 dmDefaultSource: 0 dmPrintQuality: 0 dmColor: 0 dmDuplex: 0 dmYResolution: 0 dmTTOption: 0 dmCollate: 0 dmFormName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmLogPixels: 0 dmBitsPerPel: 0 dmPelsWidth: 0 dmPelsHeight: 0 dmDisplayFlags: 0 dmDisplayFrequency: 0 dmICMMethod: 0 dmICMIntent: 0 dmMediaType: 0 dmDitherType: 0 dmReserved1: 0 dmReserved2: 0 }} arg5 = nil arg6 = 2 CgPrintJobAttributes class>>#devModeDriver:devName:devMedium:flags:oldDeviceMode: receiver = CgPrintJobAttributes arg1 = 'winspool' arg2 = '\\MyPrintServer\P_sg4095' arg3 = 'P_sg4095.MY.SELF.COM' arg4 = 2 arg5 = nil temp1 = 7880 temp2 = OSDevmode [53] {*OSDevmode { dmDeviceName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmSpecVersion: 0 dmDriverVersion: 0 dmSize: 0 dmDriverExtra: 0 dmFields: 0 dmOrientation: 0 dmPaperSize: 0 dmPaperLength: 0 dmPaperWidth: 0 dmScale: 0 dmCopies: 0 dmDefaultSource: 0 dmPrintQuality: 0 dmColor: 0 dmDuplex: 0 dmYResolution: 0 dmTTOption: 0 dmCollate: 0 dmFormName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmLogPixels: 0 dmBitsPerPel: 0 dmPelsWidth: 0 dmPelsHeight: 0 dmDisplayFlags: 0 dmDisplayFrequency: 0 dmICMMethod: 0 dmICMIntent: 0 dmMediaType: 0 dmDitherType: 0 dmReserved1: 0 dmReserved2: 0 } *OSDevmode { dmDeviceName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmSpecVersion: 0 dmDriverVersion: 0 dmSize: 0 dmDriverExtra: 0 dmFields: 0 dmOrientation: 0 dmPaperSize: 0 dmPaperLength: 0 dmPaperWidth: 0 dmScale: 0 dmCopies: 0 dmDefaultSource: 0 dmPrintQuality: 0 dmColor: 0 dmDuplex: 0 dmYResolution: 0 dmTTOption: 0 dmCollate: 0 dmFormName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmLogPixels: 0 dmBitsPerPel: 0 dmPelsWidth: 0 dmPelsHeight: 0 dmDisplayFlags: 0 dmDisplayFrequency: 0 dmICMMethod: 0 dmICMIntent: 0 dmMediaType: 0 dmDitherType: 0 dmReserved1: 0 dmReserved2: 0 } . . *OSDevmode { dmDeviceName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmSpecVersion: 0 dmDriverVersion: 0 dmSize: 0 dmDriverExtra: 0 dmFields: 0 dmOrientation: 0 dmPaperSize: 0 dmPaperLength: 0 dmPaperWidth: 0 dmScale: 0 dmCopies: 0 dmDefaultSource: 0 dmPrintQuality: 0 dmColor: 0 dmDuplex: 0 dmYResolution: 0 dmTTOption: 0 dmCollate: 0 dmFormName: OSUInt8 [32] {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0} dmLogPixels: 0 dmBitsPerPel: 0 dmPelsWidth: 0 dmPelsHeight: 0 dmDisplayFlags: 0 dmDisplayFrequency: 0 dmICMMethod: 0 dmICMIntent: 0 dmMediaType: 0 dmDitherType: 0 dmReserved1: 0 dmReserved2: 0 }} temp3 = nil temp4 = [44 205 35 0] temp5 = OSHandle {2346284} temp6 = 2 CgPrintJobAttributes class>>#defaultForDriver:device:medium:oldAttributes: receiver = CgPrintJobAttributes arg1 = 'winspool' arg2 = '\\MyPrintServer\P_sg4095' arg3 = 'P_sg4095.MY.SELF.COM' arg4 = nil temp1 = nil temp2 = nil CgPrinterScreenInfo>>#initialize receiver = a CgPrinterScreenInfo temp1 = 'winspool' temp2 = '\\MyPrintServer\P_sg4095' temp3 = 'P_sg4095.MY.SELF.COM' temp4 = nil temp5 = nil temp6 = nil CgPrinterScreenInfo class>>#driverName:deviceName:outputMedium: receiver = CgPrinterScreenInfo arg1 = 'winspool' arg2 = '\\MyPrintServer\P_sg4095' arg3 = 'P_sg4095.MY.SELF.COM' CgWinPrinterServer class>>#allPrinterScreenInfos receiver = CgWinPrinterServer temp1 = [0 0 0 0 50 77 27 0 48 77 27 0 32 77 27 0 254 76 27 0 252 76 27 0 250 76 27 0 20 73 27 0 248 76 27 0 230 76 27 0 222 76 27 0 220 76 27 0 0 0 0 0 64 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 216 72 27 0 214 72 27 0 196 72 27 0 136 72 27 0 134 72 27 0 132 72 27 0 48 68 27 0 130 72 27 0 112 72 27 0 104 72 27 0 102 72 27 0 0 0 0 0 64 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 226 67 27 0 224 67 27 0 144 67 27 0 52 67 27 0 50 67 27 0 48 67 27 0 164 65 27 0 46 67 27 0 26 67 27 0 18 67 27 0 16 67 27 0 0 0 0 0 64 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 106 62 27 0 58 62 27 0 40 62 27 0 254 61 27 0 198 61 27 0 134 61 27 0 76 61 27 0 36 30 27 0 74 61 27 0 56 61 27 0 48 61 27 0 46 61 27 0 20 29 27 0 25 42 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 238 28 27 0 190 28 27 0 172 28 27 0 130 28 27 0 74 28 27 0 72 28 27 0 64 28 27 0 24 253 26 0 62 28 27 0 44 28 27 0 36 28 27 0 34 28 27 0 8 252 26 0 24 34 0 0 1 0 ...etc...] temp2 = [196 154 0 0] temp3 = [8 0 0 0] temp4 = true temp5 = 39620 temp6 = 8 temp7 = Could not print receiver temp8 = Dictionary(a CgPrinterScreenInfo a CgPrinterScreenInfo a CgPrinterScreenInfo a CgPrinterScreenInfo ) temp9 = 5 CgWinPrinterServer class>>#isValidServerName: receiver = CgWinPrinterServer arg1 = '\\MyPrintServer\P_KW4711,winspool,P_KW4711.MY.SELF.COM' [] in CgServer class>>#open: receiver = CgServer arg1 = '\\MyPrintServer\P_KW4711,winspool,P_KW4711.MY.SELF.COM' blockarg1 = CgWinPrinterServer OrderedCollection>>#do: receiver = OrderedCollection(CgWinPrinterServer CgWinServer ) arg1 = [] in CgServer class>>#open: CgServer class>>#open: receiver = CgServer arg1 = '\\MyPrintServer\P_KW4711,winspool,P_KW4711.MY.SELF.COM' [] in CgServer class>>#named: receiver = CgServer arg1 = '\\MyPrintServer\P_KW4711,winspool,P_KW4711.MY.SELF.COM' temp1 = '\\MyPrintServer\P_KW4711,winspool,P_KW4711.MY.SELF.COM' temp2 = nil Dictionary>>#at:ifAbsent: receiver = Dictionary(a CgWinServer ) arg1 = '\\MyPrintServer\P_KW4711,winspool,P_KW4711.MY.SELF.COM' arg2 = [] in CgServer class>>#named: temp1 = 5 temp2 = nil temp3 = 11 temp4 = 5 CgServer class>>#named: receiver = CgServer arg1 = '\\MyPrintServer\P_KW4711,winspool,P_KW4711.MY.SELF.COM' temp1 = '\\MyPrintServer\P_KW4711,winspool,P_KW4711.MY.SELF.COM' temp2 = nil CgDisplay class>>#open: receiver = CgDisplay arg1 = '\\MyPrintServer\P_KW4711,winspool,P_KW4711.MY.SELF.COM' temp1 = nil CwAppContext>>#openDisplay:applicationName:applicationClass: receiver = a CwAppContext arg1 = '\\MyPrintServer\P_KW4711,winspool,P_KW4711.MY.SELF.COM' arg2 = 'envy' arg3 = 'ENVY' CwAppContext>>#openDisplay: receiver = a CwAppContext arg1 = '\\MyPrintServer\P_KW4711,winspool,P_KW4711.MY.SELF.COM' -- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
Hello,
up with this again, because another customer has the same problem with the printer initialization. What can I do to solve this problem? Regards Klaus -- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/OG5PUFlRSzdRa01K. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
We've seen this. Note it's CgPrintJobAttributes not CgPrinterJobAttributes. It sounds like IBM itself may have at least proposed a fix at some point. Info from our developer:
"In our case, it wasn't the 7th printer, but in the case outlined in 2905, the
printer crashed us trying to fill in a 7th osDevMode structure when the printer
had only indicated it needed 6.75... osDevMode structures. How it seems to
work is VAST asks the printer how much space it needs to fill in the osDevMode
info: devModeSize := docPropertiesFn callWith: HwndNull with: prHandle with: deviceNamePSZ with: nil with: nil with: 0. Then based on this response, VAST creates a ByteArray large enough to hold 'devModeSize + 10 bytes'. As this was not always enough to end up with an even number of 'OsDevMode fixedSize' buffers, we changed the code to what it is now. I never have completely understood the 'OsDevMode thingies'. I just know that different printers require different numbers of them when asked. Some are high like the one in your example below, and some are much lower. In the end, the this fix did not end up solving the problem our customer was having; however, we left it in the code as it seems to be a safe change that provides a little more cushion than the '+10' solution. In thinking about this again, I guess the updated solution does not always give us at least +10 bytes as the IBM solution did .. just food for thought." -- You received this message because you are subscribed to the Google Groups "VA Smalltalk" group. To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/RkpwTzJGTDNWbzhK. To post to this group, send email to [hidden email]. To unsubscribe from this group, send email to [hidden email]. For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en. |
Free forum by Nabble | Edit this page |