tree 91d616f2162d79de4e2c41d60bae8c4c309a5250
parent 46985b8e5a1319af794c7b3ca186271214b00039
author Lukacs Berki <lberki@google.com> 1483606762 +0000
committer John Cater <jcater@google.com> 1483629412 +0000

Do not pass a null pointer to Analyzer to avoid a NPE.

Stack trace is as follows:

java.io.IOException: Error while analyzing <CLASS>:
	at org.jacoco.core.analysis.Analyzer.analyzerError(Analyzer.java:155)
	at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:130)
	at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:147)
	at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:185)
	at org.jacoco.core.analysis.Analyzer.analyzeZip(Analyzer.java:257)
	at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:188)
	at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:218)
	at com.google.testing.coverage.JacocoCoverageRunner.analyzeBranch(JacocoCoverageRunner.java:143)
	at com.google.testing.coverage.JacocoCoverageRunner.create(JacocoCoverageRunner.java:84)
	at com.google.testing.coverage.JacocoCoverageRunner$2.run(JacocoCoverageRunner.java:258)
Caused by: java.lang.NullPointerException
	at org.jacoco.core.analysis.Analyzer$1.visitEnd(Analyzer.java:96)
	at jarjar.org.objectweb.asm.ClassVisitor.visitEnd(Unknown Source)
	at org.jacoco.core.internal.flow.ClassProbesAdapter.visitEnd(ClassProbesAdapter.java:98)
	at jarjar.org.objectweb.asm.ClassReader.accept(Unknown Source)
	at jarjar.org.objectweb.asm.ClassReader.accept(Unknown Source)
	at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:111)
	at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:127)
	... 8 more


I don't know why this happens, but this change sure fixes it.

--
PiperOrigin-RevId: 143639907
MOS_MIGRATED_REVID=143639907
