Author: glandais
Date: 2008-01-29 18:20:47 +0000 (Tue, 29 Jan 2008)
New Revision: 557
Modified:
trunk/simexplorer-is-ear/pom.xml
trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java
trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceClient.java
trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java
trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceServer.java
trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineSecuImpl.java
trunk/simexplorer-is-storage/pom.xml
trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java
trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineImpl.java
trunk/simexplorer-is-web/pom.xml
trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ExceptionReport.java
Log:
Security service & Tapestry 5.0.9
Modified: trunk/simexplorer-is-ear/pom.xml
===================================================================
--- trunk/simexplorer-is-ear/pom.xml 2008-01-29 09:29:17 UTC (rev 556)
+++ trunk/simexplorer-is-ear/pom.xml 2008-01-29 18:20:47 UTC (rev 557)
@@ -40,13 +40,23 @@
<dependency>
<groupId>tapestry5-treegrid</groupId>
<artifactId>tapestry5-treegrid</artifactId>
- <version>0.0.4-SNAPSHOT</version>
+ <version>5.0.9</version>
</dependency>
<dependency>
<groupId>org.apache.tapestry</groupId>
<artifactId>tapestry-upload</artifactId>
<version>5.0.9</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.tapestry</groupId>
+ <artifactId>tapestry-core</artifactId>
+ <version>5.0.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tapestry</groupId>
+ <artifactId>tapestry-ioc</artifactId>
+ <version>5.0.9</version>
+ </dependency>
<dependency>
<groupId>simexplorer-is</groupId>
Modified: trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java
===================================================================
--- trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java 2008-01-29 09:29:17 UTC (rev 556)
+++ trunk/simexplorer-is-security/src/java/fr/cemagref/simexplorer/is/security/credentials/CredentialManagerImpl.java 2008-01-29 18:20:47 UTC (rev 557)
@@ -29,6 +29,7 @@
import fr.cemagref.simexplorer.is.security.entities.Actor;
import fr.cemagref.simexplorer.is.security.entities.Group;
import fr.cemagref.simexplorer.is.security.entities.Permission;
+import fr.cemagref.simexplorer.is.security.entities.User;
@Stateless(name = "CredentialManager")
@Local(CredentialManager.class)
@@ -42,34 +43,49 @@
int level = -1;
if (actor.equals(permission.getActor())) {
return 0;
- } else {
- List<Group> groups = actor.getGroups();
- for (Group group : groups) {
- int levelGroup = getRelativeLevel(group, permission);
- if (levelGroup >= 0) {
- level = levelGroup + 1;
- }
+ }
+ List<Group> groups = actor.getGroups();
+ for (Group group : groups) {
+ int levelGroup = getRelativeLevel(group, permission);
+ if (levelGroup >= 0) {
+ level = levelGroup + 1;
}
}
+
return level;
}
public Permission getPermission(String token, String businessId) {
Permission p = null;
- Actor actor = dao.getLoggedUser(token);
- List<Permission> permissions = dao.getPermissions(businessId);
- int minLevel = 0;
+ User user = dao.getLoggedUser(token);
- for (Permission permission : permissions) {
- int relativeLevel = getRelativeLevel(actor, permission);
- if (relativeLevel >= 0) {
- if (p == null || minLevel > relativeLevel) {
- p = permission;
- minLevel = relativeLevel;
+ if (user.isSuperAdmin()) {
+ p = new Permission();
+ p.setActor(user);
+ p.setBusinessId(businessId);
+ p.setOwner(true);
+ } else {
+ List<Permission> permissions = dao.getPermissions(businessId);
+ int minLevel = 0;
+
+ for (Permission permission : permissions) {
+ int relativeLevel = getRelativeLevel(user, permission);
+ if (relativeLevel >= 0) {
+ if (p == null || minLevel > relativeLevel) {
+ p = permission;
+ minLevel = relativeLevel;
+ }
}
}
}
+
+ if (p != null && p.isOwner()) {
+ p.setCanAdmin(true);
+ p.setCanRead(true);
+ p.setCanWrite(true);
+ }
+
return p;
}
Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceClient.java
===================================================================
--- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceClient.java 2008-01-29 09:29:17 UTC (rev 556)
+++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceClient.java 2008-01-29 18:20:47 UTC (rev 557)
@@ -17,17 +17,26 @@
* ##% */
package fr.cemagref.simexplorer.is.service;
+import fr.cemagref.simexplorer.is.storage.StorageException;
+import fr.cemagref.simexplorer.is.storage.engine.StorageEngine;
import fr.cemagref.simexplorer.is.storage.engine.StorageEngineImpl;
public class StorageServiceClient extends StorageServiceCommon {
- public StorageServiceClient() {
- storageEngine = new StorageEngineImpl();
- super.firstOpen();
- }
+ private static StorageEngine storageEngine;
- public String loginUser(String login, String password) throws SimExplorerServiceException {
+ public String loginUser(String login, String password)
+ throws SimExplorerServiceException {
throw new SimExplorerServiceException("can not log to local service");
}
+ @Override
+ protected StorageEngine getStorageEngine() throws StorageException {
+ if (storageEngine == null) {
+ storageEngine = new StorageEngineImpl();
+ storageEngine.open();
+ }
+ return storageEngine;
+ }
+
}
Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java
===================================================================
--- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java 2008-01-29 09:29:17 UTC (rev 556)
+++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceCommon.java 2008-01-29 18:20:47 UTC (rev 557)
@@ -54,30 +54,17 @@
public abstract class StorageServiceCommon implements StorageService,
XmlConstants {
- protected StorageEngine storageEngine;
-
private static final String KEY_XML = "_xml";
- protected void firstOpen() {
- try {
- storageEngine.open();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
+ protected abstract StorageEngine getStorageEngine() throws StorageException;
- public void open() throws Exception {
- storageEngine.open();
- }
-
public void close() throws Exception {
- storageEngine.close();
+ getStorageEngine().close();
}
public void commit() throws SimExplorerServiceException {
try {
- storageEngine.commit();
+ getStorageEngine().commit();
} catch (StorageException e) {
throw new SimExplorerServiceException(e);
}
@@ -118,7 +105,7 @@
public MetaDataEntity getMetadata(String token, String uuid)
throws SimExplorerServiceException {
try {
- return storageEngine.getMetadata(token, uuid);
+ return getStorageEngine().getMetadata(token, uuid);
} catch (StorageException e) {
throw new SimExplorerServiceException(e);
}
@@ -127,7 +114,8 @@
public MetaDataEntity getMetadata(String token, String uuid, String version)
throws SimExplorerServiceException {
try {
- return storageEngine.getMetadata(token, uuid, new Version(version));
+ return getStorageEngine().getMetadata(token, uuid,
+ new Version(version));
} catch (StorageException e) {
throw new SimExplorerServiceException(e);
}
@@ -137,7 +125,7 @@
boolean onlyLatest, int indexStart, int count, int dateOrder)
throws SimExplorerServiceException {
try {
- return storageEngine.findFullText(token, query, onlyLatest,
+ return getStorageEngine().findFullText(token, query, onlyLatest,
indexStart, count, dateOrder);
} catch (StorageException e) {
throw new SimExplorerServiceException(e);
@@ -147,7 +135,8 @@
public int findFullTextCount(String token, String query, boolean onlyLatest)
throws SimExplorerServiceException {
try {
- return storageEngine.findFullTextCount(token, query, onlyLatest);
+ return getStorageEngine().findFullTextCount(token, query,
+ onlyLatest);
} catch (StorageException e) {
throw new SimExplorerServiceException(e);
}
@@ -156,7 +145,7 @@
public int findApplicationsCount(String token, boolean onlyLatest)
throws SimExplorerServiceException {
try {
- return storageEngine.findElementsByTypeCount(token,
+ return getStorageEngine().findElementsByTypeCount(token,
VALUE_METADATA_TYPE_EA, onlyLatest);
} catch (StorageException e) {
throw new SimExplorerServiceException(e);
@@ -167,7 +156,7 @@
int start, int count, int dateOrder)
throws SimExplorerServiceException {
try {
- return storageEngine
+ return getStorageEngine()
.findElementsByType(token, VALUE_METADATA_TYPE_EA,
onlyLatest, start, count, dateOrder);
} catch (StorageException e) {
@@ -184,7 +173,7 @@
le = (LoggableElement) BaseEntityFactory.getFactory(
LoggableElement.class.getPackage().getName() + "."
+ mde.getType()).loadElement(
- storageEngine.retrieveData(token, mde, KEY_XML));
+ getStorageEngine().retrieveData(token, mde, KEY_XML));
return le;
} catch (Exception e) {
@@ -205,12 +194,13 @@
if (!entry.isDirectory()) {
String entryName = entry.getName();
if (entryName.equals(FILE_XML)) {
- xmlFile = storageEngine.storeTempData(zis);
+ xmlFile = getStorageEngine().storeTempData(zis);
} else {
if (entryName.startsWith(FILE_DATA_PREFIX)) {
String fileName = entryName.replace(
FILE_DATA_PREFIX + "/", "");
- String idFile = storageEngine.storeTempData(zis);
+ String idFile = getStorageEngine().storeTempData(
+ zis);
attachments.put(fileName, idFile);
}
}
@@ -225,10 +215,11 @@
private MetaDataEntity saveElement(String token, InputStream xmlFile,
Map<String, InputStream> attachments) throws Exception {
// Store temporary data
- String idxml = storageEngine.storeTempData(xmlFile);
+ String idxml = getStorageEngine().storeTempData(xmlFile);
Map<String, String> idsattachment = new HashMap<String, String>();
for (Map.Entry<String, InputStream> entry : attachments.entrySet()) {
- String idattachment = storageEngine.storeTempData(entry.getValue());
+ String idattachment = getStorageEngine().storeTempData(
+ entry.getValue());
idsattachment.put(entry.getKey(), idattachment);
}
return saveElement(token, idxml, idsattachment);
@@ -238,8 +229,8 @@
String version, String dataKey) throws SimExplorerServiceException {
try {
MetaDataEntity mde = getMetadata(token, uuid, version);
- InputStream stream = storageEngine
- .retrieveData(token, mde, dataKey);
+ InputStream stream = getStorageEngine().retrieveData(token, mde,
+ dataKey);
RemoteInputStreamServer remoteStream = new SimpleRemoteInputStream(
stream);
return remoteStream.export();
@@ -254,7 +245,7 @@
String uuid, String version) throws SimExplorerServiceException {
MetaDataEntity mde = getMetadata(token, uuid, version);
try {
- InputStream xmlStream = storageEngine.retrieveData(token, mde,
+ InputStream xmlStream = getStorageEngine().retrieveData(token, mde,
KEY_XML);
OutputStream os = RemoteOutputStreamClient.wrap(xmlOutputStream);
@@ -292,7 +283,8 @@
MetaDataEntityFactory mdeFactory = MetaDataEntityFactory
.getFactory(MetaDataEntity.class);
MetaDataEntity metaData = mdeFactory
- .loadElementFromParentXML(storageEngine.retrieveTempData(idxml));
+ .loadElementFromParentXML(getStorageEngine().retrieveTempData(
+ idxml));
if (metaData.getType() != null
&& VALUE_METADATA_TYPE_EA.equals(metaData.getType())) {
@@ -317,16 +309,16 @@
// Prepare saving
Map<String, InputStream> attachments = new HashMap<String, InputStream>();
- attachments.put(KEY_XML, storageEngine.retrieveTempData(idxml));
+ attachments.put(KEY_XML, getStorageEngine().retrieveTempData(idxml));
Map<String, ContentType> realAttachments = metaData.getAttachments();
for (Map.Entry<String, ContentType> entry : realAttachments.entrySet()) {
- attachments.put(entry.getKey(), storageEngine
+ attachments.put(entry.getKey(), getStorageEngine()
.retrieveTempData(idsattachment.get(entry.getKey())));
}
- storageEngine.saveElement(token, metaData, attachments);
- storageEngine.commit();
+ getStorageEngine().saveElement(token, metaData, attachments);
+ getStorageEngine().commit();
return metaData;
}
@@ -339,7 +331,7 @@
.getFactory(MetaDataEntity.class);
Document document = BaseEntityFactory.getXMLBuilder().parse(
- storageEngine.retrieveTempData(idxml));
+ getStorageEngine().retrieveTempData(idxml));
Element rootElement = (Element) document.getFirstChild();
@@ -349,8 +341,8 @@
Set<Element> entityElements = elementFactory.getXMLElementsByTagName(
entitiesElement, entityNode);
for (Element element : entityElements) {
- saveElement(token, storageEngine.storeTempData(BaseEntityFactory
- .serializeElement(element)), idsattachment);
+ saveElement(token, getStorageEngine().storeTempData(
+ BaseEntityFactory.serializeElement(element)), idsattachment);
}
}
@@ -359,13 +351,13 @@
throws Exception {
// Check existing version in storage
- MetaDataEntity previousVersion = storageEngine.getMetadata(token,
+ MetaDataEntity previousVersion = getStorageEngine().getMetadata(token,
metaData.getUuid(), metaData.getVersion());
/*
- * MetaDataEntity parentData = storageEngine.getElementVersion(metaData
+ * MetaDataEntity parentData = getStorageEngine().getElementVersion(metaData
* .getParentData().getUuid(), metaData.getParentData() .getVersion());
* MetaDataEntity parentVersion =
- * storageEngine.getElementVersion(metaData
+ * getStorageEngine().getElementVersion(metaData
* .getParentVersion().getUuid(), metaData.getParentVersion()
* .getVersion());
*/
@@ -381,8 +373,8 @@
public MetaDataEntity[] getVersions(String token, String uuid)
throws SimExplorerServiceException {
try {
- Set<MetaDataEntity> versions = storageEngine.getElementVersions(
- token, uuid);
+ Set<MetaDataEntity> versions = getStorageEngine()
+ .getElementVersions(token, uuid);
return versions.toArray(new MetaDataEntity[versions.size()]);
} catch (StorageException e) {
throw new SimExplorerServiceException(e);
@@ -392,7 +384,7 @@
public void deleteElement(String token, String uuid, String version)
throws SimExplorerServiceException {
try {
- storageEngine.deleteElement(token, uuid, new Version(version));
+ getStorageEngine().deleteElement(token, uuid, new Version(version));
} catch (StorageException e) {
throw new SimExplorerServiceException(e);
}
@@ -401,7 +393,7 @@
public void deleteElement(String token, String uuid)
throws SimExplorerServiceException {
try {
- storageEngine.deleteElements(token, uuid);
+ getStorageEngine().deleteElements(token, uuid);
} catch (StorageException e) {
throw new SimExplorerServiceException(e);
}
Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceServer.java
===================================================================
--- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceServer.java 2008-01-29 09:29:17 UTC (rev 556)
+++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/StorageServiceServer.java 2008-01-29 18:20:47 UTC (rev 557)
@@ -23,6 +23,8 @@
import org.jboss.annotation.ejb.RemoteBinding;
+import fr.cemagref.simexplorer.is.storage.StorageException;
+import fr.cemagref.simexplorer.is.storage.engine.StorageEngine;
import fr.cemagref.simexplorer.is.storage.engine.StorageEngineImpl;
@Stateless(name = "StorageService")
@@ -33,16 +35,19 @@
@EJB
private AuthenticationService authenticationService;
- public StorageServiceServer() {
- // FIXME
- // storageEngine = new StorageEngineSecuImpl();
- storageEngine = new StorageEngineImpl();
- super.firstOpen();
- }
+ @EJB
+ private StorageEngine storageEngine;
- public String loginUser(String login, String password) throws SimExplorerServiceException {
+ public String loginUser(String login, String password)
+ throws SimExplorerServiceException {
String token = authenticationService.loginUser(login, password);
return token;
}
+ @Override
+ protected StorageEngine getStorageEngine() throws StorageException {
+ storageEngine.open();
+ return storageEngine;
+ }
+
}
Modified: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineSecuImpl.java
===================================================================
--- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineSecuImpl.java 2008-01-29 09:29:17 UTC (rev 556)
+++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineSecuImpl.java 2008-01-29 18:20:47 UTC (rev 557)
@@ -22,6 +22,8 @@
import java.util.Map;
import javax.ejb.EJB;
+import javax.ejb.Local;
+import javax.ejb.Stateless;
import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity;
import fr.cemagref.simexplorer.is.entities.metadata.Version;
@@ -29,6 +31,8 @@
import fr.cemagref.simexplorer.is.security.entities.Permission;
import fr.cemagref.simexplorer.is.storage.StorageException;
+ at Stateless(name = "StorageEngine")
+ at Local(StorageEngine.class)
public class StorageEngineSecuImpl extends StorageEngineImpl {
@EJB
@@ -63,8 +67,8 @@
boolean onlyLatest, int start, int count, int dateOrder)
throws StorageException {
MetaDataEntity[] list;
- list = super.findElementsByType(token, type,
- onlyLatest, start, count, dateOrder);
+ list = super.findElementsByType(token, type, onlyLatest, start, count,
+ dateOrder);
// TODO how to filter without losing pagination?
return list;
}
@@ -97,7 +101,7 @@
throws StorageException {
MetaDataEntity mde;
Permission permission = credentialManager.getPermission(token, uuid);
- if (permission.isCanRead()) {
+ if (permission != null && permission.isCanRead()) {
mde = super.getMetadata(token, uuid, version);
} else {
throw new StorageException("Permission denied");
@@ -110,7 +114,7 @@
throws StorageException {
MetaDataEntity mde;
Permission permission = credentialManager.getPermission(token, uuid);
- if (permission.isCanRead()) {
+ if (permission != null && permission.isCanRead()) {
mde = super.getMetadata(token, uuid);
} else {
throw new StorageException("Permission denied");
@@ -123,7 +127,7 @@
throws StorageException {
List<Version> versions;
Permission permission = credentialManager.getPermission(token, uuid);
- if (permission.isCanRead()) {
+ if (permission != null && permission.isCanRead()) {
versions = super.getVersions(token, uuid);
} else {
throw new StorageException("Permission denied");
@@ -137,7 +141,7 @@
InputStream stream;
Permission permission = credentialManager.getPermission(token, entity
.getUuid());
- if (permission.isCanRead()) {
+ if (permission != null && permission.isCanRead()) {
stream = super.retrieveData(token, entity, field);
} else {
throw new StorageException("Permission denied");
@@ -150,7 +154,7 @@
Map<String, InputStream> attachments) throws StorageException {
Permission permission = credentialManager.getPermission(token, element
.getUuid());
- if (permission.isCanWrite()) {
+ if (permission != null && permission.isCanWrite()) {
super.saveElement(token, element, attachments);
credentialManager.saveElement(token, element.getUuid());
} else {
Modified: trunk/simexplorer-is-storage/pom.xml
===================================================================
--- trunk/simexplorer-is-storage/pom.xml 2008-01-29 09:29:17 UTC (rev 556)
+++ trunk/simexplorer-is-storage/pom.xml 2008-01-29 18:20:47 UTC (rev 557)
@@ -5,7 +5,7 @@
<groupId>simexplorer-is</groupId>
<artifactId>simexplorer-is-storage</artifactId>
<name>Storage</name>
-
+
<version>0.0.1-SNAPSHOT</version>
<description></description>
<packaging>jar</packaging>
@@ -28,6 +28,12 @@
<version>1.1</version>
</dependency>
<dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-ejb3x</artifactId>
+ <version>4.2.2.GA</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>simexplorer-is</groupId>
<artifactId>simexplorer-is-entities</artifactId>
<version>0.0.1-SNAPSHOT</version>
Modified: trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java
===================================================================
--- trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java 2008-01-29 09:29:17 UTC (rev 556)
+++ trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngine.java 2008-01-29 18:20:47 UTC (rev 557)
@@ -22,10 +22,13 @@
import java.util.Map;
import java.util.Set;
+import javax.ejb.Local;
+
import fr.cemagref.simexplorer.is.entities.metadata.MetaDataEntity;
import fr.cemagref.simexplorer.is.entities.metadata.Version;
import fr.cemagref.simexplorer.is.storage.StorageException;
+ at Local
public interface StorageEngine {
/**
Modified: trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineImpl.java
===================================================================
--- trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineImpl.java 2008-01-29 09:29:17 UTC (rev 556)
+++ trunk/simexplorer-is-storage/src/java/fr/cemagref/simexplorer/is/storage/engine/StorageEngineImpl.java 2008-01-29 18:20:47 UTC (rev 557)
@@ -58,6 +58,8 @@
*/
private MetaDataEntity mdTmp;
+ private boolean opened = false;
+
/**
* Default constructor with default implementations of storage and indexing
*/
@@ -77,7 +79,10 @@
* @see fr.cemagref.simexplorer.is.storage.engine.StorageEngine#open()
*/
public void open() throws StorageException {
- database.open();
+ if (!opened) {
+ database.open();
+ opened = true;
+ }
}
/* (non-Javadoc)
Modified: trunk/simexplorer-is-web/pom.xml
===================================================================
--- trunk/simexplorer-is-web/pom.xml 2008-01-29 09:29:17 UTC (rev 556)
+++ trunk/simexplorer-is-web/pom.xml 2008-01-29 18:20:47 UTC (rev 557)
@@ -73,7 +73,7 @@
<dependency>
<groupId>tapestry5-treegrid</groupId>
<artifactId>tapestry5-treegrid</artifactId>
- <version>0.0.4-SNAPSHOT</version>
+ <version>5.0.9</version>
</dependency>
<dependency>
<groupId>org.apache.tapestry</groupId>
@@ -81,6 +81,16 @@
<version>5.0.9</version>
</dependency>
<dependency>
+ <groupId>org.apache.tapestry</groupId>
+ <artifactId>tapestry-core</artifactId>
+ <version>5.0.9</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tapestry</groupId>
+ <artifactId>tapestry-ioc</artifactId>
+ <version>5.0.9</version>
+ </dependency>
+ <dependency>
<groupId>jboss</groupId>
<artifactId>jbossall-client</artifactId>
<version>4.2.2.GA</version>
Modified: trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ExceptionReport.java
===================================================================
--- trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ExceptionReport.java 2008-01-29 09:29:17 UTC (rev 556)
+++ trunk/simexplorer-is-web/src/java/fr/cemagref/simexplorer/is/ui/web/pages/ExceptionReport.java 2008-01-29 18:20:47 UTC (rev 557)
@@ -53,6 +53,10 @@
if (simException != null) {
unknown = false;
this.exception = simException;
+
+ unknown = true;
+ ExceptionAnalysis analysis = analyzer.analyze(exception);
+ stack = analysis.getExceptionInfos();
} else {
unknown = true;
ExceptionAnalysis analysis = analyzer.analyze(exception);