[java][SWT] printen en NO MORE HANDLES error

Pagina: 1
Acties:

  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 21-08 10:54
Ik ben bezig met een zakelijke (vrij grote) client-server applicatie in Java, waarbij ik SWT gebruik voor zowel de GUI als het printen...
Echter de documentatie is nogal beperkt van SWT...

Zo heb ik niet kunnen vinden hoe je aan kan geven dat je LANDSCAPE wilt printen (het zit iig niet in de PrinterData)

Daarom maak ik een Image aan (waarbij hoogte en breedte worden omgewisseld), teken ik daar vervolgens mijn pagina in. Dan maak ik een 2e image aan (in portrait) en copieer ik al mijn beeldpunten van de landscape naar de portrait image (x wordt y en y wordt -x).
Deze uiteindelijke Image teken ik met GC.drawImage direct op de "printer"...

Echter mijn ontwikkel-machine doet dit prima, maar op de test-machine (en ook de uiteindelijk productie-machine) krijg ik een SWT_NO_MORE_HANDLES error bij het aanmaken van de allereerste (landscape) Image (nog voordat ik ga tekenen).

De testmachine heeft 512 MB en stuurt en printer aan in 600x600 dpi, maar de test-machine heeft 256 MB en stuurt een printer aan in 1200x1200 dpi...

Hoe krijg ik dit opgelost ??

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Rectangle clientArea = printer.getClientArea();
landscapeImg = new Image(printer, clientArea.height, clientArea.width);
gc = new GC(landscapeImg);

.. nu ga ik tekenen op mijn landscape Image met de gc

gc.dispose();
// create portrait image
Rectangle clientArea = printer.getClientArea();
Image portraitImg = new Image(printer, clientArea.width, clientArea.height);

.. copieer data van landscape naar portrait Image

Image correctedImg = new Image(printer, portraitData);
printerGC.drawImage(correctedImg, 0, 0);
correctedImg.dispose();
portraitImg.dispose();
landscapeImg.dispose();


Hij crasht al op de 2e regel (bij het aanmaken van landscapeImg)

[ Voor 25% gewijzigd door GarBaGe op 21-08-2003 13:00 ]

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD


Verwijderd

kan het zijn dat je server geen instances kan aan maken om dat de instance pool leeg is?

  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 21-08 10:54
Verwijderd schreef op 21 augustus 2003 @ 13:16:
kan het zijn dat je server geen instances kan aan maken om dat de instance pool leeg is?
huh?!? instance pool ?? ehh... als ik in de SWT sources spit, gebruiken ze een native OS functie voor het aanmaken van die Images... Namelijk OS.CreateCompatibleBitmap

Hoe zie ik hoe dat zie met die instance pool ??

BTW, beide machines draaien w2k (er stond nog iets in de SWT sources over Images die niet groter mogen zijn dan 16 MB bij w9x OS-en)
de 600x600 dpi heeft ongeveer 30 miljoen beeldpunten
de 1200x1200 dpi heeft ongeveer 120 miljoen beeldpunten

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD


Verwijderd

ik zeg even erbij dat ik nog nooit met SWT heb gewerkt.... als ik kijk naar applicatie servers daar heb ik wel verstand van.... die regel waarop je zegt dat ie crashed maakt een nieuwe instance dus vandaar dat ik denk aan een instance pool... kan ook andere dingen zijn

landscapeImg = new Image(printer, clientArea.height, clientArea.width);

misschien kan je dit beter even in een try catch blok zetten dan weet je tenminste wat er mis gaat.. of kan je wat dingen uitsluiten!

over de instance pool als deze leeg is en de server geen nieuwe mag maken dan kan je programma server site afstorten.

  • GarBaGe
  • Registratie: December 1999
  • Laatst online: 21-08 10:54
Verwijderd schreef op 21 August 2003 @ 14:06:
...
misschien kan je dit beter even in een try catch blok zetten dan weet je tenminste wat er mis gaat.. of kan je wat dingen uitsluiten!

over de instance pool als deze leeg is en de server geen nieuwe mag maken dan kan je programma server site afstorten.
Hij gooit dus een SWT Error, namelijk de NO MORE HANDLES error...
Verder is SWT erg summier over de verdere betekenis hiervan...

Ryzen9 5900X; 16GB DDR4-3200 ; RTX-4080S ; 7TB SSD


  • B-Man
  • Registratie: Februari 2000
  • Niet online
Krijg je een http://dev.eclipse.org/he...SWT.html#ERROR_NO_HANDLES error?

Heb je overigens een stack trace?

--edit
Lees trouwens net dat het te maken kan hebben met je JDK/JRE versie, welke versies draai je op je twee machines?

Dit heeft dan wel niets met printen te maken, maar wel met images (waar jouw code ook op hangt):
https://bugs.eclipse.org/bugs/show_bug.cgi?id=41033

In die bug wordt ook gesproken over de videodriver van nvidia, die het probleem mogelijk veroorzaakt.

[ Voor 51% gewijzigd door B-Man op 22-08-2003 11:55 ]

Pagina: 1