En cuanto a la info de sincronizacion:
http://www.google.es/#sclient=psy-ab...w=1280&bih=885
(también puedes quitar el filetype para buscar páginas)
Con respecto a tus errores, mucho me temo que al hacer substrings de tipo str2=str.substring(i+15); estés accediendo a una posición que no existe en la cadena. Para ver eso deberías hacer debug con tu IDE y examinar los valores que toman las variables para saber donde se te produce el error exactamente.
Además puedes tener otros dos tipos de errores diferentes según lo que me has comentado, uno de ellos puede ser un bucle infinito o que se quede a la espera de que un hilo libere algún método y que no lo haga. Pero eso lo descubrirás también con el debug.