Skip to content

Commit 8b4b67e

Browse files
committed
Add additional logging around known spot of errors to try and gather more info. JDK 21
1 parent e7ac8ac commit 8b4b67e

File tree

7 files changed

+48
-16
lines changed

7 files changed

+48
-16
lines changed

.github/workflows/gradle.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ jobs:
1818

1919
steps:
2020
- uses: actions/checkout@v2
21-
- name: Set up JDK 19
21+
- name: Set up JDK 21
2222
uses: actions/setup-java@v2
2323
with:
24-
java-version: "19"
25-
distribution: "adopt"
24+
java-version: "21"
25+
distribution: "temurin"
2626
server-id: github
2727
settings-path: ${{ github.workspace }}
2828

.tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
java adoptopenjdk-19.0.2+7
1+
java temurin-21.0.2+13.0.LTS

build.gradle

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
plugins {
22
id 'org.springframework.boot' version '2.6.6'
33
id 'io.spring.dependency-management' version '1.1.0'
4-
id 'org.jetbrains.kotlin.jvm' version '1.8.21'
5-
id 'org.jetbrains.kotlin.plugin.spring' version '1.8.21'
6-
id 'org.jetbrains.kotlin.plugin.allopen' version '1.8.21'
4+
id 'org.jetbrains.kotlin.jvm' version '1.9.22'
5+
id 'org.jetbrains.kotlin.plugin.spring' version '1.9.22'
6+
id 'org.jetbrains.kotlin.plugin.allopen' version '1.9.22'
77
id 'war'
88
id 'maven-publish'
99
id 'net.nemerosa.versioning' version '3.0.0'
@@ -30,17 +30,17 @@ test {
3030
}
3131

3232
group = 'au.com.sealink'
33-
sourceCompatibility = 19
33+
sourceCompatibility = 21
3434
compileKotlin {
3535
kotlinOptions {
3636
freeCompilerArgs = ["-Xjsr305=strict"]
37-
jvmTarget = "19"
37+
jvmTarget = "21"
3838
}
3939
}
4040
compileTestKotlin {
4141
kotlinOptions {
4242
freeCompilerArgs = ["-Xjsr305=strict"]
43-
jvmTarget = "19"
43+
jvmTarget = "21"
4444
}
4545
}
4646

@@ -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 'openjdk:21-jdk-bookworm'
191191
label(
192192
'maintainer': '[email protected]'
193193
)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
44
networkTimeout=10000
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

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)