Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Line Seperator issue between windows and unix

Open
#604 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
java
Domain
tooling

Research direction

Reproduce the discrepancy using google-java-format-1.10.0-all-deps.jar and the MinimalExample.java example with both LF and CRLF line endings. Trace why the formatter produces different wrapping, then verify that formatting the same source gives consistent output without an extra line break on both platforms.

Written by the indexing model from the issue text.

Description

When applying GJF, some code is formatted differently between Unix-style line seperators (LF) and Windows-style line seperators (CRLF). With windows-style an extra linebreak is added, caused by the char difference between LF (\n) and CRLF (\r\n).

I changed the line-separator-style with Intellij (File>File Properties> Line Separators, while having the file opened) and got the following outputs:

Executing java -jar google-java-format-1.10.0-all-deps.jar MinimalExample.java when the file is formatted with Unix line endings:

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import feign.FeignException;

public class MinimalExample {
  void googleJavaFormatWindowsFail() {

    FeignException feignException = mock(FeignException.class);
    when(feignException.contentUTF8()).thenReturn("""
    {
      "errorCode" : 420
    }
    """);
  }
}

Executing java -jar google-java-format-1.10.0-all-deps.jar MinimalExample.java when the file is formatted with Windows line endings:

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import feign.FeignException;

public class MinimalExample {
  void googleJavaFormatWindowsFail() {

    FeignException feignException = mock(FeignException.class);
    when(feignException.contentUTF8())
        .thenReturn("""
    {
      "errorCode" : 420
    }
    """);
  }
}

If two chars are added, Unix-style generates the same line-break:

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import feign.FeignException;

public class MinimalExample {
  void googleJavaFormatWindowsFail() {

    FeignException feignException = mock(FeignException.class);
    when(feignException.contentUTF8())
        .thenReturn("""
    {
      "errorCode" : 42069
    }
    """);
  }
}

Done on GJF 1.10.0, 1,9 and 1.8 with Java 15.0.2
Windows 10 10.0
IntelliJ IDEA 2021.1.1 (Community Edition)

Dominant language
Java
Stars
6.2k
Forks
936
Avg merge
6m
Merged PRs (30d)
3

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from google/google-java-format

All issues in google/google-java-format

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.