morciuch 2003/06/19 16:28:20
Modified: src/java/org/apache/jetspeed/modules/actions JLoginUser.java
JetspeedAccessController.java
JetspeedSessionValidator.java
Log:
Applied necessary changes to trap Horrible Exception stack traces (see Bugzilla bug#
20511).
ShowError template (or whatever is defined as template.error in tr.props) is
displayed which isn't much better than the stack trace itself but at least can be
customized.
Revision Changes Path
1.34 +11 -1
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/JLoginUser.java
Index: JLoginUser.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/JLoginUser.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- JLoginUser.java 7 Apr 2003 19:46:27 -0000 1.33
+++ JLoginUser.java 19 Jun 2003 23:28:20 -0000 1.34
@@ -77,7 +77,7 @@
import org.apache.jetspeed.om.security.JetspeedUser;
-
+import org.apache.jetspeed.services.security.nosecurity.FakeJetspeedUser;
import org.apache.jetspeed.services.rundata.JetspeedRunData;
import org.apache.jetspeed.services.resources.JetspeedResources;
import org.apache.jetspeed.services.JetspeedSecurity;
@@ -272,6 +272,16 @@
data.getParameters().setString("username", username);
}
+ return;
+ }
+ catch (Throwable other)
+ {
+
data.setScreenTemplate(JetspeedResources.getString(TurbineConstants.TEMPLATE_ERROR));
+ String message = other.getMessage() != null ? other.getMessage() :
other.toString();
+ data.setMessage(message);
+
data.setStackTrace(org.apache.turbine.util.StringUtils.stackTrace(other), other);
+ JetspeedUser juser = new
FakeJetspeedUser(JetspeedSecurity.getAnonymousUserName(), false);
+ data.setUser(juser);
return;
}
1.8 +34 -5
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/JetspeedAccessController.java
Index: JetspeedAccessController.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/JetspeedAccessController.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- JetspeedAccessController.java 7 May 2003 15:16:47 -0000 1.7
+++ JetspeedAccessController.java 19 Jun 2003 23:28:20 -0000 1.8
@@ -57,11 +57,15 @@
import org.apache.turbine.util.RunData;
import org.apache.turbine.modules.Action;
import org.apache.turbine.util.Log;
+import org.apache.turbine.TurbineConstants;
import org.apache.jetspeed.services.rundata.JetspeedRunData;
import org.apache.jetspeed.services.Profiler;
+import org.apache.jetspeed.services.resources.JetspeedResources;
import org.apache.jetspeed.om.profile.Profile;
import org.apache.jetspeed.om.security.JetspeedUser;
+import org.apache.jetspeed.services.security.nosecurity.FakeJetspeedUser;
+import org.apache.jetspeed.services.JetspeedSecurity;
/**
Calls the profiler to load the requested PSML resource based on request params
@@ -92,11 +96,36 @@
return;
}
+ Profile newProfile = null;
+ Profile currentProfile = null;
- // get the profile and store it in the RunData
- Profile newProfile = Profiler.getProfile(jdata);
- Profile currentProfile = jdata.getProfile();
-
+ try
+ {
+ // get the profile and store it in the RunData
+ newProfile = Profiler.getProfile(jdata);
+ currentProfile = jdata.getProfile();
+ }
+ catch (Throwable other)
+ {
+
data.setScreenTemplate(JetspeedResources.getString(TurbineConstants.TEMPLATE_ERROR));
+ String message = other.getMessage() != null ? other.getMessage() :
other.toString();
+ data.setMessage(message);
+
data.setStackTrace(org.apache.turbine.util.StringUtils.stackTrace(other), other);
+
+ if (currentProfile == null)
+ {
+ currentProfile = Profiler.createProfile();
+ }
+ if (newProfile == null)
+ {
+ newProfile = Profiler.createProfile();
+ }
+ if (data.getUser() == null)
+ {
+ JetspeedUser juser = new
FakeJetspeedUser(JetspeedSecurity.getAnonymousUserName(), false);
+ data.setUser(juser);
+ }
+ }
if ((currentProfile == null)
1.24 +14 -2
jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/JetspeedSessionValidator.java
Index: JetspeedSessionValidator.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/modules/actions/JetspeedSessionValidator.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- JetspeedSessionValidator.java 7 May 2003 15:16:47 -0000 1.23
+++ JetspeedSessionValidator.java 19 Jun 2003 23:28:20 -0000 1.24
@@ -60,6 +60,7 @@
import org.apache.turbine.util.Log;
import org.apache.turbine.services.resources.TurbineResources;
import org.apache.turbine.services.localization.LocalizationService;
+import org.apache.turbine.TurbineConstants;
import org.apache.jetspeed.om.security.JetspeedUser;
import org.apache.jetspeed.services.JetspeedSecurity;
@@ -101,7 +102,18 @@
//FIXME: if the user is not found (this can happen, for instance,
// if the anonymous user is not in the DB), it throws a terrible exception
// in the user's face
- super.doPerform(data);
+ try
+ {
+ super.doPerform(data);
+ }
+ catch (Throwable other)
+ {
+
data.setScreenTemplate(JetspeedResources.getString(TurbineConstants.TEMPLATE_ERROR));
+ String message = other.getMessage() != null ? other.getMessage() :
other.toString();
+ data.setMessage(message);
+
data.setStackTrace(org.apache.turbine.util.StringUtils.stackTrace(other), other);
+ return;
+ }
JetspeedUser user = (JetspeedUser)data.getUser();
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]