fix join streams; improve CharStreamUtil