In a large mixing bowl, beat egg yolks at high speed until light and fluffy. Gradually add sugar, beating until mixture is thick and light-colored. Add flour and cocoa, beating on low speed. Preheat the oven to 180 degrees C.
In another bowl, beat egg whites until soft peaks form; fold into batter. Mix until no streaks of white remain. Grease a 25x40cm baking tray; line with greaseproof paper and grease and flour paper. Spread batter evenly in pan. Bake for 15 minutes or until cake springs back when touched lightly.
Cover with greaseproof paper and cool completely on a wire rack. Remove paper; invert cake onto an 50cm long piece of greaseproof paper dusted with icing sugar. Trim edges from all four sides of cake.
For filling, combine flour and milk in a saucepan. Cook over low heat; stirring until thick. Cool. In a mixing bowl, cream sugar, butter and vanilla. Add flour mixture; bet until fluffy. Fold in walnuts. Spread on cake and roll up, Swiss roll style, starting from one short end.
For icing, beat butter until fluffy in a small bowl. Beat in sugar, cocoa and coffee. Spread over cake, using a fork to create a bark-like effect. Sprinkle with icing sugar and nuts if desired.