package org.jboss.resteasy.test.providers.datasource.resource; import org.jboss.logging.Logger; import javax.activation.DataSource; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.io.File; import java.io.InputStream; @Path("/") public class ReadDataSourceTwiceCountTempFileResource { protected static final Logger logger = Logger.getLogger(ReadDataSourceTwiceCountTempFileResource.class.getName()); @Path("post") @Consumes(MediaType.APPLICATION_OCTET_STREAM) //@Produces(MediaType.TEXT_PLAIN) @POST public Response post(DataSource source) throws Exception { InputStream is = source.getInputStream(); while (is.read() > -1) { } logger.info("Readed once, going to read second"); InputStream is2 = source.getInputStream(); is2.close(); // return Response.ok().entity(countTempFiles()).type(MediaType.WILDCARD_TYPE).build(); return Response.ok().entity(countTempFiles()).build(); } private int countTempFiles() throws Exception { String tmpdir = System.getProperty("java.io.tmpdir"); logger.info("tmpdir: " + tmpdir); File dir = new File(tmpdir); int counter = 0; for (File file : dir.listFiles()) { if (file.getName().startsWith("resteasy-provider-datasource")) { counter++; } } return counter; } }