Google AppEngine Session Expired

I just made a new vaadin project as described in the
How-To
. I added some link and an upload button. The I deployed the application on
http://romeosalab.appspot.com/
. As you can see, when the “Upload” button is clicked, then the “Session Expired Take note of any unsaved data, and click here to continue.” appears.
This is the web.xml file

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>TestAppEngine2</display-name>
	<context-param>
		<description>
		Vaadin production mode</description>
		<param-name>productionMode</param-name>
		<param-value>false</param-value>
	</context-param>
	<servlet>
		<servlet-name>Testappengine2 Application</servlet-name>
		<servlet-class>
		com.vaadin.terminal.gwt.server.GAEApplicationServlet</servlet-class>
		<init-param>
			<description>
			Vaadin application class to start</description>
			<param-name>application</param-name>
			<param-value>com.example.testappengine2.Testappengine2Application</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>Testappengine2 Application</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
</web-app>

And this is the appengine-web.xml:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
	<application>romeosalab</application>
	<version>1</version>
	
	<!-- Configure java.util.logging -->
	<system-properties>
		<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
	</system-properties>
	
	<sessions-enabled>true</sessions-enabled>
	
</appengine-web-app>

Where am I wrong?

Note that I used Vaadin version 6.3 and 6.4. I made other Appengine application before, but I did not encounter this problem with previous versions.

Does anyone know if the upload component works with appengine? If it works, then how do you implement the receiver so that the file is stored in memory or in a blob? I tried to use ByteArrayOutputStream, but it did non work. Do you have any suggestion?

GAE indeed makes this a bit convoluted, but implementing a stream that will receive the uploaded bytes to memory is easy. Eg.

public class UploadOutputStream extends OutputStream implements Serializable {
	private static final int SIZE = 256 * 1024;

	private byte[] buffer = new byte[SIZE]
;

	private int written = 0;

	@Override
	public void write(int b) throws IOException {
		if (written >= SIZE - 1)
			throw new IOException("Buffer is full");

		getBuffer()[written++]
 = (byte) b;
	}
	
	public byte[] getBuffer() {
		return buffer;
	}
}

Thank you