INRIA / INRIA/spoon

[Bug]: Adding import doesn't seem consistent

Open
#5,122 0 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

I am adding an import to an existing file. I used one of the issues [3718](https://github.com/INRIA/spoon/issues/3718) to help me with this task. Unfortunately, import statement doesn't get added. See below for details.

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

```Java
Original:
------------------------------------------------------
import java.util.ArrayList;
import java.util.ConcurrentModificationException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.NoSuchElementException;

import junit.framework.Test;
```

### Source code for your Spoon processing

```Java
// Add imports - replacing all imports with single import "java.util.ArrayList"
final CtImport import_ = launcher.getFactory().Core().createImport();
import_.setReference(launcher.getFactory().createReference("java.utils.Arraylist"));
clazz.getFactory().CompilationUnit().getOrCreate(clazz).setImports(Arrays.asList(import_));
System.out.println(clazz.getFactory().CompilationUnit().getOrCreate(clazz).getOriginalSourceCode());
System.out.println(clazz.getFactory().CompilationUnit().getOrCreate(clazz).getImports());
System.out.println(clazz.toStringWithImports());
```

### Actual output

```Java
[1] first print statement
----------------------------
import java.util.ArrayList;
import java.util.ConcurrentModificationException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.NoSuchElementException;

import junit.framework.Test;

[2] second print statement
----------------------------
import java.util.ArrayList;

[3] third print statement
----------------------------
import java.util.ArrayList;
import java.util.ConcurrentModificationException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.NoSuchElementException;

import junit.framework.Test;
```

### Expected output

```Java
import java.util.ArrayList;
```

### Spoon Version


fr.inria.gforge.spoon
spoon-core
10.1.1

### JVM Version

16

### What operating system are you using?

Window 10

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.