How to merge multiline into line begining with specific word

Hi,

The file format is like the following. 

timestamp=2008-02-28-23.50.29.550675;category=CONTEXT;audit event=CONNECT;
event correlator=2;
database=CURDOMS;userid=inst3;authid=INST3;
origin node=0;coordinator node=0;
application id=AC122081.FA97.054468155029;application name=java;

timestamp=2008-02-28-23.50.29.552161;category=CONTEXT;audit event=ROLLBACK;
event correlator=2;
database=CURDOMS;userid=inst3;authid=INST3;
origin node=0;coordinator node=0;
application id=AC122081.DA97.054468153551;application name=java;

timestamp=2008-02-28-23.50.29.552183;category=CONTEXT;audit event=ROLLBACK;
event correlator=2;
database=CURDOMS;userid=inst3;authid=INST3;
origin node=0;coordinator node=0;
application id=AC122081.DA97.054468153551;application name=java;

timestamp=2008-02-28-23.50.29.552188;category=CONTEXT;audit event=CONNECT_RESET;
event correlator=3;
database=CURDOMS;userid=inst3;authid=INST3;
origin node=0;coordinator node=0;
application id=AC122081.DA97.054468153551;application name=java;

timestamp=2008-02-28-23.50.29.557734;category=CONTEXT;audit event=CONNECT;
event correlator=2;
database=CURDOMS;userid=inst3;authid=INST3;
origin node=0;coordinator node=0;
application id=AC122081.FB97.054468155031;application name=java;

I would like to merge the lines between the "timestamp" to the next "timestamp" into one line. Can someone help me?

Thanks
Missyou

cat file | while read line ; do
   case $line in 
    timestamp*)  echo "$line" ;;
    "") echo "$oneline"; echo ;;
    *) oneline="$oneline""$line" ;;
   esac
done

There will also be solutions via awk and sed and perl.

perl:

open FH,"<b";
undef $/;
$str=<FH>;
$str=~ tr/\n/ /;
$str=~ s/timestamp/\ntimestamp/g;
print $str;
close FH;