Skip to content

Commit

Permalink
Add safeguard check for persistent keys
Browse files Browse the repository at this point in the history
  • Loading branch information
safris committed Jul 22, 2023
1 parent e95dca7 commit b34ade7
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
9 changes: 9 additions & 0 deletions jsql/src/main/java/org/jaxdb/jsql/Schema.java
Original file line number Diff line number Diff line change
Expand Up @@ -153,4 +153,13 @@ OnNotifyCallbackList getSession(final String sessionId) {
if (logger.isTraceEnabled()) logger.trace(getClass().getSimpleName() + ".getSession(" + sessionId + "): " + ObjectUtil.simpleIdentityString(onNotifyCallbackList));
return onNotifyCallbackList;
}

// FIXME: Remove this when confidence is high
static data.Key assertKey(final data.Key k1, final data.Key k2) {
if (k1.equals(k2))
return k1;

if (logger.isErrorEnabled()) logger.error("ASYNCDB key mismatch: " + k1 + " " + k2);
return k2;
}
}
6 changes: 4 additions & 2 deletions jsql/src/main/java/org/jaxdb/jsql/generator/KeyModels.java
Original file line number Diff line number Diff line change
Expand Up @@ -146,15 +146,17 @@ String keyRefArgsInternal(final String cacheSingletonName, final String cacheMet
if (!declared.add(cacheColumnsRef + ":" + args))
return null;

final String key = data.Key.class.getCanonicalName() + ".with(" + cacheColumnsRef + ", " + args + ")";

// if (isForeign)
// return data.Key.class.getCanonicalName() + ".with(" + cacheColumnsRef + ", " + args + ")";
// return key;

// FIXME: Uncomment to continue work on persistent keys
final String argsXX = keyClauseValues.replace("{1}.this.", "").replace("{2}", curlOld.toString());
final String xxx = argsXX.replace(".get" + curlOld, "").replace("()", "_").replace(", ", "");
final String prefix = "_" + ColumnModels.getInstanceNameForCache(cacheMethodName, xxx) + "ON_" + toTableRefName + curlOld;
final String name = prefix + "_Key$";
return (addSelfRef ? "self." : "") + include(cacheColumnsRef, name, argsXX, curlOld) + "/* " + comment + "*/";
return "assertKey(" + (addSelfRef ? "self." : "") + include(cacheColumnsRef, name, argsXX, curlOld) + ", " + key + ")";
}

@Override
Expand Down

0 comments on commit b34ade7

Please sign in to comment.