Refactor tidy NodeUsageCollector, remove unused loadProperty and unnecessary WeakReference for State.listener

This commit is contained in:
Rob Bygrave
2022-04-21 08:59:53 +12:00
parent e1b9bf62a3
commit cacbee5fd5
5 changed files with 24 additions and 38 deletions
@@ -874,9 +874,6 @@ public final class EntityBeanIntercept implements Serializable {
}
if (lazyLoadProperty == -1) {
lazyLoadProperty = loadProperty;
if (nodeUsageCollector != null) {
nodeUsageCollector.setLoadProperty(getProperty(lazyLoadProperty));
}
loader.loadBean(this);
if (lazyLoadFailure) {
// failed when lazy loading this bean
@@ -1,7 +1,6 @@
package io.ebean.bean;
import java.lang.ref.Cleaner;
import java.lang.ref.WeakReference;
import java.util.LinkedHashSet;
import java.util.Set;
@@ -15,7 +14,8 @@ public final class NodeUsageCollector {
private final static Cleaner cleaner = Cleaner.create();
public static final class State implements Runnable {
private final WeakReference<NodeUsageListener> managerRef;
private final NodeUsageListener listener;
/**
* The properties used at this profile point.
*/
@@ -29,14 +29,9 @@ public final class NodeUsageCollector {
*/
private boolean modified;
/**
* The property that cause a reference to lazy load.
*/
private String loadProperty;
private State(ObjectGraphNode node, WeakReference<NodeUsageListener> managerRef) {
private State(ObjectGraphNode node, NodeUsageListener listener) {
this.node = node;
this.managerRef = managerRef;
this.listener = listener;
}
@Override
@@ -46,10 +41,7 @@ public final class NodeUsageCollector {
@Override
public void run() {
NodeUsageListener manager = managerRef.get();
if (manager != null) {
manager.collectNodeUsage(this);
}
listener.collectNodeUsage(this);
}
/**
@@ -84,8 +76,8 @@ public final class NodeUsageCollector {
private final State state;
public NodeUsageCollector(ObjectGraphNode node, WeakReference<NodeUsageListener> managerRef) {
this.state = new State(node, managerRef);
public NodeUsageCollector(ObjectGraphNode node, NodeUsageListener listener) {
this.state = new State(node, listener);
cleaner.register(this, state);
}
@@ -110,13 +102,6 @@ public final class NodeUsageCollector {
state.used.add(property);
}
/**
* The property that invoked a lazy load.
*/
public void setLoadProperty(String loadProperty) {
state.loadProperty = loadProperty;
}
@Override
public String toString() {
return state.toString();