ISIS-1465: tiny threadsafety fix for restful when generating representations 
(SimpleDateFormat is not thread-safe)


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/a4279f06
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/a4279f06
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/a4279f06

Branch: refs/heads/master
Commit: a4279f06a64f096d9fadee6652d24dba74791f54
Parents: ee57be7
Author: Dan Haywood <[email protected]>
Authored: Tue Aug 15 21:36:18 2017 +0100
Committer: Dan Haywood <[email protected]>
Committed: Tue Aug 15 21:36:18 2017 +0100

----------------------------------------------------------------------
 .../ContentNegotiationServiceForRestfulObjectsV1_0.java      | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/a4279f06/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
----------------------------------------------------------------------
diff --git 
a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
 
b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
index ac8692f..fb666a8 100644
--- 
a/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
+++ 
b/core/viewer-restfulobjects-rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
@@ -56,8 +56,6 @@ import 
org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationSer
 )
 public class ContentNegotiationServiceForRestfulObjectsV1_0 implements 
ContentNegotiationService {
 
-    private static final DateFormat ETAG_FORMAT = new 
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
-
     private boolean strictAcceptChecking;
 
     @PostConstruct
@@ -110,11 +108,15 @@ public class 
ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNe
 
         final Version version = objectAdapter.getVersion();
         if (version != null && version.getTime() != null) {
-            responseBuilder.tag(ETAG_FORMAT.format(version.getTime()));
+            responseBuilder.tag(etagFormat().format(version.getTime()));
         }
         return responseBuilder;
     }
 
+    private DateFormat etagFormat() {
+        return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
+    }
+
     @Override
     public ResponseBuilder buildResponse(
             final RepresentationService.Context2 rendererContext,

Reply via email to