Fix YMS bug
Build and Test j3270 / Build JAR & Run Tests (push) Successful in 43s
Release j3270 / Build & Publish Release (push) Successful in 43s

This commit is contained in:
2026-08-20 19:58:46 -04:00
parent 10a31476c2
commit f0fc1b6e70
13 changed files with 133 additions and 43 deletions
@@ -438,16 +438,37 @@ public class J3270App extends JFrame implements ConnectionListener, ScreenUpdate
}
}
// Configure logging over the absolute root logger
// Configure logging for application packages
Logger globalRoot = Logger.getLogger("");
for (java.util.logging.Handler h : globalRoot.getHandlers()) {
globalRoot.removeHandler(h);
}
globalRoot.setLevel(debug ? Level.ALL : Level.WARNING);
globalRoot.setLevel(Level.WARNING);
ConsoleHandler handler = new ConsoleHandler();
handler.setLevel(Level.ALL);
handler.setLevel(debug ? Level.ALL : Level.INFO);
handler.setFormatter(new SimpleFormatter());
globalRoot.addHandler(handler);
Logger appLogger = Logger.getLogger("org.pubvm.j3270");
appLogger.setLevel(Level.ALL);
appLogger.addHandler(handler);
appLogger.setUseParentHandlers(false);
Logger libLogger = Logger.getLogger("org.lib3270j");
libLogger.setLevel(Level.ALL);
libLogger.addHandler(handler);
libLogger.setUseParentHandlers(false);
try {
java.util.logging.FileHandler fileHandler = new java.util.logging.FileHandler("j3270.log", 10 * 1024 * 1024, 1, false);
fileHandler.setLevel(Level.ALL);
fileHandler.setFormatter(new SimpleFormatter());
appLogger.addHandler(fileHandler);
libLogger.addHandler(fileHandler);
log.info("Logging protocol trace to j3270.log");
} catch (Exception e) {
System.err.println("Could not create j3270.log: " + e.getMessage());
}
// Load INI config file if specified
if (configFile != null) {
@@ -889,10 +889,20 @@ public class TerminalPanel extends JPanel {
if (faIsHigh(currentFA & 0xFF))
bold = true;
// Handle invisible fields (zero intensity)
// Handle invisible fields (zero intensity / password fields)
// Modern UX: render '*' for typed characters so user sees length/digit count
if (faIsZero(currentFA & 0xFF)) {
g2.setColor(this.bgColor);
g2.fillRect(x, y, cellWidth, cellHeight);
char ch = ea.ucs4;
if (ch > 0x20 && ch != 0xFF) {
Font f = bold ? terminalFont.deriveFont(Font.BOLD) : terminalFont;
g2.setFont(f);
g2.setColor(fgColor);
g2.drawString("*", x, y + fontAscent);
}
if (isCellSelected(row, col)) {
g2.setColor(SELECTION_COLOR);
g2.fillRect(x, y, cellWidth, cellHeight);