INRIA / INRIA/spoon

[Bug]: Attempting to build model of Hadoop HDFS (2.6.0) starts ZooKeeper

Open
#4,800 4 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
2k
Forks
392
Avg merge
11h 24m
Merged PRs (30d)
36

Description

### Describe the bug

When attempting to build the model using MavenLauncher of the apache/hadoop project (version 2.6.0 specifically), zookeeper starts.

### Source code you are trying to analyze/transform

```Java
hadoop/hadoop-hdfs-project
```

### Source code for your Spoon processing

```Java
import spoon.Launcher;
import spoon.MavenLauncher;

public class Test {
public static void main(String... argv) {
Launcher launcher = new MavenLauncher(argv[0], MavenLauncher.SOURCE_TYPE.APP_SOURCE);
launcher.getEnvironment().setIgnoreDuplicateDeclarations(true);
launcher.getEnvironment().setNoClasspath(true);
launcher.getEnvironment().setIgnoreSyntaxErrors(true);
launcher.buildModel();
}
}
```

### Actual output

```Java
[main] INFO spoon.MavenLauncher - Running in FULLCLASSPATH mode. Source folders and dependencies are inferred from the pom.xml file (doc: http://spoon.gforge.inria.fr/launcher.html).
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:host.name=localhost
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.version=17.0.2
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.vendor=Oracle Corporation
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.home=/opt/java/17.0.2
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.class.path=target/java-logid-1.0-SNAPSHOT.jar:target/dependency/junit-jupiter-engine-5.8.2.jar:target/dependency/junit-jupiter-api-5.8.2.jar:target/dependency/opencsv-5.6.jar:target/dependency/maven-invoker-3.1.0.jar:target/dependency/commons-compress-1.21.jar:target/dependency/org.eclipse.jdt.core-3.29.0.jar:target/dependency/junit-platform-commons-1.8.2.jar:target/dependency/spoon-core-10.1.1.jar:target/dependency/jgrapht-core-0.9.2.jar:target/dependency/fastutil-5.0.9.jar:target/dependency/commons-collections4-4.4.jar:target/dependency/commons-text-1.9.jar:target/dependency/picocli-4.6.3.jar:target/dependency/jsap-2.1.jar:target/dependency/jackson-databind-2.13.2.2.jar:target/dependency/maven-model-3.8.6.jar:target/dependency/commons-lang3-3.12.0.jar:target/dependency/junit-platform-engine-1.8.2.jar:target/dependency/opentest4j-1.2.0.jar:target/dependency/commons-logging-1.2.jar:target/dependency/jackson-annotations-2.13.2.jar:target/dependency/igraph-1.0-SNAPSHOT.jar:target/dependency/maven-shared-utils-3.3.3.jar:target/dependency/junit-jupiter-5.8.2.jar:target/dependency/fastutil-core-8.5.8.jar:target/dependency/slf4j-api-1.7.36.jar:target/dependency/slf4j-simple-1.7.36.jar:target/dependency/jackson-core-2.13.2.jar:target/dependency/plexus-utils-3.3.1.jar:target/dependency/commons-beanutils-1.9.4.jar:target/dependency/commons-collections-3.2.2.jar:target/dependency/junit-jupiter-params-5.8.2.jar:target/dependency/commons-io-2.11.0.jar:target/dependency/javax.inject-1.jar:target/dependency/spoon-control-flow-0.0.2-SNAPSHOT.jar:target/dependency/apiguardian-api-1.1.2.jar
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.library.path=/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.io.tmpdir=/tmp
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:java.compiler=
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:os.name=Linux
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:os.arch=amd64
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:os.version=5.4.0-1074-azure
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:user.name=codespace
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:user.home=/home/codespace
[main] INFO org.apache.zookeeper.ZooKeeper - Client environment:user.dir=/workspaces/java-print-log-stmts
[main] WARN spoon.Launcher - cannot create shadow class: org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$Rename2RequestProto
java.lang.OutOfMemoryError: Java heap space
at java.base/java.util.LinkedHashMap.newNode(LinkedHashMap.java:257)
at java.base/java.util.HashMap.putVal(HashMap.java:640)
at java.base/java.util.HashMap.put(HashMap.java:610)
at java.base/java.util.HashSet.add(HashSet.java:221)
at java.base/java.util.AbstractCollection.addAll(AbstractCollection.java:336)
at java.base/java.util.LinkedHashSet.(LinkedHashSet.java:170)
at spoon.support.reflect.declaration.CtPackageImpl.getTypes(CtPackageImpl.java:173)
at spoon.reflect.factory.PackageFactory.get(PackageFactory.java:185)
at spoon.support.visitor.java.JavaReflectionTreeBuilder.visitPackage(JavaReflectionTreeBuilder.java:136)
at spoon.support.visitor.java.JavaReflectionVisitorImpl.visitTypeReference(JavaReflectionVisitorImpl.java:487)
at spoon.support.visitor.java.JavaReflectionTreeBuilder.visitTypeReference(JavaReflectionTreeBuilder.java:524)
at spoon.support.visitor.java.JavaReflectionVisitorImpl.visitTypeReference(JavaReflectionVisitorImpl.java:439)
at spoon.support.visitor.java.JavaReflectionVisitorImpl.visitParameter(JavaReflectionVisitorImpl.java:388)
at spoon.support.visitor.java.JavaReflectionTreeBuilder.visitParameter(JavaReflectionTreeBuilder.java:367)
at spoon.support.visitor.java.JavaReflectionVisitorImpl.visitMethod(JavaReflectionVisitorImpl.java:351)
at spoon.support.visitor.java.JavaReflectionTreeBuilder.visitMethod(JavaReflectionTreeBuilder.java:315)
at spoon.support.visitor.java.JavaReflectionVisitorImpl.visitMethod(JavaReflectionVisitorImpl.java:338)
at spoon.support.visitor.java.JavaReflectionVisitorImpl.visitClass(JavaReflectionVisitorImpl.java:87)
at spoon.support.visitor.java.JavaReflectionTreeBuilder.visitClass(JavaReflectionTreeBuilder.java:190)
at spoon.support.visitor.java.JavaReflectionVisitorImpl.visitType(JavaReflectionVisitorImpl.java:119)
at spoon.support.visitor.java.JavaReflectionVisitorImpl.visitClass(JavaReflectionVisitorImpl.java:104)
at spoon.support.visitor.java.JavaReflectionTreeBuilder.visitClass(JavaReflectionTreeBuilder.java:190)
at spoon.support.visitor.java.JavaReflectionTreeBuilder.scan(JavaReflectionTreeBuilder.java:123)
at spoon.support.visitor.java.JavaReflectionTreeBuilder.scan(JavaReflectionTreeBuilder.java:94)
at spoon.reflect.factory.TypeFactory.get(TypeFactory.java:559)
at spoon.support.compiler.jdt.JDTImportBuilder.getOrLoadClass(JDTImportBuilder.java:168)
at spoon.support.compiler.jdt.JDTImportBuilder.getOrLoadClass(JDTImportBuilder.java:175)
at spoon.support.compiler.jdt.JDTImportBuilder.build(JDTImportBuilder.java:76)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.lambda$buildModel$1(JDTBasedSpoonCompiler.java:440)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler$$Lambda$98/0x0000000800dd1ae0.accept(Unknown Source)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.forEachCompilationUnit(JDTBasedSpoonCompiler.java:463)
at spoon.support.compiler.jdt.JDTBasedSpoonCompiler.buildModel(JDTBasedSpoonCompiler.java:439)
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
```

### Expected output

_No response_

### Spoon Version

10.1.1

### JVM Version

17

### What operating system are you using?

linux (github codespaces)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.