What is wrong in this code?

import java.util.*;
public class Main {

	private static final int INT_MIN = 0;
	public static void main(String[] args) {
		 Scanner scn=new Scanner(System.in);
		 int t=scn.nextInt();
		 for (int i=0;i<t;i++) {
			 int n=scn.nextInt();
			 int [] arr=new int[n];
			 for(int j=0;j<n;j++) {
				 arr[j]=scn.nextInt();
				 arr[j]=-arr[j];
			 }
			 int val=maxsum(arr);
			 int sum=0;
			 for (int i1=0;i1<arr.length;i1++) {
				 sum=sum+arr[i1];
				 
			 }
			 System.out.println(-(sum)+val);
		 }
		 

	}
	public static int maxsum(int [] arr) {
		//maximum ending sum
		int mes=0;
		//maximum so far
		int msf=INT_MIN;
		for (int i=0;i<arr.length;i++) {
			mes=mes+arr[i];
			if(mes<arr[i]) {
				mes=arr[i];
				
			}
			if (msf<mes) {
				msf=mes;
			}
		}
		return msf;
	}

}

hey @harsh.hj
Consider array elements as: 1 2 -1 -3 4 6
1.maximum subarray sum in non circular fashion is: 4+6=10
2. on inverting the signs, the array becomes: -1 -2 1 3 -4 -6
Now applying Kadane, maxm subarry sum is: 1+3=4
So minimum subarray sum for the original array is: -4
3. Now cumulative sum of the original array is: 1+2-1-3+4+6= 9
If you subtract the minimum sub array sum from cumulative sum you get: 9-(-4)=13 which is actually the
maximum subarray sum in circular fashion ie. 4+6+1+2=13 .
So now the answer will be max(10,13)=13
correct code
import java.util.*;

public class Main {

private static final int INT_MIN = 0;

public static void main(String[] args) {
	Scanner scn = new Scanner(System.in);
	int t = scn.nextInt();
	for (int i = 0; i < t; i++) {
		int n = scn.nextInt();
		int[] arr = new int[n];
		for (int j = 0; j < n; j++) {
			arr[j] = scn.nextInt();
			//arr[j] = -arr[j];
		}
		int val = maxsum(arr);
		int sum = 0;
		for (int i1 = 0; i1 < arr.length; i1++) {
			sum = sum + arr[i1];
			arr[i1] = -arr[i1];

		}
		System.out.println(Math.max(val, sum+maxsum(arr)));
	}

}

public static int maxsum(int[] arr) {
	// maximum ending sum
	int mes = 0;
	// maximum so far
	int msf = INT_MIN;
	for (int i = 0; i < arr.length; i++) {
		mes = mes + arr[i];
		if (mes < arr[i]) {
			mes = arr[i];

		}
		if (msf < mes) {
			msf = mes;
		}
	}
	return msf;
}

}

so in which step we are inverting the sighns

@harsh.hj
maximum subarray sum in non circular fashion calculate krne ke baad
for (int j = 0; j < n; j++) {
arr[j] = scn.nextInt();
}
int val = maxsum(arr);
int sum = 0;
for (int i1 = 0; i1 < arr.length; i1++) {
sum = sum + arr[i1];
arr[i1] = -arr[i1]; // inverting the sign