diff --git a/src/main/java/br/ufrgs/inf/prosoft/applicationtracer/TracerAspect.java b/src/main/java/br/ufrgs/inf/prosoft/applicationtracer/TracerAspect.java
index d7f3b01..efd9a42 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/applicationtracer/TracerAspect.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/applicationtracer/TracerAspect.java
@@ -12,7 +12,6 @@ import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Paths;
import java.nio.file.StandardOpenOption;
-import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -49,18 +48,13 @@ public class TracerAspect {
String methodName = modifiersReturnAndName[modifiersReturnAndName.length - 1];
String returnType = modifiersReturnAndName[modifiersReturnAndName.length - 2];
List<Parameter> parameters = new ArrayList<>();
- List<Parameter> parametersDigested = new ArrayList<>();
- MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
if (split.length > 1) {
String[] parameterTypes = split[1].split(", ");
Object[] parametersData = joinPoint.getArgs();
for (int i = 0; i < parametersData.length; i++) {
- String parameter = JSONObject.createCyclicFields(parametersData[i]).toString();
- parametersDigested.add(new Parameter(parameterTypes[i], messageDigest.digest(parameter.getBytes()).toString()));
parameters.add(new Parameter(parameterTypes[i], parametersData[i]));
}
}
- Return returnValueDigested = new Return(returnType, messageDigest.digest(JSONObject.createCyclicFields(proceed).toString().getBytes()).toString());
Return returnValue = new Return(returnType, proceed);
String instance;
try {
@@ -68,21 +62,15 @@ public class TracerAspect {
} catch (Exception ex) {
instance = "s";
}
- Trace traceDigested = new Trace(instance, Arrays.asList(modifiers), returnValueDigested, methodName, parametersDigested, startTime, endTime);
Trace trace = new Trace(instance, Arrays.asList(modifiers), returnValue, methodName, parameters, startTime, endTime);
- String signature = JSONObject.createAcyclicFields(trace).toString();
- signature += "\n";
- String signatureDigested = JSONObject.createAcyclicFields(traceDigested).toString();
- signatureDigested += "\n";
- try {
- Files.write(Paths.get("./trace"), signature.getBytes(), StandardOpenOption.APPEND);
- } catch (NoSuchFileException e) {
- Files.write(Paths.get("./trace"), signature.getBytes(), StandardOpenOption.CREATE);
- }
- try {
- Files.write(Paths.get("./traceDigested"), signatureDigested.getBytes(), StandardOpenOption.APPEND);
- } catch (NoSuchFileException e) {
- Files.write(Paths.get("./traceDigested"), signatureDigested.getBytes(), StandardOpenOption.CREATE);
+ synchronized (TracerAspect.class) {
+ String signature = JSONObject.createAcyclicFields(trace).toString();
+ signature += "\n";
+ try {
+ Files.write(Paths.get("./trace"), signature.getBytes(), StandardOpenOption.APPEND);
+ } catch (NoSuchFileException e) {
+ Files.write(Paths.get("./trace"), signature.getBytes(), StandardOpenOption.CREATE);
+ }
}
} catch (Exception ex) {
System.err.println("[Application Tracer] exception: " + ex);