Release Notes — Sui 0.75A
Branch: Sui075A
Base: master @ 079052c (2026-03-22 — "Fix schema list")
Date: 2026-04-04
Commits in this release: 11
Summary of Changes
| Area |
Type |
Description |
| BigQuery connections |
Feature |
Keep-alive cache with 10-hour TTL |
| BigQuery result sets |
Fix |
Row limit enforced to prevent unbounded fetches |
| Connection shutdown |
Feature |
All cached connections closed at exit with elapsed-time log |
| DConnInf |
Feature |
Complete rewrite — shows ~80 JDBC metadata properties |
| JDBC compatibility |
Fix |
Guards for AbstractMethodError (JDBC 4.0/4.1) and SQLException (Mimer) |
| Garabage thread |
Fix |
Interrupt handling, stale comments, dead code removed |
| Store* methods |
Fix |
Race condition eliminated — all 7 methods now synchronized |
| Build versioning |
Feature |
Maven-filtered build.properties bakes version + timestamp into jar |
| About dialog |
Feature |
Shows Build: <version> built <timestamp> |
| DatabaseManager |
Feature |
New helper class added |
| Image assets |
Housekeeping |
All images moved from src/ to src/imgs/ |
| Unused classes |
Housekeeping |
15 unused source files moved to src/unused/ |
| POM dependencies |
Security |
3 dependencies updated to remove known vulnerabilities |
| Documentation |
New |
8 new documentation files created |
Detailed Changes by File
Source Code
src/ConnDB.java — BigQuery connection cache + shutdown close
- Added
ConnInfo inner class holding conn, valid, and createdAt timestamp.
- Added static LRU cache (
LinkedHashMap, max 20 entries) exclusively for BigQuery connections.
- Added
BIGQUERY_MAX_AGE_MS constant (10 hours).
- Added
evictStaleBigQueryConnections() — prunes cache entries older than 10 hours.
getConn(): BigQuery connections are served from cache on repeat calls; TTL eviction runs first. Non-BigQuery connections always open fresh via DriverManager.
closeConn(): BigQuery connections are intentionally not closed (cache reuse); all others close normally.
- New
closeAllConnections() static method: closes every cached connection at shutdown, prints Connection [url|uid] closed after X minutes for each, then clears the cache.
src/DConnInf.java — Complete rewrite
- Now displays approximately 80
DatabaseMetaData properties grouped into sections: basic info, capacity limits, SQL grammar support, null sorting, identifier handling, feature flags, transaction support.
- Three JDBC-version-specific methods individually guarded:
getRowIdLifetime() — catch (AbstractMethodError) (JDBC 4.0)
autoCommitFailureClosesAllResultSets() — catch (AbstractMethodError) (JDBC 4.0)
generatedKeyAlwaysReturned() — catch (AbstractMethodError) (JDBC 4.1)
locatorsUpdateCopy() — catch (SQLException) (Mimer: "Optional feature not implemented")
- Results displayed in a
QueryRep panel (600×700).
src/RunIt.java — BigQuery row limit + image path fixes
- Row limit now enforced for BigQuery result sets to prevent runaway memory use.
- Image references updated to
imgs/ subfolder.
InterruptedException now calls break immediately instead of falling through to the rest of the loop body — prevents a spurious partial save iteration after ShutDown() calls interrupt().
- Removed redundant
i = 0 reset after the (i % 30) == 0 periodic save block.
- Removed no-op
Thread.currentThread() call.
- Comments corrected: "60:th time" → "every 30th wake-up"; "59:th time" → "every 61st wake-up"; typos "interupted" and "extarnalizes" fixed.
src/Sui.java — Synchronized saves + build info + shutdown + image paths
- All 7
.pro file save methods marked synchronized to eliminate the race condition between the Garabage background thread and the EDT:
StoreProf(), StoreProp(), StoreSheetProp(), StoreConnProp(), StoreCPProp(), StoreKeywProp(), StoreTmpProp()
- About dialog updated to show
Build: <version> built <timestamp> (via BuildInfo.getBuildId()).
ShutDown() now calls ConnDB.closeAllConnections() before System.exit(0).
- All image references updated to
imgs/ subfolder.
src/BuildInfo.java — New file
- Reads
build.properties from classpath at class-load time (static initialiser).
- Exposes
getVersion(), getTimestamp(), getBuildId() static methods.
- Gracefully falls back to
"unknown" if the resource is missing.
src/build.properties — New file
- Maven filter template:
build.version=${project.version}
build.timestamp=${maven.build.timestamp}
- Replaced with actual values by Maven resource filtering at build time.
src/DatabaseManager.java — New file
- New helper class for database management operations.
Image assets — src/ → src/imgs/
- All ~170 image files (
.gif, .png) moved to src/imgs/.
- Path references updated in:
FavPop, FavQry, Propm, PropmAll, QryPop, QueryRep, RunIt, ShowQryBox, Sui, SuiTb, Propmc, Propmcp, PropmMisc, PropmSheetA.
Unused classes — src/ → src/unused/
15 source files moved, no longer part of the active build:
| File |
DirectoryReader.java |
DirectoryWriter.java |
GetJar.java |
ImpXLSt.java |
JComboBox.java |
LineNumbering.java |
LoadFromJar.java |
PrintComponents.java |
PropEdit.java |
PropcS.java |
PropmCAll.java |
Propmap.java |
ResultsModel.java |
RowHeaderExample.java |
SrchAdapter.java |
SrchSheet.java |
SymbThd.java |
TImpXLS.java |
TextFilter.java |
TextPrinter.java |
URLClassLoad.java |
Build (pom.xml)
- Version changed from
0.0.1-SNAPSHOT to 0.75A.
- Added
<maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format> property.
- Resource block split:
build.properties filtered separately so Maven tokens are substituted; all other resources left unfiltered.
- 3 dependency versions updated to remove known security vulnerabilities.
Documentation (all new files)
| File |
Contents |
USAGE.md |
End-user usage guide |
docs/ConnDB.md |
ConnDB connection factory logic, BigQuery caching, TTL eviction, closeAllConnections() shutdown procedure |
docs/SuiHome.md |
Sui home directory resolution chain, Sui.ini syntax, symbolic token expansion, Look and Feel / FlatLaf configuration |
docs/ProFileRecovery.md |
All .pro files described, SuiBup backup folder, Garabage periodic save/backup schedule, recovery procedures |
docs/hierarchy-Sui.md |
Sui class call and dependency hierarchy |
docs/hierarchy-RunIt.md |
RunIt class call hierarchy |
docs/hierarchy-RunItB.md |
RunItB class call hierarchy |
docs/unreferenced-classes.md |
Classes with no detected callers in the active source tree |
Commit Log
| Hash |
Date |
Message |
3c4a162 |
2026-04-01 |
Keep connections for BigQuery |
208f34a |
2026-04-01 |
Set limit for BigQuery |
732ede7 |
2026-04-01 |
Created subfolder for images |
27be3fb |
2026-04-04 |
Additional ConnDB caching fixes; DConnInf complete rewrite |
18c715a |
2026-04-04 |
Doc describing setting SuiHome |
988fb60 |
2026-04-04 |
Added section about look and feel |
e09d3a6 |
2026-04-04 |
Added Profile Recovery description |
c2f78a6 |
2026-04-04 |
Fixed Garabage class (interrupt, dead code, comments) |
0e685af |
2026-04-04 |
Fixed Sui version and build info |
50d7ca1 |
2026-04-04 |
Added logic to close connections in cache at close down |
580c5d5 |
2026-04-04 |
Fixed POM dependencies to avoid vulnerabilities |