public Triplet kadaneWrap(int arr[]){
        Triplet straightKadane = kadane(arr);
        int sum =0;
        for(int i=0; i < arr.length; i++){
            sum += arr[i];
            arr[i] = -arr[i];
        }
        Triplet wrappedNegKadane = kadane(arr);
        for(int i=0; i < arr.length; i++){
            arr[i] = -arr[i];
        }
        if(straightKadane.sum < sum + wrappedNegKadane.sum){
            straightKadane.sum = wrappedNegKadane.sum + sum;
            straightKadane.start = wrappedNegKadane.end+1;
            straightKadane.end = wrappedNegKadane.start-1;
        }
        return straightKadane;
    }
http://www.geeksforgeeks.org/maximum-contiguous-circular-sum/
Test cases
All negative
All positives
all 0s
src/com/interview/array/KadaneWrapArray.java