Hi,
Ok, I just created a Jira ticket:
SYNCOPE-1541 - Syncope response message timestamps missing millisecs component
if "0 msecs"
and marked it as an "Improvement".
Thanks,Jim
On Wednesday, February 12, 2020, 12:15:11 PM UTC, Francesco Chicchiriccò
<[email protected]> wrote:
Hi,
I have replicated the behavior (as I was suspecting, it's happening only with
XML) via this simple snippet:
https://paste.apache.org/308ln
Essentially, dropping ".000" is part of the default JAXB date serialization.
To change this, the approach described in
https://www.baeldung.com/jaxb#complex-data-types
should be taken.
However, I'd see it as an improvement rather than an actual bug; anyway,
please go and open an issue on JIRA (don't forget to link to this discussion).
Regards.
On 11/02/20 09:32, [email protected] wrote:
Hi Francesco,
This problem is NOT happening every time... In fact, it has only occurred
ONCE so far, and I have been doing a LOT of testing since then, to try to
reproduce it, but so far, I have not been able to replicate the problem.
Luckily I did save off the response where we saw the original problem, and am
pasting a snippet here:
<?xml version="1.0" encoding="UTF-8"?><syncope21:execs
xmlns:syncope21="http://syncope.apache.org/2.1"><syncope21:execxmlns:syncope21="http://syncope.apache.org/2.1"><end>2020-02-10T15:44:34.398Z</end><start>2020-02-10T15:44:31Z</start><jobType>TASK</jobType><key>40af81b0-55e5-49eb-af81-b055e509ebf6</key><message>Users
[created/failures]: 0/0 [updated/failures]: 10/0 [deleted/failures]: 0/0 [no
operation/ignored]: 0/0
Groups [created/failures]: 0/0 [updated/failures]: 0/0 [deleted/failures]: 0/0
[no operation/ignored]: 0/0
Users updated:
UPDATE SUCCESS (key/name): 1e3bda54-10f5-42df-bbda-5410f592df92/newfimtest80
UPDATE SUCCESS (key/name): 45defb26-d1da-4f28-9efb-26d1dabf28c1/newfimtest81
...
UPDATE SUCCESS (key/name): a480aa66-031d-43e7-80aa-66031dd3e7ce/newfimtest89
</message><refDesc>PULL Task
6cef6cfd-4c73-4224-af6c-fd4c733224c71_Add_New_Users_To_Active</refDesc><refKey>6cef6cfd-4c73-4224-af6c-fd4c733224c7</refKey><status>SUCCESS</status></syncope21:exec></syncope21:execs>
Note the <start> and <end> timestamps and the missing millisecs component of
the timestamp in the <start> time (but not in the <end> time):
<start>2020-02-10T15:44:31Z</start>
vs.
<end>2020-02-10T15:44:34.398Z</end>
I *SUSPECT* that something in the Syncope code, or maybe in some library you
are using, is dropping the millesecs part of the timestamp, and if I had to
get, this may possibly be happening when the millisecs component of the
timestamp is ".000".
For now, we are modifying our code that is processing the responses, by
detecting the missing millisecs component of the timestamp, and then replacing
it with ".000Z", but in order to confirm that we are working on the correct
"assumption" (i.e., that in this case, the millisecs should be .000Z), we want
to confirm with you if what we suspect (that the millisecs should be like
".000Z") is correct?
As you may infer, if our guess is correct, I think that it would be very
difficult to replicate the problem at-will, so I think that the answer to that
would probably has to come from the Syncope code (or some library that is being
used), rather in a test.
Thanks, Jim
On Tuesday, February 11, 2020, 7:32:21 AM UTC, Francesco Chicchiriccò
<[email protected]> wrote:
Hi,
when calling the public demo (2.1.6-SNAPSHOT) as follows:
curl -X GET
"https://syncope-vm.apache.org/syncope/rest/tasks/executions/recent?max=1" -H
"accept: application/json"
response is
[
{
"start": "2020-02-11T04:01:20.034+0000",
"end": "2020-02-11T04:01:20.411+0000",
"key": "3f227324-b763-4c2f-a273-24b7634c2f7e",
"jobType": "TASK",
"refKey": "e1e520f0-2cbd-4e11-9a89-ea58a0f957e7",
"refDesc": "NOTIFICATION Task e1e520f0-2cbd-4e11-9a89-ea58a0f957e7 ",
"status": "SENT",
"message": "FROM: [email protected]\nTO: [email protected]\nSUBJECT:
Notification for SYNCOPE-81\n\nNOTIFICATION-81\n\nNOTIFICATION-81\n"
}
]
e.g. start timestamp has milliseconds, as expected.
Same happens with application/xml:
<?xml version="1.0" encoding="UTF-8"?>
<syncope21:execs xmlns:syncope21="http://syncope.apache.org/2.1">
<syncope21:exec xmlns:syncope21="http://syncope.apache.org/2.1">
<end>2020-02-11T04:01:20.411Z</end>
<start>2020-02-11T04:01:20.034Z</start>
<jobType>TASK</jobType>
<key>3f227324-b763-4c2f-a273-24b7634c2f7e</key>
<message>FROM: [email protected]
TO: [email protected]
SUBJECT: Notification for SYNCOPE-81
NOTIFICATION-81
NOTIFICATION-81
</message>
<refDesc>NOTIFICATION Task e1e520f0-2cbd-4e11-9a89-ea58a0f957e7 </refDesc>
<refKey>e1e520f0-2cbd-4e11-9a89-ea58a0f957e7</refKey>
<status>SENT</status>
</syncope21:exec>
</syncope21:execs>
and application/yaml:
---
- start: 1581393680034
end: 1581393680411
key: "3f227324-b763-4c2f-a273-24b7634c2f7e"
jobType: "TASK"
refKey: "e1e520f0-2cbd-4e11-9a89-ea58a0f957e7"
refDesc: "NOTIFICATION Task e1e520f0-2cbd-4e11-9a89-ea58a0f957e7 "
status: "SENT"
message: "FROM: [email protected]\nTO: [email protected]\nSUBJECT:
Notification\
\ for SYNCOPE-81\n\nNOTIFICATION-81\n\nNOTIFICATION-81\n"
Regards.
On 10/02/20 19:07, [email protected] wrote:
Hi,
We are using the Syncope 2.1.5 API, and we send a GET request to the
tasks/executions/recent/?max=1 URI, and we get a response message that includes
the <start> and <end> elements, which have the start and ending timestamps.
These ending part of these timestamps are supposed to be formatted:
H:M:S.fZ
e.g.:
...T13:02:35.12345Z
but we noticed in one case so far at least we got a response that had this
format
...T13:02:35Z
In other words, the msecs part was completely missing!
Is this (dropping the msecs part of the timestamp) intentional?
I am guessing (just a guess) that it is being dropped because possibly the
msecs part is like ".00000"?
Is that the correct?
Or is this a bug in Syncope 2.1.5 REST API?
Thanks, Jim
--
Francesco Chicchiriccò
Tirasa - Open Source Excellence
http://www.tirasa.net/
Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/