# Bug Fixes

2 enhancement requests and 23 bugs were closed

- bug 521296 - Fix missing RefsChangedEvent when packed refs are used
- bug 376369 - Fix Daemon.stop() to actually stop the listener thread
- Remove workaround for bug in Java's ReferenceQueue which was fixed in Java 8. Minimum Java version 8-b100: JGit 4.9 removes a workaround for a bug in ReferenceQueue of Sun's Java 5, 6, 7 implementation. This bug was fixed in JDK 8-b100 hence this is the minimum supported Java version for JGit 4.9.
- bug 508801 - Don't assume name = path in .gitmodules
- bug 515325 - FetchCommand: pass on CredentialsProvider to submodule fetches
- bug 520920 - Exclude file matching: fix backtracking on match failures after "**"
- bug 508568 - Fix path pattern matching to work also for gitattributes
- bug 429625 - Ignore invalid TagOpt values
- bug 519883 - Fix default directory used to clone when setDirectory wasn't called
- bug 513043 - Do authentication re-tries on HTTP POST
- Fix exception handling for opening bitmap index files
- bug 393170 - Do not apply pushInsteadOf to existing pushUris
- bug 520702 - Record submodule paths with untracked changes as FileMode.GITLINK
- bug 520910 - Ensure EOL stream type is DIRECT when -text attribute is present. Otherwise fancy combinations of attributes (binary or -text in combination with crlf or eol) may result in the corruption of binary data.
- bug 520677 - Use relative paths for attribute rule matching
- Treat RawText of binary data as file with one single line. This avoids executing mergeAlgorithm.merge on binary data, which is unlikely to be useful.
- bug 510685 - Fix committing empty commits
- bug 519887 - Fix JGit set core.fileMode to false by default instead of true for non Windows OS.
- Fix matching ignores and attributes pattern of form a/b/**.
- Fix deleting symrefs
- bug 518377 - Fix bug in multiple tag handling on DescribeCommand
- bug 393170 - pushInsteadOf configuration is ignored by EGit. Note: Up to now JGit mistakenly applied pushInsteadOf also to existing pushUris. If some repositories had relied on this mis-feature, pushes may newly suddenly fail (the uncritical case; the config just needs to be fixed) or even still succeed but push to unexpected places, namely to the non-rewritten pushUrls (the critical case).