You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Gary Gregory <ga...@gmail.com> on 2019/09/25 21:54:38 UTC
[bcel] java.util.EmptyStackException at org.apache.bcel.classfile.DescendingVisitor.visitModule
(DescendingVisitor.java:592)
Hi All & Mark Roberts,
It looks like I/we did not test BCEL 6.4.0 well enough or broadly enough.
If I take git master for Apache Commons Pool and update the site report
from 6.3.1 to 6.4.0:
diff --git a/pom.xml b/pom.xml
index c60f6a7..5207358 100644
--- a/pom.xml
+++ b/pom.xml
@@ -213,7 +213,7 @@
<dependency>
<groupId>org.apache.bcel</groupId>
<artifactId>bcel</artifactId>
- <version>6.3.1</version>
+ <version>6.4.0</version>
</dependency>
</dependencies>
</plugin>
I get:
[INFO]
------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 06:11 min
[INFO] Finished at: 2019-09-25T16:19:15-04:00
[INFO]
------------------------------------------------------------------------
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-site-plugin:3.7.1:site (default-site) on
project commons-pool2: Execution default-site of goal
org.apache.maven.plugins:maven-site-plugin:3.7.1:site failed.:
EmptyStackException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute
goal org.apache.maven.plugins:maven-site-plugin:3.7.1:site (default-site)
on project commons-pool2: Execution default-site of goal
org.apache.maven.plugins:maven-site-plugin:3.7.1:site failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:148)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:117)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:81)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:347)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution
default-site of goal org.apache.maven.plugins:maven-site-plugin:3.7.1:site
failed.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
(DefaultBuildPluginManager.java:148)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:148)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:117)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:81)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:347)
Caused by: java.util.EmptyStackException
at java.util.Stack.peek (Stack.java:102)
at java.util.Stack.pop (Stack.java:84)
at org.apache.bcel.classfile.DescendingVisitor.visitModule
(DescendingVisitor.java:592)
at org.apache.bcel.classfile.Module.accept (Module.java:102)
at org.apache.bcel.classfile.DescendingVisitor.visitJavaClass
(DescendingVisitor.java:102)
at org.apache.bcel.classfile.JavaClass.accept (JavaClass.java:213)
at org.apache.maven.shared.jar.classes.JarClassesAnalysis.analyze
(JarClassesAnalysis.java:132)
at
org.apache.maven.report.projectinfo.dependencies.Dependencies.getJarDependencyDetails
(Dependencies.java:258)
at
org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.hasSealed
(DependenciesRenderer.java:1142)
at
org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderSectionDependencyFileDetails
(DependenciesRenderer.java:531)
at
org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderBody
(DependenciesRenderer.java:230)
at org.apache.maven.reporting.AbstractMavenReportRenderer.render
(AbstractMavenReportRenderer.java:80)
at org.apache.maven.report.projectinfo.DependenciesReport.executeReport
(DependenciesReport.java:162)
at org.apache.maven.reporting.AbstractMavenReport.generate
(AbstractMavenReport.java:251)
at
org.apache.maven.plugins.site.render.ReportDocumentRenderer.renderDocument
(ReportDocumentRenderer.java:230)
at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.render
(DefaultSiteRenderer.java:349)
at org.apache.maven.plugins.site.render.SiteMojo.renderLocale
(SiteMojo.java:198)
at org.apache.maven.plugins.site.render.SiteMojo.execute
(SiteMojo.java:147)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
(DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:148)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:117)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:81)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:347)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions,
please read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
We are clearly missing some unit tests :-(
Looking at org.apache.bcel.classfile.DescendingVisitor.visitModule
(DescendingVisitor.java:592), the problem seems like push/pop are
unbalanced:
/** @since 6.4.0 */
@Override
public void visitModule(final Module obj) {
stack.push(obj);
obj.accept(visitor);
final ModuleRequires[] rtable = obj.getRequiresTable();
for (final ModuleRequires element : rtable) {
element.accept(this);
}
final ModuleExports[] etable = obj.getExportsTable();
for (final ModuleExports element : etable) {
element.accept(this);
}
stack.pop();
final ModuleOpens[] otable = obj.getOpensTable();
for (final ModuleOpens element : otable) {
element.accept(this);
}
stack.pop();
final ModuleProvides[] ptable = obj.getProvidesTable();
for (final ModuleProvides element : ptable) {
element.accept(this);
}
stack.pop();
}
Mark?
Gary
Re: [bcel] java.util.EmptyStackException at org.apache.bcel.classfile.DescendingVisitor.visitModule
(DescendingVisitor.java:592)
Posted by Gary Gregory <ga...@gmail.com>.
On Wed, Sep 25, 2019 at 8:10 PM Gary Gregory <ga...@gmail.com> wrote:
> On Wed, Sep 25, 2019 at 6:36 PM Mark Roberts <ma...@cs.washington.edu>
> wrote:
>
>> Looks like a cut and paste error. I think the two inner stack.pop()
>> should be deleted. I'm not able to test right now.
>>
>
> Ok, I have a fix in and will start an RC ASAP to get this regression fix
> out.
>
Oh, and it would be great if you could provide a unit test to match the fix
you suggested (which worked.)
Gary
>
> Gary
>
>
>>
>> Mark
>>
>> -----Original Message-----
>> From: Gary Gregory [mailto:garydgregory@gmail.com]
>> Sent: Wednesday, September 25, 2019 2:55 PM
>> To: Commons Developers List <de...@commons.apache.org>
>> Subject: [bcel] java.util.EmptyStackException at
>> org.apache.bcel.classfile.DescendingVisitor.visitModule
>> (DescendingVisitor.java:592)
>>
>> Hi All & Mark Roberts,
>>
>> It looks like I/we did not test BCEL 6.4.0 well enough or broadly enough.
>>
>> If I take git master for Apache Commons Pool and update the site report
>> from 6.3.1 to 6.4.0:
>>
>> diff --git a/pom.xml b/pom.xml
>> index c60f6a7..5207358 100644
>> --- a/pom.xml
>> +++ b/pom.xml
>> @@ -213,7 +213,7 @@
>> <dependency>
>> <groupId>org.apache.bcel</groupId>
>> <artifactId>bcel</artifactId>
>> - <version>6.3.1</version>
>> + <version>6.4.0</version>
>> </dependency>
>> </dependencies>
>> </plugin>
>>
>> I get:
>>
>> [INFO]
>> ------------------------------------------------------------------------
>> [INFO] BUILD FAILURE
>> [INFO]
>> ------------------------------------------------------------------------
>> [INFO] Total time: 06:11 min
>> [INFO] Finished at: 2019-09-25T16:19:15-04:00 [INFO]
>> ------------------------------------------------------------------------
>> [ERROR] Failed to execute goal
>> org.apache.maven.plugins:maven-site-plugin:3.7.1:site (default-site) on
>> project commons-pool2: Execution default-site of goal
>> org.apache.maven.plugins:maven-site-plugin:3.7.1:site failed.:
>> EmptyStackException -> [Help 1]
>> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute
>> goal org.apache.maven.plugins:maven-site-plugin:3.7.1:site (default-site)
>> on project commons-pool2: Execution default-site of goal
>> org.apache.maven.plugins:maven-site-plugin:3.7.1:site failed.
>> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> (MojoExecutor.java:215)
>> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> (MojoExecutor.java:156)
>> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> (MojoExecutor.java:148)
>> at
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
>> (LifecycleModuleBuilder.java:117)
>> at
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
>> (LifecycleModuleBuilder.java:81)
>> at
>>
>> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
>> (SingleThreadedBuilder.java:56)
>> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
>> (LifecycleStarter.java:128)
>> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
>> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
>> at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
>> at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
>> at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
>> at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke
>> (NativeMethodAccessorImpl.java:62)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke
>> (DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke (Method.java:498)
>> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
>> (Launcher.java:282)
>> at org.codehaus.plexus.classworlds.launcher.Launcher.launch
>> (Launcher.java:225)
>> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
>> (Launcher.java:406)
>> at org.codehaus.plexus.classworlds.launcher.Launcher.main
>> (Launcher.java:347)
>> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution
>> default-site of goal org.apache.maven.plugins:maven-site-plugin:3.7.1:site
>> failed.
>> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
>> (DefaultBuildPluginManager.java:148)
>> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> (MojoExecutor.java:210)
>> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> (MojoExecutor.java:156)
>> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> (MojoExecutor.java:148)
>> at
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
>> (LifecycleModuleBuilder.java:117)
>> at
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
>> (LifecycleModuleBuilder.java:81)
>> at
>>
>> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
>> (SingleThreadedBuilder.java:56)
>> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
>> (LifecycleStarter.java:128)
>> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
>> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
>> at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
>> at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
>> at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
>> at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke
>> (NativeMethodAccessorImpl.java:62)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke
>> (DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke (Method.java:498)
>> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
>> (Launcher.java:282)
>> at org.codehaus.plexus.classworlds.launcher.Launcher.launch
>> (Launcher.java:225)
>> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
>> (Launcher.java:406)
>> at org.codehaus.plexus.classworlds.launcher.Launcher.main
>> (Launcher.java:347)
>> Caused by: java.util.EmptyStackException
>> at java.util.Stack.peek (Stack.java:102)
>> at java.util.Stack.pop (Stack.java:84)
>> at org.apache.bcel.classfile.DescendingVisitor.visitModule
>> (DescendingVisitor.java:592)
>> at org.apache.bcel.classfile.Module.accept (Module.java:102)
>> at org.apache.bcel.classfile.DescendingVisitor.visitJavaClass
>> (DescendingVisitor.java:102)
>> at org.apache.bcel.classfile.JavaClass.accept (JavaClass.java:213)
>> at org.apache.maven.shared.jar.classes.JarClassesAnalysis.analyze
>> (JarClassesAnalysis.java:132)
>> at
>>
>> org.apache.maven.report.projectinfo.dependencies.Dependencies.getJarDependencyDetails
>> (Dependencies.java:258)
>> at
>>
>> org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.hasSealed
>> (DependenciesRenderer.java:1142)
>> at
>>
>> org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderSectionDependencyFileDetails
>> (DependenciesRenderer.java:531)
>> at
>>
>> org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderBody
>> (DependenciesRenderer.java:230)
>> at org.apache.maven.reporting.AbstractMavenReportRenderer.render
>> (AbstractMavenReportRenderer.java:80)
>> at
>> org.apache.maven.report.projectinfo.DependenciesReport.executeReport
>> (DependenciesReport.java:162)
>> at org.apache.maven.reporting.AbstractMavenReport.generate
>> (AbstractMavenReport.java:251)
>> at
>> org.apache.maven.plugins.site.render.ReportDocumentRenderer.renderDocument
>> (ReportDocumentRenderer.java:230)
>> at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.render
>> (DefaultSiteRenderer.java:349)
>> at org.apache.maven.plugins.site.render.SiteMojo.renderLocale
>> (SiteMojo.java:198)
>> at org.apache.maven.plugins.site.render.SiteMojo.execute
>> (SiteMojo.java:147)
>> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
>> (DefaultBuildPluginManager.java:137)
>> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> (MojoExecutor.java:210)
>> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> (MojoExecutor.java:156)
>> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> (MojoExecutor.java:148)
>> at
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
>> (LifecycleModuleBuilder.java:117)
>> at
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
>> (LifecycleModuleBuilder.java:81)
>> at
>>
>> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
>> (SingleThreadedBuilder.java:56)
>> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
>> (LifecycleStarter.java:128)
>> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
>> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
>> at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
>> at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
>> at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
>> at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke
>> (NativeMethodAccessorImpl.java:62)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke
>> (DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke (Method.java:498)
>> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
>> (Launcher.java:282)
>> at org.codehaus.plexus.classworlds.launcher.Launcher.launch
>> (Launcher.java:225)
>> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
>> (Launcher.java:406)
>> at org.codehaus.plexus.classworlds.launcher.Launcher.main
>> (Launcher.java:347)
>> [ERROR]
>> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
>> [ERROR]
>> [ERROR] For more information about the errors and possible solutions,
>> please read the following articles:
>> [ERROR] [Help 1]
>> http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
>>
>> We are clearly missing some unit tests :-(
>>
>> Looking at org.apache.bcel.classfile.DescendingVisitor.visitModule
>> (DescendingVisitor.java:592), the problem seems like push/pop are
>> unbalanced:
>>
>> /** @since 6.4.0 */
>> @Override
>> public void visitModule(final Module obj) {
>> stack.push(obj);
>> obj.accept(visitor);
>> final ModuleRequires[] rtable = obj.getRequiresTable();
>> for (final ModuleRequires element : rtable) {
>> element.accept(this);
>> }
>> final ModuleExports[] etable = obj.getExportsTable();
>> for (final ModuleExports element : etable) {
>> element.accept(this);
>> }
>> stack.pop();
>> final ModuleOpens[] otable = obj.getOpensTable();
>> for (final ModuleOpens element : otable) {
>> element.accept(this);
>> }
>> stack.pop();
>> final ModuleProvides[] ptable = obj.getProvidesTable();
>> for (final ModuleProvides element : ptable) {
>> element.accept(this);
>> }
>> stack.pop();
>> }
>>
>> Mark?
>>
>> Gary
>>
>>
Re: [bcel] java.util.EmptyStackException at org.apache.bcel.classfile.DescendingVisitor.visitModule
(DescendingVisitor.java:592)
Posted by Gary Gregory <ga...@gmail.com>.
On Wed, Sep 25, 2019 at 6:36 PM Mark Roberts <ma...@cs.washington.edu>
wrote:
> Looks like a cut and paste error. I think the two inner stack.pop()
> should be deleted. I'm not able to test right now.
>
Ok, I have a fix in and will start an RC ASAP to get this regression fix
out.
Gary
>
> Mark
>
> -----Original Message-----
> From: Gary Gregory [mailto:garydgregory@gmail.com]
> Sent: Wednesday, September 25, 2019 2:55 PM
> To: Commons Developers List <de...@commons.apache.org>
> Subject: [bcel] java.util.EmptyStackException at
> org.apache.bcel.classfile.DescendingVisitor.visitModule
> (DescendingVisitor.java:592)
>
> Hi All & Mark Roberts,
>
> It looks like I/we did not test BCEL 6.4.0 well enough or broadly enough.
>
> If I take git master for Apache Commons Pool and update the site report
> from 6.3.1 to 6.4.0:
>
> diff --git a/pom.xml b/pom.xml
> index c60f6a7..5207358 100644
> --- a/pom.xml
> +++ b/pom.xml
> @@ -213,7 +213,7 @@
> <dependency>
> <groupId>org.apache.bcel</groupId>
> <artifactId>bcel</artifactId>
> - <version>6.3.1</version>
> + <version>6.4.0</version>
> </dependency>
> </dependencies>
> </plugin>
>
> I get:
>
> [INFO]
> ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Total time: 06:11 min
> [INFO] Finished at: 2019-09-25T16:19:15-04:00 [INFO]
> ------------------------------------------------------------------------
> [ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-site-plugin:3.7.1:site (default-site) on
> project commons-pool2: Execution default-site of goal
> org.apache.maven.plugins:maven-site-plugin:3.7.1:site failed.:
> EmptyStackException -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute
> goal org.apache.maven.plugins:maven-site-plugin:3.7.1:site (default-site)
> on project commons-pool2: Execution default-site of goal
> org.apache.maven.plugins:maven-site-plugin:3.7.1:site failed.
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:215)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:156)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:148)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
> (LifecycleModuleBuilder.java:117)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
> (LifecycleModuleBuilder.java:81)
> at
>
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
> (SingleThreadedBuilder.java:56)
> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
> (LifecycleStarter.java:128)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
> at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
> at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
> at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
> at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
> at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke (Method.java:498)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
> (Launcher.java:282)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launch
> (Launcher.java:225)
> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
> (Launcher.java:406)
> at org.codehaus.plexus.classworlds.launcher.Launcher.main
> (Launcher.java:347)
> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution
> default-site of goal org.apache.maven.plugins:maven-site-plugin:3.7.1:site
> failed.
> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
> (DefaultBuildPluginManager.java:148)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:210)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:156)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:148)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
> (LifecycleModuleBuilder.java:117)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
> (LifecycleModuleBuilder.java:81)
> at
>
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
> (SingleThreadedBuilder.java:56)
> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
> (LifecycleStarter.java:128)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
> at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
> at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
> at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
> at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
> at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke (Method.java:498)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
> (Launcher.java:282)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launch
> (Launcher.java:225)
> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
> (Launcher.java:406)
> at org.codehaus.plexus.classworlds.launcher.Launcher.main
> (Launcher.java:347)
> Caused by: java.util.EmptyStackException
> at java.util.Stack.peek (Stack.java:102)
> at java.util.Stack.pop (Stack.java:84)
> at org.apache.bcel.classfile.DescendingVisitor.visitModule
> (DescendingVisitor.java:592)
> at org.apache.bcel.classfile.Module.accept (Module.java:102)
> at org.apache.bcel.classfile.DescendingVisitor.visitJavaClass
> (DescendingVisitor.java:102)
> at org.apache.bcel.classfile.JavaClass.accept (JavaClass.java:213)
> at org.apache.maven.shared.jar.classes.JarClassesAnalysis.analyze
> (JarClassesAnalysis.java:132)
> at
>
> org.apache.maven.report.projectinfo.dependencies.Dependencies.getJarDependencyDetails
> (Dependencies.java:258)
> at
>
> org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.hasSealed
> (DependenciesRenderer.java:1142)
> at
>
> org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderSectionDependencyFileDetails
> (DependenciesRenderer.java:531)
> at
>
> org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderBody
> (DependenciesRenderer.java:230)
> at org.apache.maven.reporting.AbstractMavenReportRenderer.render
> (AbstractMavenReportRenderer.java:80)
> at org.apache.maven.report.projectinfo.DependenciesReport.executeReport
> (DependenciesReport.java:162)
> at org.apache.maven.reporting.AbstractMavenReport.generate
> (AbstractMavenReport.java:251)
> at
> org.apache.maven.plugins.site.render.ReportDocumentRenderer.renderDocument
> (ReportDocumentRenderer.java:230)
> at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.render
> (DefaultSiteRenderer.java:349)
> at org.apache.maven.plugins.site.render.SiteMojo.renderLocale
> (SiteMojo.java:198)
> at org.apache.maven.plugins.site.render.SiteMojo.execute
> (SiteMojo.java:147)
> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
> (DefaultBuildPluginManager.java:137)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:210)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:156)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute
> (MojoExecutor.java:148)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
> (LifecycleModuleBuilder.java:117)
> at
> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
> (LifecycleModuleBuilder.java:81)
> at
>
> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
> (SingleThreadedBuilder.java:56)
> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
> (LifecycleStarter.java:128)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
> at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
> at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
> at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
> at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
> at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
> at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke (Method.java:498)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
> (Launcher.java:282)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launch
> (Launcher.java:225)
> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
> (Launcher.java:406)
> at org.codehaus.plexus.classworlds.launcher.Launcher.main
> (Launcher.java:347)
> [ERROR]
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
> [ERROR]
> [ERROR] For more information about the errors and possible solutions,
> please read the following articles:
> [ERROR] [Help 1]
> http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
>
> We are clearly missing some unit tests :-(
>
> Looking at org.apache.bcel.classfile.DescendingVisitor.visitModule
> (DescendingVisitor.java:592), the problem seems like push/pop are
> unbalanced:
>
> /** @since 6.4.0 */
> @Override
> public void visitModule(final Module obj) {
> stack.push(obj);
> obj.accept(visitor);
> final ModuleRequires[] rtable = obj.getRequiresTable();
> for (final ModuleRequires element : rtable) {
> element.accept(this);
> }
> final ModuleExports[] etable = obj.getExportsTable();
> for (final ModuleExports element : etable) {
> element.accept(this);
> }
> stack.pop();
> final ModuleOpens[] otable = obj.getOpensTable();
> for (final ModuleOpens element : otable) {
> element.accept(this);
> }
> stack.pop();
> final ModuleProvides[] ptable = obj.getProvidesTable();
> for (final ModuleProvides element : ptable) {
> element.accept(this);
> }
> stack.pop();
> }
>
> Mark?
>
> Gary
>
>
RE: [bcel] java.util.EmptyStackException at org.apache.bcel.classfile.DescendingVisitor.visitModule (DescendingVisitor.java:592)
Posted by Mark Roberts <ma...@cs.washington.edu>.
Looks like a cut and paste error. I think the two inner stack.pop() should be deleted. I'm not able to test right now.
Mark
-----Original Message-----
From: Gary Gregory [mailto:garydgregory@gmail.com]
Sent: Wednesday, September 25, 2019 2:55 PM
To: Commons Developers List <de...@commons.apache.org>
Subject: [bcel] java.util.EmptyStackException at org.apache.bcel.classfile.DescendingVisitor.visitModule (DescendingVisitor.java:592)
Hi All & Mark Roberts,
It looks like I/we did not test BCEL 6.4.0 well enough or broadly enough.
If I take git master for Apache Commons Pool and update the site report from 6.3.1 to 6.4.0:
diff --git a/pom.xml b/pom.xml
index c60f6a7..5207358 100644
--- a/pom.xml
+++ b/pom.xml
@@ -213,7 +213,7 @@
<dependency>
<groupId>org.apache.bcel</groupId>
<artifactId>bcel</artifactId>
- <version>6.3.1</version>
+ <version>6.4.0</version>
</dependency>
</dependencies>
</plugin>
I get:
[INFO]
------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 06:11 min
[INFO] Finished at: 2019-09-25T16:19:15-04:00 [INFO]
------------------------------------------------------------------------
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-site-plugin:3.7.1:site (default-site) on project commons-pool2: Execution default-site of goal org.apache.maven.plugins:maven-site-plugin:3.7.1:site failed.:
EmptyStackException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.7.1:site (default-site) on project commons-pool2: Execution default-site of goal org.apache.maven.plugins:maven-site-plugin:3.7.1:site failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:148)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:117)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:81)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:347)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-site of goal org.apache.maven.plugins:maven-site-plugin:3.7.1:site
failed.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
(DefaultBuildPluginManager.java:148)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:148)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:117)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:81)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:347)
Caused by: java.util.EmptyStackException
at java.util.Stack.peek (Stack.java:102)
at java.util.Stack.pop (Stack.java:84)
at org.apache.bcel.classfile.DescendingVisitor.visitModule
(DescendingVisitor.java:592)
at org.apache.bcel.classfile.Module.accept (Module.java:102)
at org.apache.bcel.classfile.DescendingVisitor.visitJavaClass
(DescendingVisitor.java:102)
at org.apache.bcel.classfile.JavaClass.accept (JavaClass.java:213)
at org.apache.maven.shared.jar.classes.JarClassesAnalysis.analyze
(JarClassesAnalysis.java:132)
at
org.apache.maven.report.projectinfo.dependencies.Dependencies.getJarDependencyDetails
(Dependencies.java:258)
at
org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.hasSealed
(DependenciesRenderer.java:1142)
at
org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderSectionDependencyFileDetails
(DependenciesRenderer.java:531)
at
org.apache.maven.report.projectinfo.dependencies.renderer.DependenciesRenderer.renderBody
(DependenciesRenderer.java:230)
at org.apache.maven.reporting.AbstractMavenReportRenderer.render
(AbstractMavenReportRenderer.java:80)
at org.apache.maven.report.projectinfo.DependenciesReport.executeReport
(DependenciesReport.java:162)
at org.apache.maven.reporting.AbstractMavenReport.generate
(AbstractMavenReport.java:251)
at
org.apache.maven.plugins.site.render.ReportDocumentRenderer.renderDocument
(ReportDocumentRenderer.java:230)
at org.apache.maven.doxia.siterenderer.DefaultSiteRenderer.render
(DefaultSiteRenderer.java:349)
at org.apache.maven.plugins.site.render.SiteMojo.renderLocale
(SiteMojo.java:198)
at org.apache.maven.plugins.site.render.SiteMojo.execute
(SiteMojo.java:147)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
(DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:148)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:117)
at
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:81)
at
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:347)
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
We are clearly missing some unit tests :-(
Looking at org.apache.bcel.classfile.DescendingVisitor.visitModule
(DescendingVisitor.java:592), the problem seems like push/pop are
unbalanced:
/** @since 6.4.0 */
@Override
public void visitModule(final Module obj) {
stack.push(obj);
obj.accept(visitor);
final ModuleRequires[] rtable = obj.getRequiresTable();
for (final ModuleRequires element : rtable) {
element.accept(this);
}
final ModuleExports[] etable = obj.getExportsTable();
for (final ModuleExports element : etable) {
element.accept(this);
}
stack.pop();
final ModuleOpens[] otable = obj.getOpensTable();
for (final ModuleOpens element : otable) {
element.accept(this);
}
stack.pop();
final ModuleProvides[] ptable = obj.getProvidesTable();
for (final ModuleProvides element : ptable) {
element.accept(this);
}
stack.pop();
}
Mark?
Gary
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org