knguyen     2004/11/24 11:47:58 CET

  Modified files:        (Branch: JAHIA-4-0-BRANCH)
    src/java/org/jahia/bin JahiaAction.java 
    src/java/org/jahia/data/applications ApplicationContext.java 
    src/java/org/jahia/engines/addcontainer 
                                            AddContainer_Engine.java 
    src/java/org/jahia/engines/shared Application_Field.java 
    src/java/org/jahia/services/applications 
                                             ServletIncludeRequestWrapper.java 
  Log:
  Application dispatcher
  - fix extention mapping
  
  Revision  Changes    Path
  1.5.4.2   +0 -1      jahia/src/java/org/jahia/bin/JahiaAction.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/bin/JahiaAction.java.diff?r1=1.5.4.1&r2=1.5.4.2&f=h
  1.4.2.2   +7 -2      
jahia/src/java/org/jahia/data/applications/ApplicationContext.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/data/applications/ApplicationContext.java.diff?r1=1.4.2.1&r2=1.4.2.2&f=h
  1.69.2.3  +2 -1      
jahia/src/java/org/jahia/engines/addcontainer/AddContainer_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/engines/addcontainer/AddContainer_Engine.java.diff?r1=1.69.2.2&r2=1.69.2.3&f=h
  1.15.4.4  +48 -25    
jahia/src/java/org/jahia/engines/shared/Application_Field.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/engines/shared/Application_Field.java.diff?r1=1.15.4.3&r2=1.15.4.4&f=h
  1.23.2.4  +17 -8     
jahia/src/java/org/jahia/services/applications/ServletIncludeRequestWrapper.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/src/java/org/jahia/services/applications/ServletIncludeRequestWrapper.java.diff?r1=1.23.2.3&r2=1.23.2.4&f=h
  
  
  
  Index: JahiaAction.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/src/java/org/jahia/bin/Attic/JahiaAction.java,v
  retrieving revision 1.5.4.1
  retrieving revision 1.5.4.2
  diff -u -r1.5.4.1 -r1.5.4.2
  --- JahiaAction.java  19 Nov 2004 13:25:57 -0000      1.5.4.1
  +++ JahiaAction.java  24 Nov 2004 10:47:56 -0000      1.5.4.2
  @@ -12,7 +12,6 @@
   import org.apache.struts.action.ActionMapping;
   import org.jahia.operations.OperationManager;
   import org.jahia.params.ParamBean;
  -import org.jahia.exceptions.JahiaException;
   
   /**
    * Jahia Default Engine Dispatcher Action class
  
  
  
  Index: ApplicationContext.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/src/java/org/jahia/data/applications/Attic/ApplicationContext.java,v
  retrieving revision 1.4.2.1
  retrieving revision 1.4.2.2
  diff -u -r1.4.2.1 -r1.4.2.2
  --- ApplicationContext.java   13 Aug 2004 17:03:00 -0000      1.4.2.1
  +++ ApplicationContext.java   24 Nov 2004 10:47:57 -0000      1.4.2.2
  @@ -511,19 +511,24 @@
           String str = path;
   
           if ( pos != -1 ){
  -            str = path.substring(pos);
  +            str = path.substring(0,pos);
           }
   
  +        pos = str.lastIndexOf("/");
  +
           Iterator iterator = servletMappings.keySet().iterator();
           String pattern = null;
           String result = "";
  +        int strPos = -1;
           while ( iterator.hasNext() )
           {
               pattern = (String)iterator.next();
               if ( pattern.startsWith("*.") )
               {
  +                strPos = str.indexOf(pattern.substring(1));
                   // we've got a path mapping pattern
  -                if ( path.indexOf(pattern.substring(2)) != -1 && 
pattern.length() > result.length() )
  +                if ( strPos != -1 && pos < strPos
  +                     && pattern.length() > result.length() )
                   {
                       result = pattern;
                   }
  
  
  
  Index: AddContainer_Engine.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/src/java/org/jahia/engines/addcontainer/Attic/AddContainer_Engine.java,v
  retrieving revision 1.69.2.2
  retrieving revision 1.69.2.3
  diff -u -r1.69.2.2 -r1.69.2.3
  --- AddContainer_Engine.java  6 Aug 2004 17:59:34 -0000       1.69.2.2
  +++ AddContainer_Engine.java  24 Nov 2004 10:47:57 -0000      1.69.2.3
  @@ -223,7 +223,6 @@
               }
               // #endif
               if (allowedToProcess) {
  -
                   // fire event
                   JahiaEvent theEvent = new JahiaEvent (this, jParams,
                           theContainer);
  @@ -233,7 +232,9 @@
                   processLastScreen (jParams, engineMap);
   
                   processCurrentScreen(jParams, engineMap);
  +
               }
  +
           } else {
               throw new JahiaForbiddenAccessException ();
           }
  
  
  
  Index: Application_Field.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/src/java/org/jahia/engines/shared/Attic/Application_Field.java,v
  retrieving revision 1.15.4.3
  retrieving revision 1.15.4.4
  diff -u -r1.15.4.3 -r1.15.4.4
  --- Application_Field.java    28 Oct 2004 19:02:17 -0000      1.15.4.3
  +++ Application_Field.java    24 Nov 2004 10:47:57 -0000      1.15.4.4
  @@ -117,9 +117,17 @@
           if ((oldAppID == null) || (oldAppID.intValue() == -1)) {
               return true;
           }
  -        ApplicationContext appContext = ServicesRegistry.getInstance()
  -                                        .getJahiaApplicationContextService()
  -                                        
.getApplicationContext(oldAppID.intValue());
  +        ApplicationContext appContext = null;
  +        try {
  +            appContext = ServicesRegistry.getInstance()
  +                                            
.getJahiaApplicationContextService()
  +                                            .getApplicationContext(oldAppID.
  +                    intValue());
  +        } catch ( Throwable t ){
  +            logger.debug("Cannot access app context",t);
  +            // this should'nt abort processing other fields
  +            return true;
  +        }
           Vector roles = appContext.getRoles();
           // Handle roles changes
           ArrayList roleMembersList = new ArrayList();
  @@ -174,10 +182,18 @@
                   return false;
               }
               success = theField.save(jParams);
  -
  -            ApplicationContext appContext = ServicesRegistry.getInstance()
  -                                            
.getJahiaApplicationContextService()
  -                                            
.getApplicationContext(appID.intValue());
  +            ApplicationContext appContext = null;
  +            try {
  +                appContext = ServicesRegistry.getInstance()
  +                                                .
  +                        getJahiaApplicationContextService()
  +                                                .getApplicationContext(appID.
  +                        intValue());
  +            } catch ( Throwable t ){
  +                // context should exist anymore (deleted), abort save 
instead of
  +                // fail all process
  +                return true;
  +            }
               Vector roles = appContext.getRoles();
               // Handle roles changes
               if (roles != null) {
  @@ -187,14 +203,15 @@
                       JahiaGroup grp = ServicesRegistry.getInstance().
                                        getJahiaGroupManagerService().
                                        lookupGroup(0,
  -                                                 appID + "_" + 
theField.getID() +
  -                                                 "_" + role);
  +                            appID + "_" + theField.getID() +
  +                            "_" + role);
                       if (grp == null) {
                           // create group
                           grp = ServicesRegistry.getInstance().
                                 getJahiaGroupManagerService().
                                 createGroup(0,
  -                                          appID + "_" + theField.getID() + 
"_" +
  +                                          appID + "_" + theField.getID() +
  +                                          "_" +
                                             role, new Properties());
                       } else {
                           HashSet membersSet = getFormMembers(jParams, roleNb);
  @@ -204,17 +221,19 @@
                               p = (Principal) members.nextElement();
                               if (p instanceof JahiaUser) {
                                   if (!membersSet.contains((JahiaUser) p)) {
  -                                    logger.debug("removed member=" + 
p.getName());
  -                                    grp.removeMember((JahiaUser)p);
  +                                    logger.debug("removed member=" +
  +                                            p.getName());
  +                                    grp.removeMember((JahiaUser) p);
                                   } else {
  -                                    membersSet.remove((JahiaUser)p);
  +                                    membersSet.remove((JahiaUser) p);
                                   }
                               } else if (p instanceof JahiaGroup) {
                                   if (!membersSet.contains((JahiaGroup) p)) {
  -                                    logger.debug("removed member=" + 
p.getName());
  -                                    grp.removeMember( (JahiaGroup) p);
  +                                    logger.debug("removed member=" +
  +                                            p.getName());
  +                                    grp.removeMember((JahiaGroup) p);
                                   } else {
  -                                    membersSet.remove((JahiaGroup)p);
  +                                    membersSet.remove((JahiaGroup) p);
                                   }
                               }
                           }
  @@ -222,9 +241,9 @@
                           while (it.hasNext()) {
                               p = (Principal) it.next();
                               if (p instanceof JahiaUser) {
  -                                grp.addMember( (JahiaUser) p);
  +                                grp.addMember((JahiaUser) p);
                               } else if (p instanceof JahiaGroup) {
  -                                grp.addMember( (JahiaGroup) p);
  +                                grp.addMember((JahiaGroup) p);
                               }
                           }
                       }
  @@ -236,8 +255,8 @@
                   if (flushApp.booleanValue()) {
                       HttpSession session = jParams.getRequest().getSession();
                       JahiaApplicationsDispatchingService dispatcher =
  -                        ServicesRegistry.getInstance().
  -                        getJahiaApplicationsDispatchingService();
  +                            ServicesRegistry.getInstance().
  +                            getJahiaApplicationsDispatchingService();
                       if (dispatcher != null) {
                           dispatcher.flushAllSessionsCaches(session);
                       }
  @@ -318,11 +337,15 @@
           engineMap.put( "appID", appID );
           Vector roles = new Vector();
           if (appID.intValue() >= 0) {
  -            ApplicationContext appContext = ServicesRegistry.getInstance().
  -                                            
getJahiaApplicationContextService().
  -                                            getApplicationContext(appID.
  -                intValue());
  -            roles = appContext.getRoles();
  +            try {
  +                ApplicationContext appContext = 
ServicesRegistry.getInstance().
  +                                                
getJahiaApplicationContextService().
  +                                                getApplicationContext(appID.
  +                        intValue());
  +                roles = appContext.getRoles();
  +            } catch ( Throwable t ){
  +                logger.debug("Error retrieving application context appID[" + 
appID + "]");
  +            }
           }
           engineMap.put( "roles", roles );
   
  
  
  
  Index: ServletIncludeRequestWrapper.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/src/java/org/jahia/services/applications/Attic/ServletIncludeRequestWrapper.java,v
  retrieving revision 1.23.2.3
  retrieving revision 1.23.2.4
  diff -u -r1.23.2.3 -r1.23.2.4
  --- ServletIncludeRequestWrapper.java 23 Jul 2004 13:57:16 -0000      1.23.2.3
  +++ ServletIncludeRequestWrapper.java 24 Nov 2004 10:47:58 -0000      1.23.2.4
  @@ -354,16 +354,25 @@
                   }
               } else if ( servletMappingPattern.startsWith("*.") ){
                   // extension mapping
  -                int pos3 = path.indexOf(servletMappingPattern.substring(2));
  -                this.emulatedServletPath = 
path.substring(0,pos3+servletMappingPattern.length()-2);
  -                if ( pos2 == -1 ){
  -                    this.emulatedPathInfo = path;
  +                int pathSepPos = path.lastIndexOf("/");
  +                int pos3 = -1;
  +                if ( pathSepPos != -1 ){
  +                    pos3 = 
path.indexOf(servletMappingPattern.substring(1),pathSepPos);
                   } else {
  -                    this.emulatedPathInfo = path.substring(0,pos2);
  +                    pos3 = path.indexOf(servletMappingPattern.substring(1));
                   }
  -                if ( 
this.emulatedPathInfo.startsWith(this.emulatedServletPath) ){
  -                    this.emulatedPathInfo =
  -                        
this.emulatedPathInfo.substring(this.emulatedServletPath.length());
  +                if ( pos3 != -1 ){
  +                    this.emulatedServletPath = path.substring(0,
  +                            pos3 + servletMappingPattern.length() - 1);
  +                    if (pos2 == -1) {
  +                        this.emulatedPathInfo = path;
  +                    } else {
  +                        this.emulatedPathInfo = path.substring(0, pos2);
  +                    }
  +                    if ( 
this.emulatedPathInfo.startsWith(this.emulatedServletPath) ){
  +                        this.emulatedPathInfo =
  +                            
this.emulatedPathInfo.substring(this.emulatedServletPath.length());
  +                    }
                   }
               } else if ( !servletMappingPattern.equals("") ){
                   // exact mapping
  

Reply via email to