For adaptiveThreshold source should be 8-bit single-channel image, but you are loading source2
as colour,
So, Change the line
Mat source2 = Highgui.imread("grayscale.jpg", Highgui.CV_LOAD_IMAGE_COLOR);
to
Mat source2 = Highgui.imread("grayscale.jpg", Highgui.CV_LOAD_IMAGE_GRAYSCALE);
Also why to save and load destination
image before adaptiveThreshold, pass it directly to adaptiveThreshold()