Hello,
Im using the Contiki OS on some nodes.
Because i need to do some translations between certain Content-Formats i want to use a californium proxy.
For client software i'm using Copper.
I use the example code for a blockwise transfer GET request from Contiki and the example proxy from californium.
The data is correctly shown in Copper, but i get a time out message on the proxy.
Nov 09, 2015 11:59:45 AM org.eclipse.californium.core.network.config.NetworkConfig createStandardWithFile
INFO: Loading standard properties from file Californium.properties
Nov 09, 2015 11:59:45 AM org.eclipse.californium.core.CoapServer start
INFO: Starting server
Nov 09, 2015 11:59:45 AM org.eclipse.californium.core.network.CoapEndpoint start
Nov 09, 2015 12:00:10 PM be.ugent.translator.Translator getRequest
INFO: Forwarding request to coap://[aaaa::c30c:0:0:2]/wishful_control/
Nov 09, 2015 12:00:10 PM org.eclipse.californium.core.network.CoapEndpoint start
Nov 09, 2015 12:00:10 PM org.eclipse.californium.core.network.EndpointManager createDefaultEndpoint
Nov 09, 2015 12:00:10 PM be.ugent.resource.ReverseResource forwardRequest
INFO: Proxy received a Coap response.
Nov 09, 2015 12:00:25 PM org.eclipse.californium.core.network.stack.BlockwiseLayer$BlockCleanupTask run
INFO: Block2 transfer timed out: CON-GET    MID=19113, Token=98a2ed, OptionSet={"Uri-Path":"wishful_control"}, no payload
This is the console output from Copper :
INFO: Storing transaction 48699
=sending CoAP message===
 Type: Confirmable
 Code: GET
 Message ID: 48699
 Options:
  Uri-Path: node2/wishful_control [21]
 =======================
-sent UDP datagram------
 Length: 27
 -----------------------
-receiving UDP datagram-
 Length: 4
 -----------------------
=received CoAP message==
 Type: Acknowledgment
 Code: EMPTY
 Message ID: 48699
 =======================
INFO: Closing message 48699
INFO: defaultHandler()
-receiving UDP datagram-
 Length: 37
 -----------------------
=received CoAP message==
 Type: Confirmable
 Code: 2.05 Content
 Message ID: 20425
 Payload: 32 bytes
abcdefghijklmnopqrstuvwxyz012345
 =======================
INFO: Incoming separate reponse (Token: null)
=sending CoAP message===
 Type: Acknowledgment
 Code: EMPTY
 Message ID: 20425
 =======================
-sent UDP datagram------
 Length: 4
 -----------------------
INFO: defaultHandler()
The resource get_handler implementation : 
static void
res_get_handler(void *request, void *response, uint8_t *buffer, uint16_t preferred_size, int32_t *offset){
	const char *msg = "abcdefghijklmnopqrstuvwxyz012345";
	printf("offset1 = %d\n",*offset);
	/* Check the offset for boundaries of the resource data. */
	if(*offset >= 32) {
		REST.set_response_status(response, REST.status.BAD_OPTION);
		/* A block error message should not exceed the minimum block size (16). */
		const char *error_msg = "BlockOutOfScope";
		REST.set_response_payload(response, error_msg, strlen(error_msg));
		return;
	}
	REST.set_response_payload(response, msg + *offset ,preferred_size);
	/* IMPORTANT for chunk-wise resources: Signal chunk awareness to REST engine. */
	*offset += preferred_size;
	printf("offset2 = %d\n",*offset);
	/* Signal end of resource representation. */
	if(*offset >= strlen(msg)) {
		*offset = -1;
	}
}
Output in Cooja : 
34:43.394	ID:2	offset1 = 0
34:43.395	ID:2	offset2 = 16
34:44.273	ID:2	offset1 = 16
34:44.274	ID:2	offset2 = 32
Anybody that can help me understand why there is a time out on the proxy?
This is my idea : 
	protected class BlockCleanupTask implements Runnable {
		
		private Exchange exchange;
		
		public BlockCleanupTask(Exchange exchange) {
			this.exchange = exchange;
		}
		
		@Override
		public void run() {
			if (exchange.getRequest()==null) {
				LOGGER.info("Block1 transfer timed out: " + exchange.getCurrentRequest());
			} else {
				LOGGER.info("Block2 transfer timed out: " + exchange.getRequest());
			}
			exchange.setComplete();
		}
	}
The blockwise tranfser is completed successfully ( cause the Copper client receives the data ), but the exchange is not closed?
The problem is that i don't know if the issue is in Erbium or in Californium. 
Any thoughts would be greatly appreciated.
Greets
Jo