Skip to content

Commit

Permalink
LDEV-5099 - centralize getting pagecontext id and use parent pagecont…
Browse files Browse the repository at this point in the history
…ext id if there is no pagecontext
  • Loading branch information
michaeloffner committed Oct 8, 2024
1 parent 0b51e1b commit e5fba89
Show file tree
Hide file tree
Showing 8 changed files with 44 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,23 @@ public static TimeZone getTimeZone() {
return getTimeZone((PageContext) null);
}

public static int getId() {
PageContext pc = pcThreadLocal.get();
if (pc != null) return pc.getId();

// pc from parent thread
pc = pcThreadLocalInheritable.get();
if (pc != null) return pc.getId();

return 0;
}

public static int getId(PageContext pc) {
// pc provided
if (pc != null) return pc.getId();
return getId();
}

public static PageContext get(PageContext pc) {
if (pc == null) return get();
return pc;
Expand Down
18 changes: 9 additions & 9 deletions core/src/main/java/lucee/runtime/type/QueryColumnImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -524,52 +524,52 @@ public Object getParent() {

@Override
public String castToString() throws PageException {
return Caster.toString(get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), null));
return Caster.toString(get(query.getCurrentrow(ThreadLocalPageContext.getId()), null));
}

@Override
public String castToString(String defaultValue) {
Object _null = NullSupportHelper.NULL();
Object value = get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), _null);
Object value = get(query.getCurrentrow(ThreadLocalPageContext.getId()), _null);
if (value == _null) return defaultValue;
return Caster.toString(value, defaultValue);
}

@Override
public boolean castToBooleanValue() throws PageException {
return Caster.toBooleanValue(get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), null));
return Caster.toBooleanValue(get(query.getCurrentrow(ThreadLocalPageContext.getId()), null));
}

@Override
public Boolean castToBoolean(Boolean defaultValue) {
Object _null = NullSupportHelper.NULL();
Object value = get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), _null);
Object value = get(query.getCurrentrow(ThreadLocalPageContext.getId()), _null);
if (value == _null) return defaultValue;
return Caster.toBoolean(value, defaultValue);
}

@Override
public double castToDoubleValue() throws PageException {
return Caster.toDoubleValue(get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), null));
return Caster.toDoubleValue(get(query.getCurrentrow(ThreadLocalPageContext.getId()), null));
}

@Override
public double castToDoubleValue(double defaultValue) {
Object _null = NullSupportHelper.NULL();
Object value = get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), _null);
Object value = get(query.getCurrentrow(ThreadLocalPageContext.getId()), _null);
if (value == _null) return defaultValue;
return Caster.toDoubleValue(value, true, defaultValue);
}

@Override
public DateTime castToDateTime() throws PageException {
return DateCaster.toDateAdvanced(get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), null), null);
return DateCaster.toDateAdvanced(get(query.getCurrentrow(ThreadLocalPageContext.getId()), null), null);
}

@Override
public DateTime castToDateTime(DateTime defaultValue) {
Object _null = NullSupportHelper.NULL();
Object value = get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), _null);
Object value = get(query.getCurrentrow(ThreadLocalPageContext.getId()), _null);
if (value == _null) return defaultValue;
return DateCaster.toDateAdvanced(value, DateCaster.CONVERTING_TYPE_OFFSET, null, defaultValue);
}
Expand Down Expand Up @@ -643,7 +643,7 @@ protected void populate(QueryColumnImpl trg, boolean deepCopy) {
@Override
public String toString() {
try {
return Caster.toString(get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), null));
return Caster.toString(get(query.getCurrentrow(ThreadLocalPageContext.getId()), null));
}
catch (PageException e) {
return super.toString();
Expand Down
24 changes: 12 additions & 12 deletions core/src/main/java/lucee/runtime/type/QueryColumnRef.java
Original file line number Diff line number Diff line change
Expand Up @@ -181,12 +181,12 @@ public Object get(Collection.Key key) throws PageException {

@Override
public Object get(String key, Object defaultValue) {
return get(Caster.toIntValue(key, query.getCurrentrow(ThreadLocalPageContext.get().getId())), defaultValue);
return get(Caster.toIntValue(key, query.getCurrentrow(ThreadLocalPageContext.getId())), defaultValue);
}

@Override
public Object get(Collection.Key key, Object defaultValue) {
return get(Caster.toIntValue(key, query.getCurrentrow(ThreadLocalPageContext.get().getId())), defaultValue);
return get(Caster.toIntValue(key, query.getCurrentrow(ThreadLocalPageContext.getId())), defaultValue);
}

@Override
Expand All @@ -201,12 +201,12 @@ public Object set(Collection.Key key, Object value) throws PageException {

@Override
public Object setEL(String key, Object value) {
return setEL(Caster.toIntValue(key, query.getCurrentrow(ThreadLocalPageContext.get().getId())), value);
return setEL(Caster.toIntValue(key, query.getCurrentrow(ThreadLocalPageContext.getId())), value);
}

@Override
public Object setEL(Collection.Key key, Object value) {
return setEL(Caster.toIntValue(key, query.getCurrentrow(ThreadLocalPageContext.get().getId())), value);
return setEL(Caster.toIntValue(key, query.getCurrentrow(ThreadLocalPageContext.getId())), value);
}

@Override
Expand Down Expand Up @@ -248,52 +248,52 @@ public DumpData toDumpData(PageContext pageContext, int maxlevel, DumpProperties

@Override
public String castToString() throws PageException {
return Caster.toString(get(query.getCurrentrow(ThreadLocalPageContext.get().getId())));
return Caster.toString(get(query.getCurrentrow(ThreadLocalPageContext.getId())));
}

@Override
public String castToString(String defaultValue) {
Object _null = NullSupportHelper.NULL();
Object value = get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), _null);
Object value = get(query.getCurrentrow(ThreadLocalPageContext.getId()), _null);
if (value == _null) return defaultValue;
return Caster.toString(value, defaultValue);
}

@Override
public boolean castToBooleanValue() throws PageException {
return Caster.toBooleanValue(get(query.getCurrentrow(ThreadLocalPageContext.get().getId())));
return Caster.toBooleanValue(get(query.getCurrentrow(ThreadLocalPageContext.getId())));
}

@Override
public Boolean castToBoolean(Boolean defaultValue) {
Object _null = NullSupportHelper.NULL();
Object value = get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), _null);
Object value = get(query.getCurrentrow(ThreadLocalPageContext.getId()), _null);
if (value == _null) return defaultValue;
return Caster.toBoolean(value, defaultValue);
}

@Override
public double castToDoubleValue() throws PageException {
return Caster.toDoubleValue(get(query.getCurrentrow(ThreadLocalPageContext.get().getId())));
return Caster.toDoubleValue(get(query.getCurrentrow(ThreadLocalPageContext.getId())));
}

@Override
public double castToDoubleValue(double defaultValue) {
Object _null = NullSupportHelper.NULL();
Object value = get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), _null);
Object value = get(query.getCurrentrow(ThreadLocalPageContext.getId()), _null);
if (value == _null) return defaultValue;
return Caster.toDoubleValue(value, true, defaultValue);
}

@Override
public DateTime castToDateTime() throws PageException {
return Caster.toDate(get(query.getCurrentrow(ThreadLocalPageContext.get().getId())), null);
return Caster.toDate(get(query.getCurrentrow(ThreadLocalPageContext.getId())), null);
}

@Override
public DateTime castToDateTime(DateTime defaultValue) {
Object _null = NullSupportHelper.NULL();
Object value = get(query.getCurrentrow(ThreadLocalPageContext.get().getId()), _null);
Object value = get(query.getCurrentrow(ThreadLocalPageContext.getId()), _null);
if (value == _null) return defaultValue;
return DateCaster.toDateAdvanced(value, DateCaster.CONVERTING_TYPE_OFFSET, null, defaultValue);
}
Expand Down
4 changes: 2 additions & 2 deletions core/src/main/java/lucee/runtime/type/QueryImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -2644,7 +2644,7 @@ public void insertRow() throws SQLException {

@Override
public boolean isAfterLast() throws SQLException {
return getCurrentrow(ThreadLocalPageContext.get().getId()) > getRecordcount();
return getCurrentrow(ThreadLocalPageContext.getId()) > getRecordcount();
}

@Override
Expand Down Expand Up @@ -3382,7 +3382,7 @@ public static QueryImpl cloneQuery(Query qry, boolean deepCopy) {

@Override
public java.util.Iterator getIterator() {
return new ForEachQueryIterator(null, this, ThreadLocalPageContext.get().getId());
return new ForEachQueryIterator(null, this, ThreadLocalPageContext.getId());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2169,7 +2169,7 @@ public long getExecutionTime() {

@Override
public java.util.Iterator getIterator() {
return new ForEachQueryIterator(null, this, ThreadLocalPageContext.get().getId());
return new ForEachQueryIterator(null, this, ThreadLocalPageContext.getId());
}

@Override
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/java/lucee/runtime/type/trace/TOQuery.java
Original file line number Diff line number Diff line change
Expand Up @@ -1778,7 +1778,7 @@ public long getExecutionTime() {
@Override
public java.util.Iterator getIterator() {
log();
return new ForEachQueryIterator(null, this, ThreadLocalPageContext.get().getId());
return new ForEachQueryIterator(null, this, ThreadLocalPageContext.getId());
}

@Override
Expand Down
2 changes: 1 addition & 1 deletion loader/build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<project default="core" basedir="." name="Lucee"
xmlns:resolver="antlib:org.apache.maven.resolver.ant">

<property name="version" value="6.1.1.90-SNAPSHOT"/>
<property name="version" value="6.1.1.91-SNAPSHOT"/>

<taskdef uri="antlib:org.apache.maven.resolver.ant" resource="org/apache/maven/resolver/ant/antlib.xml">
<classpath>
Expand Down
2 changes: 1 addition & 1 deletion loader/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

<groupId>org.lucee</groupId>
<artifactId>lucee</artifactId>
<version>6.1.1.90-SNAPSHOT</version>
<version>6.1.1.91-SNAPSHOT</version>
<packaging>jar</packaging>

<name>Lucee Loader Build</name>
Expand Down

0 comments on commit e5fba89

Please sign in to comment.