Repository: geopython/pywps
Issue: Uncomplete execute resonse

# Description
# Environment
- operating system:
  linux
- Python version:
  2/3
- PyWPS version:
  rc2
- source/distribution
  - [x] git clone
  - [ ] Debian
  - [ ] PyPI
  - [ ] zip/tar.gz
  - [ ] other (please specify): 
- web server
  - [ ] Apache/mod_wsgi
  - [ ] CGI
  - [x] other (please specify): 

flask
# Steps to Reproduce

```
python demo.py
wget -O - --content-on-error --post-file static/requests/execute_buffer_post.xml  http://localhost:5000/wps
```

ressult: there are no Outputs in the response
# Additional Information

it's due to unproperly evaluated condition

https://github.com/geopython/pywps/blob/master/pywps/app/Process.py#L245

percent_done is excactly 100 in this case -> outputs would not get generated 

previously: status was generated twice, maybe the "fix" introduced this issue


Changed files:
pywps/app/Process.py, pywps/__init__.py, pywps/app/Service.py

diff --git a/pywps/__init__.py b/pywps/__init__.py
index 1726312..e23bb8f 100644
--- a/pywps/__init__.py
+++ b/pywps/__init__.py
@@ -33,7 +33,7 @@ import os
 
 from lxml.builder import ElementMaker
 
-__version__ = '4.0.0-beta1'
+__version__ = '4.0.0rc2'
 
 LOGGER = logging.getLogger('PYWPS')
 LOGGER.debug('setting core variables')
diff --git a/pywps/app/Process.py b/pywps/app/Process.py
index 9e84d00..24af1f0 100644
--- a/pywps/app/Process.py
+++ b/pywps/app/Process.py
@@ -242,10 +242,11 @@ class Process(object):
             wps_response.update_status('PyWPS Process started', 0)
             wps_response = self.handler(wps_request, wps_response)
 
-            if (not wps_response.status_percentage) or (wps_response.status_percentage != 100):
-                LOGGER.debug('Updating process status to 100% if everything went correctly')
-                wps_response.update_status('PyWPS Process finished', 100,
-                        STATUS.DONE_STATUS, clean=self.async)
+            #if (not wps_response.status_percentage) or (wps_response.status_percentage != 100):
+            LOGGER.debug('Updating process status to 100% if everything went correctly')
+            wps_response.update_status(
+                    'PyWPS Process {} finished'.format(self.title),
+                    100, STATUS.DONE_STATUS, clean=self.async)
         except Exception as e:
             traceback.print_exc()
             LOGGER.debug('Retrieving file and line number where exception occurred')
diff --git a/pywps/app/Service.py b/pywps/app/Service.py
index c9c862a..2ea70b9 100644
--- a/pywps/app/Service.py
+++ b/pywps/app/Service.py
@@ -18,6 +18,7 @@ from collections import deque
 import os
 import sys
 import uuid
+import copy
 
 LOGGER = logging.getLogger("PYWPS")
 
@@ -292,6 +293,11 @@ class Service(object):
         try:
             process = self.processes[identifier]
 
+            # make deep copy of the process instace
+            # so that processes are not overriding each other
+            # just for execute
+            process = copy.deepcopy(process)
+
             workdir = os.path.abspath(
                     config.get_config_value('server', 'workdir'))
             tempdir = tempfile.mkdtemp(prefix='pywps_process_', dir=workdir)