Skip to content

Commit 44bce42

Browse files
committed
Fix @trace crash in onCreate()
1 parent 017b589 commit 44bce42

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/helper/APTCodeModelHelper.java‎

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,20 @@ public JBlock removeBody(JMethod method) {
205205
JBlock clonedBody = new JBlock(false, false);
206206

207207
for (Object statement : body.getContents()) {
208-
clonedBody.add((JStatement) statement);
208+
if (statement instanceof JVar) {
209+
JVar var = (JVar) statement;
210+
try {
211+
Field varInitField = JVar.class.getDeclaredField("init");
212+
varInitField.setAccessible(true);
213+
JExpression varInit = (JExpression) varInitField.get(var);
214+
215+
clonedBody.decl(var.type(), var.name(), varInit);
216+
} catch (Exception e) {
217+
throw new RuntimeException(e);
218+
}
219+
} else {
220+
clonedBody.add((JStatement) statement);
221+
}
209222
}
210223

211224
return clonedBody;

‎AndroidAnnotations/functional-test-1-5/src/main/java/org/androidannotations/test15/TracedActivity.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public class TracedActivity extends Activity {
4545
public boolean overloadedMethodInt = false;
4646
public boolean overloadedMethodIntFLoat = false;
4747

48+
@Trace
4849
@Override
4950
public void onCreate(Bundle savedInstanceState) {
5051
super.onCreate(savedInstanceState);

0 commit comments

Comments
 (0)