Skip to content

Commit 2168cf8

Browse files
authored
Merge pull request #256 from sealink/add-logging-around-error-with-jdk21
Add additional logging around known spot of errors to try and gather more info
2 parents e7ac8ac + 50070a3 commit 2168cf8

File tree

4 files changed

+37
-5
lines changed

4 files changed

+37
-5
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ docker {
187187
import com.bmuschko.gradle.docker.tasks.image.Dockerfile
188188

189189
task createDockerfile(type: Dockerfile) {
190-
from 'openjdk:19-jdk-buster'
190+
from 'eclipse-temurin:19-jdk'
191191
label(
192192
'maintainer': '[email protected]'
193193
)

src/main/kotlin/au/com/sealink/quickprint/ApplicationController.kt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import au.com.sealink.quickprint.requests.*
77
import org.springframework.web.bind.annotation.*
88
import org.springframework.http.MediaType
99
import kotlinx.coroutines.*
10+
import java.time.LocalDateTime
1011

1112
import java.util.*
1213

@@ -22,6 +23,7 @@ class ApplicationController(private val repository: PrinterRepository) {
2223

2324
@PostMapping("/print-receipts")
2425
fun printReceipts(@RequestBody request: PrintReceipt) : Response {
26+
System.err.println("[${LocalDateTime.now()}] RECEIPTS: printer='${request.printerName}', tickets=${request.tickets.size}")
2527
val unsupportedTypes = EnumSet.of(ElementType.Barcode, ElementType.Image)
2628
val printer = ReceiptPrinter(request.printerName)
2729
val tickets = request.tickets.map {
@@ -36,14 +38,21 @@ class ApplicationController(private val repository: PrinterRepository) {
3638
}
3739

3840
GlobalScope.launch {
39-
printer.printTickets(tickets)
41+
try {
42+
printer.printTickets(tickets)
43+
System.err.println("[${LocalDateTime.now()}] RECEIPTS SUCCESS: printer='${request.printerName}'")
44+
} catch (e: Exception) {
45+
System.err.println("[${LocalDateTime.now()}] RECEIPTS FAILED: printer='${request.printerName}', error=${e.javaClass.name}: ${e.message}")
46+
e.printStackTrace()
47+
}
4048
}
4149

4250
return Response()
4351
}
4452

4553
@PostMapping("/print-tickets")
4654
fun printTickets(@RequestBody request: PrintTicket) : Response {
55+
System.err.println("[${LocalDateTime.now()}] TICKETS: printer='${request.printerName}', tickets=${request.tickets.size}, format=${request.pageFormat.width}x${request.pageFormat.height}")
4756
val printer = repository.requestPrinter(request.printerName)
4857
val settings = TicketPageSettings(request.pageFormat.width,
4958
request.pageFormat.height,
@@ -59,7 +68,13 @@ class ApplicationController(private val repository: PrinterRepository) {
5968
}
6069

6170
GlobalScope.launch {
62-
printer.printTickets(tickets)
71+
try {
72+
printer.printTickets(tickets)
73+
System.err.println("[${LocalDateTime.now()}] TICKETS SUCCESS: printer='${request.printerName}'")
74+
} catch (e: Exception) {
75+
System.err.println("[${LocalDateTime.now()}] TICKETS FAILED: printer='${request.printerName}', error=${e.javaClass.name}: ${e.message}")
76+
e.printStackTrace()
77+
}
6378
}
6479
return Response()
6580
}

src/main/kotlin/au/com/sealink/quickprint/core/PrintServicePrinterRepository.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,20 @@ package au.com.sealink.quickprint.core
22

33
import au.com.sealink.printing.ticketprinter.PrintServiceLocator
44
import org.springframework.stereotype.Repository
5+
import java.time.LocalDateTime
56
import javax.print.PrintService
67

78
@Repository
89
class PrintServicePrinterRepository : PrinterRepository {
910
override fun requestPrinter(name: String): Printer {
11+
System.err.println("[${LocalDateTime.now()}] PrinterRepository REQUEST: printer='$name'")
1012
return TicketPrinter(name)
1113
}
1214

1315
override fun findAll(): Iterable<PrintService> {
14-
return PrintServiceLocator().all.toList()
16+
System.err.println("[${LocalDateTime.now()}] PrinterRepository ENUM START")
17+
val services = PrintServiceLocator().all.toList()
18+
System.err.println("[${LocalDateTime.now()}] PrinterRepository ENUM FOUND: count=${services.size}, names=${services.joinToString(",") { it.name }}")
19+
return services
1520
}
1621
}

src/main/kotlin/au/com/sealink/quickprint/core/TicketPrinter.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,31 @@ package au.com.sealink.quickprint.core
33
import au.com.sealink.printing.ticketprinter.Ticket
44
import au.com.sealink.printing.ticketprinter.TicketPageSettings
55
import au.com.sealink.printing.ticketprinter.TicketPrinter
6+
import java.time.LocalDateTime
67

78
class TicketPrinter(private var name: String) : Printer {
89
private val mPrinter : TicketPrinter = TicketPrinter()
910

1011
init {
12+
System.err.println("[${LocalDateTime.now()}] TicketPrinter INIT: printer='$name'")
1113
mPrinter.setPrinter(this.name)
14+
System.err.println("[${LocalDateTime.now()}] TicketPrinter INIT SUCCESS: printer='$name'")
1215
}
1316

1417
override fun setTicketPageSettings(settings: TicketPageSettings) {
18+
System.err.println("[${LocalDateTime.now()}] TicketPrinter SET_SETTINGS: printer='$name'")
1519
mPrinter.setTicketPageSettings(settings)
1620
}
1721

1822
override fun printTickets(tickets: List<Ticket>) {
19-
mPrinter.printTickets(tickets)
23+
try {
24+
System.err.println("[${LocalDateTime.now()}] TicketPrinter PRINT START: printer='$name', tickets=${tickets.size}, thread=${Thread.currentThread().name}")
25+
mPrinter.printTickets(tickets)
26+
System.err.println("[${LocalDateTime.now()}] TicketPrinter PRINT SUCCESS: printer='$name'")
27+
} catch (e: Exception) {
28+
System.err.println("[${LocalDateTime.now()}] TicketPrinter PRINT FAILED: printer='$name', error=${e.javaClass.name}: ${e.message}")
29+
e.printStackTrace()
30+
throw e
31+
}
2032
}
2133
}

0 commit comments

Comments
 (0)