531 |
531 |
/** Determines if this will be unregistered from ChangeBroker on cleanup. */
|
532 |
532 |
private boolean unregisterOnCleanup = false;
|
533 |
533 |
|
|
534 |
/**
|
|
535 |
* Flag determining if this query tried to register as a listener, so the registration
|
|
536 |
* won't happen twice.
|
|
537 |
*/
|
|
538 |
private boolean triedRegisteringAsListener = false;
|
|
539 |
|
534 |
540 |
/**
|
535 |
541 |
* Default constructor. Initialization is deferred until <code>initialize()</code> is
|
536 |
542 |
* called.
|
... | ... | |
559 |
565 |
|
560 |
566 |
adapter = new ResultsAdapter(new ResultsSource());
|
561 |
567 |
|
562 |
|
ChangeBroker.get().addListener(this);
|
563 |
|
|
564 |
568 |
TransactionManager.registerOffEndQuery(this);
|
565 |
569 |
|
566 |
570 |
return this;
|
... | ... | |
592 |
596 |
|
593 |
597 |
adapter = new ResultsAdapter(new ResultsSource());
|
594 |
598 |
|
595 |
|
ChangeBroker.get().addListener(this);
|
596 |
|
|
597 |
599 |
TransactionManager.registerOffEndQuery(this);
|
598 |
600 |
|
599 |
601 |
return this;
|
... | ... | |
665 |
667 |
addWhereExpression(whereExpr);
|
666 |
668 |
}
|
667 |
669 |
|
668 |
|
ChangeBroker.get().addListener(this);
|
669 |
|
// buffer persistence may not be active yet - what do we do? what about scrolling?
|
670 |
|
// if (buffer == null || !buffer.getPersistence().supportsLazyQueryResultsMode())
|
671 |
|
// {
|
672 |
|
// ChangeBroker.get().addListener(this);
|
673 |
|
// }
|
674 |
|
|
675 |
670 |
return this;
|
676 |
671 |
}
|
677 |
672 |
|
... | ... | |
1124 |
1119 |
{
|
1125 |
1120 |
registerRecordChangeListeners(scope);
|
1126 |
1121 |
}
|
|
1122 |
|
|
1123 |
// This registration section is now here because the intention is to add this query as a listener
|
|
1124 |
// conditionally.
|
|
1125 |
// Queries over temporary tables that are non-scrolling have their invalidation dealt with by the
|
|
1126 |
// lazy mechanism, so there is no need to register them as listeners.
|
|
1127 |
// It is no longer in initialize() because it was not guaranteed that an active buffer can be found
|
|
1128 |
// there.
|
|
1129 |
if (!triedRegisteringAsListener)
|
|
1130 |
{
|
|
1131 |
triedRegisteringAsListener = true;
|
|
1132 |
RecordBuffer buffer = (buffers != null && buffers.length > 0) ? buffers[0] : null;
|
|
1133 |
|
|
1134 |
if (buffer == null || !buffer.getPersistence().supportsLazyQueryResultsMode()
|
|
1135 |
|| isScrolling())
|
|
1136 |
{
|
|
1137 |
ChangeBroker.get().addListener(this);
|
|
1138 |
}
|
|
1139 |
}
|
1127 |
1140 |
|
1128 |
1141 |
if (cursor != null)
|
1129 |
1142 |
{
|
... | ... | |
2237 |
2250 |
throws PersistenceException
|
2238 |
2251 |
{
|
2239 |
2252 |
ArrayList<QueryComponent> components = components();
|
2240 |
|
// rather check persistence if supports this
|
2241 |
|
if (components.size() == 1 && components.get(0).getBuffer().isTemporary() && !isScrolling())
|
2242 |
|
{
|
2243 |
|
return;
|
2244 |
|
}
|
2245 |
2253 |
boolean preselect = isPreselect();
|
2246 |
2254 |
boolean invalidate = true;
|
2247 |
2255 |
boolean cacheAll = false;
|