From 49db542a2c1b9d5c47d4e02d830849eb1fcb1510 Mon Sep 17 00:00:00 2001 From: Timo Kilpilehto Date: Mon, 3 Jun 2024 15:39:32 +0300 Subject: [PATCH] Fix#355 by aquiring exlusive transation lock ...as was done until commit 6347f0f removed this behaviour --- tool/src/main/java/pro/javacard/gptool/GPTool.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tool/src/main/java/pro/javacard/gptool/GPTool.java b/tool/src/main/java/pro/javacard/gptool/GPTool.java index 59053c80..7e26c0d0 100644 --- a/tool/src/main/java/pro/javacard/gptool/GPTool.java +++ b/tool/src/main/java/pro/javacard/gptool/GPTool.java @@ -159,6 +159,7 @@ public static void main(String[] argv) { } reader = reader.map(e -> args.has(OPT_DEBUG) ? LoggingCardTerminal.getInstance(e) : e); c = reader.get().connect("*"); + c.beginExclusive(); ret = new GPTool().run(CardBIBO.wrap(c), argv); } catch (IllegalArgumentException e) { System.err.println("Invalid argument: " + e.getMessage()); @@ -170,6 +171,11 @@ public static void main(String[] argv) { e.printStackTrace(); } finally { if (c != null) { + try { + c.endExclusive(); + } catch (CardException e) { + // Warn or ignore + } try { c.disconnect(resetOnDisconnect); } catch (CardException e) {