Author: dpillot
Date: Fri Sep 21 14:45:47 2007
New Revision: 18618
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18618&repname=
=3Djahia
Log:
added trace for fields redefinitions warnings/debug to get more precise inf=
ormation on callers (tag or scriptlet code) of the method
Modified:
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/containers/Ja=
hiaContainerSet.java
branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/fields/JahiaF=
ieldSet.java
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/contain=
ers/JahiaContainerSet.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/data/containers/JahiaContainerSet.java&rev=
=3D18618&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/containers/Ja=
hiaContainerSet.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/containers/Ja=
hiaContainerSet.java Fri Sep 21 14:45:47 2007
@@ -21,12 +21,14 @@
package org.jahia.data.containers;
=
import org.apache.log4j.Logger;
+import org.jahia.bin.Jahia;
import org.jahia.data.JahiaData;
import org.jahia.data.fields.JahiaFieldDefinition;
import org.jahia.data.fields.JahiaFieldSubDefinition;
import org.jahia.data.fields.LoadFlags;
import org.jahia.exceptions.JahiaException;
import org.jahia.hibernate.manager.SpringContextSingleton;
+import org.jahia.params.ProcessingContext;
import org.jahia.registries.JahiaContainerDefinitionsRegistry;
import org.jahia.registries.JahiaFieldDefinitionsRegistry;
import org.jahia.registries.ServicesRegistry;
@@ -36,12 +38,14 @@
import org.jahia.services.pages.ContentPage;
import org.jahia.services.version.EntryLoadRequest;
import org.jahia.utils.JahiaTools;
-import org.jahia.bin.Jahia;
-import org.jahia.params.ProcessingContext;
import org.springframework.context.ApplicationContext;
=
+import java.io.File;
import java.util.*;
=
+/**
+ * @version $Rev$
+ */
public class JahiaContainerSet implements Map {
=
/**
@@ -324,18 +328,32 @@
=
} else {
if (aDef.getType(pageDefID) !=3D -1) {
+ boolean someChanges=3Dfalse;
logger.warn("Definition for field " + fieldTit=
le + " (in " + containerName + ") has changed. ");
if (propsHaveChanged) {
logger.warn(" Properties have changed : " =
+ props + " / " + declaredProps);
+ someChanges=3Dtrue;
}
if (titleHasChanged) {
logger.warn(" Title has changed : " + aDef=
.getTitle(pageDefID) + " / " + fieldTitle);
+ someChanges=3Dtrue;
}
if (typeHasChanged) {
logger.warn(" Type has changed : " + aDef.=
getType(pageDefID) + " / " + fieldType);
+ someChanges=3Dtrue;
}
if (defaultValueHasChanged) {
logger.warn(" Default value has changed : =
" + aDef.getDefaultValue(pageDefID) + " / " + defaultValue);
+ someChanges=3Dtrue;
+ }
+ if (someChanges) {
+ if (logger.isDebugEnabled()) {
+ Throwable throwable =3D (new Throwable=
());
+ throwable.fillInStackTrace();
+ traceCaller(throwable, "declareField");
+ } else {
+ logger.warn("please activate debug mod=
e on " + JahiaContainerSet.class.getPackage() + "." + JahiaContainerSet.cla=
ss.getName() + " in your log4j.xml configuration to have more info");
+ }
}
}
=
@@ -1632,4 +1650,29 @@
}
}
=
+ /**
+ * internal method to trace re-definition callers
+ * @param t the throwable
+ * @param methodName the name of method to trace
+ */
+ private void traceCaller(Throwable t,String methodName){
+ String requestURI =3D Jahia.getThreadParamBean().getRequestURI();
+ String templateName =3D jData.getProcessingContext().getPage().get=
PageTemplate().getName();
+ String templateSource =3D jData.getProcessingContext().getPage().g=
etPageTemplate().getSourcePath();
+ String templateJspSourceName =3D templateSource.substring(template=
Source.lastIndexOf(File.separator) + 1, templateSource.lastIndexOf("."));
+
+ for (int i =3D 0; i < t.getStackTrace().length; i++) {
+ // trace only if method called is equal to methodName or _jspS=
ervice(scriptlet)
+ if (t.getStackTrace()[i].getFileName().indexOf(templateJspSour=
ceName) !=3D -1
+ && (t.getStackTrace()[i].getMethodName().indexOf(meth=
odName)!=3D-1 || t.getStackTrace()[i].getMethodName().indexOf("_jspService"=
)!=3D-1 ))
+ logger.debug("Field ReDefinition:"
+ + "\nrequested uri:" + requestURI
+ + "\ntemplatename:" + templateName
+ + "\ntemplatepath:" + templateSource
+ + "\n"+t.getStackTrace()[i].getMethodName()
+ + " at line " + t.getStackTrace()[i].getLineNumber=
()
+ + "\nin file " + t.getStackTrace()[i].getFileName(=
));
+ }
+ }
+
} // end JahiaContainerSet
Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/fields/=
JahiaFieldSet.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/data/fields/JahiaFieldSet.java&rev=3D18618&=
repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/fields/JahiaF=
ieldSet.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/data/fields/JahiaF=
ieldSet.java Fri Sep 21 14:45:47 2007
@@ -33,7 +33,11 @@
import org.jahia.params.ProcessingContext;
=
import java.util.*;
+import java.io.File;
=
+/**
+ * @version $Rev$
+ */
public class JahiaFieldSet implements Map {
=
private static org.apache.log4j.Logger logger =3D org.apache.log4j.Log=
ger.getLogger(JahiaFieldSet.class);
@@ -218,22 +222,37 @@
JahiaException.CRITICAL_SEVERITY);
=
} else {
+ boolean someChanges=3Dfalse;
if (aDef.getType(pageDefID) !=3D -1) {
+
logger.warn("Definition for field " + =
fieldTitle + " has changed");
+ someChanges=3Dtrue;
}
if (propsHaveChanged) {
logger.warn(" Properties have changed =
: "+props + " / " + declaredProps);
+ someChanges=3Dtrue;
}
if (titleHasChanged) {
logger.warn(" Title has changed : "+aD=
ef.getTitle(pageDefID) + " / " + fieldTitle);
+ someChanges=3Dtrue;
}
if (typeHasChanged) {
logger.warn(" Type has changed : "+aDe=
f.getType(pageDefID) + " / " + fieldType);
+ someChanges=3Dtrue;
}
if (defaultValueHasChanged) {
logger.warn(" Default value has change=
d : "+aDef.getDefaultValue(pageDefID) + " / " + defaultValue);
+ someChanges=3Dtrue;
+ }
+ if (someChanges) {
+ if (logger.isDebugEnabled()) {
+ Throwable throwable =3D (new Throw=
able());
+ throwable.fillInStackTrace();
+ traceCaller(throwable, "declareFie=
ld");
+ } else {
+ logger.warn("please activate debug=
mode on " + JahiaFieldSet.class.getPackage() + "." + JahiaFieldSet.class.g=
etName() + " in your log4j.xml configuration to have more info");
+ }
}
-
// okay, no alert ahead, the type hasn't b=
een modified
// let's synchronize the data between :
// - the template declaration (file)
@@ -598,5 +617,31 @@
return fields.size();
}
=
+ /**
+ * internal method to trace field re-definition callers
+ * @param t the throwable
+ * @param methodName the name of method to trace
+ */
+ private void traceCaller(Throwable t,String methodName){
+ String requestURI =3D Jahia.getThreadParamBean().getRequestURI();
+ String templateName =3D jData.getProcessingContext().getPage().get=
PageTemplate().getName();
+ String templateSource =3D jData.getProcessingContext().getPage().g=
etPageTemplate().getSourcePath();
+ String templateJspSourceName =3D templateSource.substring(template=
Source.lastIndexOf(File.separator) + 1, templateSource.lastIndexOf("."));
+
+
+
+ for (int i =3D 0; i < t.getStackTrace().length; i++) {
+ // trace only if method called is equal to methodName or _jspS=
ervice(scriptlet)
+ if (t.getStackTrace()[i].getFileName().indexOf(templateJspSour=
ceName) !=3D -1
+ && (t.getStackTrace()[i].getMethodName().indexOf(meth=
odName)!=3D-1 || t.getStackTrace()[i].getMethodName().indexOf("_jspService"=
)!=3D-1 ))
+ logger.debug("Field ReDefinition:"
+ + "\nrequested uri:" + requestURI
+ + "\ntemplatename:" + templateName
+ + "\ntemplatepath:" + templateSource
+ + "\n"+t.getStackTrace()[i].getMethodName()
+ + " at line " + t.getStackTrace()[i].getLineNumber=
()
+ + "\nin file " + t.getStackTrace()[i].getFileName(=
));
+ }
+ }
=
} // end JahiaFieldSet
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list