Skip to content

Commit 80c3501

Browse files
authored
Merge pull request #3583 from ebean-orm/feature/revert-3541-3582
[querybean-generator] #3582 - Revert #3541 "FilerException trying to write EntityClassRegister with Quarkus dev mode / hot reload "
2 parents b4ff574 + 64f01f0 commit 80c3501

File tree

2 files changed

+45
-6
lines changed
  • kotlin-querybean-generator/src/main/java/io/ebean/querybean/generator
  • querybean-generator/src/main/java/io/ebean/querybean/generator

2 files changed

+45
-6
lines changed

kotlin-querybean-generator/src/main/java/io/ebean/querybean/generator/Processor.java

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import javax.annotation.processing.AbstractProcessor;
44
import javax.annotation.processing.FilerException;
5+
import javax.annotation.processing.FilerException;
56
import javax.annotation.processing.ProcessingEnvironment;
67
import javax.annotation.processing.RoundEnvironment;
78
import javax.lang.model.SourceVersion;
@@ -20,6 +21,8 @@ public class Processor extends AbstractProcessor implements Constants {
2021
private static final String KAPT_KOTLIN_GENERATED_OPTION = "kapt.kotlin.generated";
2122

2223
private ProcessingContext processingContext;
24+
private SimpleModuleInfoWriter moduleWriter;
25+
private boolean initModuleWriter;
2326

2427
public Processor() {
2528
}
@@ -60,6 +63,7 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
6063
int count = processEntities(roundEnv);
6164
processOthers(roundEnv);
6265
final int loaded = processingContext.complete();
66+
initModuleInfoBean();
6367
if (roundEnv.processingOver()) {
6468
writeModuleInfoBean();
6569
}
@@ -96,11 +100,27 @@ private void processOthers(RoundEnvironment roundEnv, TypeElement otherType) {
96100
}
97101
}
98102

99-
private void writeModuleInfoBean() {
103+
private void initModuleInfoBean() {
100104
try {
101-
new SimpleModuleInfoWriter(processingContext).write();
105+
if (!initModuleWriter) {
106+
moduleWriter = new SimpleModuleInfoWriter(processingContext);
107+
}
102108
} catch (FilerException e) {
103-
processingContext.logWarn(null, "FilerException trying to write EntityClassRegister: " + e);
109+
processingContext.logWarn(null, "FilerException trying to write EntityClassRegister error: " + e);
110+
} catch (Throwable e) {
111+
processingContext.logError(null, "Failed to initialise EntityClassRegister error:" + e + " stack:" + Arrays.toString(e.getStackTrace()));
112+
} finally {
113+
initModuleWriter = true;
114+
}
115+
}
116+
117+
private void writeModuleInfoBean() {
118+
try {
119+
if (moduleWriter == null) {
120+
processingContext.logNote(null, "EntityClassRegister skipped");
121+
} else {
122+
moduleWriter.write();
123+
}
104124
} catch (Throwable e) {
105125
processingContext.logError(null, "Failed to write EntityClassRegister error:" + e + " stack:" + Arrays.toString(e.getStackTrace()));
106126
}

querybean-generator/src/main/java/io/ebean/querybean/generator/Processor.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
public class Processor extends AbstractProcessor implements Constants {
1818

1919
private ProcessingContext processingContext;
20+
private SimpleModuleInfoWriter moduleWriter;
21+
private boolean initModuleWriter;
2022

2123
public Processor() {
2224
}
@@ -49,6 +51,7 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
4951
int count = processEntities(roundEnv);
5052
processOthers(roundEnv);
5153
final int loaded = processingContext.complete();
54+
initModuleInfoBean();
5255
if (roundEnv.processingOver()) {
5356
writeModuleInfoBean();
5457
}
@@ -85,11 +88,27 @@ private void processOthers(RoundEnvironment roundEnv, TypeElement otherType) {
8588
}
8689
}
8790

88-
private void writeModuleInfoBean() {
91+
private void initModuleInfoBean() {
8992
try {
90-
new SimpleModuleInfoWriter(processingContext).write();
93+
if (!initModuleWriter) {
94+
moduleWriter = new SimpleModuleInfoWriter(processingContext);
95+
}
9196
} catch (FilerException e) {
92-
processingContext.logWarn(null, "FilerException trying to write EntityClassRegister: " + e);
97+
processingContext.logWarn(null, "FilerException trying to write EntityClassRegister error: " + e);
98+
} catch (Throwable e) {
99+
processingContext.logError(null, "Failed to initialise EntityClassRegister error:" + e + " stack:" + Arrays.toString(e.getStackTrace()));
100+
} finally {
101+
initModuleWriter = true;
102+
}
103+
}
104+
105+
private void writeModuleInfoBean() {
106+
try {
107+
if (moduleWriter == null) {
108+
processingContext.logNote(null, "EntityClassRegister skipped");
109+
} else {
110+
moduleWriter.write();
111+
}
93112
} catch (Throwable e) {
94113
processingContext.logError(null, "Failed to write EntityClassRegister error:" + e + " stack:" + Arrays.toString(e.getStackTrace()));
95114
}

0 commit comments

Comments
 (0)