Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 81438 Details for
Bug 207160
Template XML file isn't correctly queried
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Patch
org.eclipse.tptp.platform.logging.events_defect_207160_patch.txt (text/plain), 31.90 KB, created by
Paul Slauenwhite
on 2007-10-29 07:36:49 EDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Paul Slauenwhite
Created:
2007-10-29 07:36:49 EDT
Size:
31.90 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.tptp.platform.logging.events >Index: src.events/org/eclipse/tptp/logging/events/cbe/impl/EventXMLFileEventFactoryHomeImpl.java >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.tptp.platform.logging.events/src.events/org/eclipse/tptp/logging/events/cbe/impl/EventXMLFileEventFactoryHomeImpl.java,v >retrieving revision 1.3 >diff -u -r1.3 EventXMLFileEventFactoryHomeImpl.java >--- src.events/org/eclipse/tptp/logging/events/cbe/impl/EventXMLFileEventFactoryHomeImpl.java 5 Oct 2006 21:07:44 -0000 1.3 >+++ src.events/org/eclipse/tptp/logging/events/cbe/impl/EventXMLFileEventFactoryHomeImpl.java 29 Oct 2007 11:31:45 -0000 >@@ -11,7 +11,7 @@ > import org.eclipse.tptp.logging.events.cbe.util.EventFormatter; > > /********************************************************************** >- * Copyright (c) 2005, 2006 IBM Corporation and others. >+ * Copyright (c) 2005, 2007 IBM Corporation and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -81,7 +81,7 @@ > * <p> > * > * @author Paul E. Slauenwhite >- * @version March 10, 2005 >+ * @version October 27, 2007 > * @since 1.0.1 > * @see org.eclipse.tptp.logging.events.cbe.impl.AbstractEventFactoryHome > * @see org.eclipse.tptp.logging.events.cbe.TemplateContentHandler >@@ -135,82 +135,57 @@ > > if ((fileName != null) && (fileName.trim().length() > 0)) { > >- // Attempt to find the actual local location of the configuration >- // template file >- // using the following class loader hierarchy: >- // -The current class' (e.g. EventXMLFileEventFactoryHomeImpl) class >- // loader. >- // -The system's class loader. >- // -The current thread's context class loader. >- try { >- >- // Consult the current class' (e.g. >- // EventXMLFileEventFactoryHomeImpl) class >- // loader to find the actual local location of the configuration >- // template file >- // using privileged security: >- inputStream = ((InputStream) (AccessController.doPrivileged(new PrivilegedExceptionAction() { >- >- public Object run() throws Exception { >- return (org.eclipse.tptp.logging.events.cbe.impl.EventXMLFileEventFactoryHomeImpl.class.getClassLoader().getResourceAsStream(fileName)); >- } >- }))); >- } catch (Throwable t) { >- >- // Catch all exceptions since the current class' (e.g. >- // EventXMLFileEventFactoryHomeImpl) >- // class loader may be null (e.g. current class was loaded by >- // the bootstrap >- // class loader) or insufficient security privileges >- // for accessing the current class' class loader and we >- // will attempt to use the system's class loader. >- try { >- >- // Consult the system's class loader to find the >- // actual local location of the configuration template file >- // using privileged security: >- inputStream = ((InputStream) (AccessController.doPrivileged(new PrivilegedExceptionAction() { >- >- public Object run() throws Exception { >- return (ClassLoader.getSystemClassLoader().getResourceAsStream(fileName)); >- } >- }))); >- } catch (Throwable tt) { >- >- // Catch all exceptions since the system's class loader >- // may be null or insufficient security privileges for >- // accessing the system's class loader and we >- // will attempt to use the current thread's context class >- // loader. >- try { >- >- // Consult the current thread's context class loader to >- // find >- // the actual local location of the configuration >- // template file >- // using privileged security: >- inputStream = ((InputStream) (AccessController.doPrivileged(new PrivilegedExceptionAction() { >- >- public Object run() throws Exception { >- return (Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName)); >- } >- }))); >- } catch (Throwable ttt) { >- >- // Ignore since the current thread's context class >- // loader >- // may be null or insufficient security privileges for >- // accessing the current thread's context class loader >- // and >- // the API's post condition states a null return value >- // if the actual local location of the configuration >- // template >- // file cannot be resolved (e.g. insufficient security >- // privileges). >- } >- } >- } >- } >+ //Attempt to load the configuration template file using the current class' (e.g. EventXMLFileEventFactoryHomeImpl) class loader: >+ try { >+ >+ //Attempt to load the configuration template file using the current class' (e.g. EventXMLFileEventFactoryHomeImpl) class loader and privileged security: >+ inputStream = ((InputStream) (AccessController.doPrivileged(new PrivilegedExceptionAction() { >+ >+ public Object run() throws Exception { >+ return (org.eclipse.tptp.logging.events.cbe.impl.EventXMLFileEventFactoryHomeImpl.class.getClassLoader().getResourceAsStream(fileName)); >+ } >+ }))); >+ } >+ catch (Throwable t) { >+ //Ignore since insufficient security privileges for loading the configuration template file using the current class' (e.g. EventXMLFileEventFactoryHomeImpl) class loader and privileged security. >+ } >+ >+ //If the configuration template file could not be loaded using the current class' (e.g. EventXMLFileEventFactoryHomeImpl) class loader, attempt the file load using the system's class loader: >+ if(inputStream == null){ >+ >+ try { >+ >+ //Attempt to load the configuration template file using the system's class loader and privileged security: >+ inputStream = ((InputStream) (AccessController.doPrivileged(new PrivilegedExceptionAction() { >+ >+ public Object run() throws Exception { >+ return (ClassLoader.getSystemClassLoader().getResourceAsStream(fileName)); >+ } >+ }))); >+ } >+ catch (Throwable t) { >+ //Ignore since insufficient security privileges for loading the configuration template file using the system's class loader and privileged security. >+ } >+ >+ //If the configuration template file could not be loaded using the system's class loader, attempt the file load using the current thread's context class loader: >+ if(inputStream == null){ >+ >+ try { >+ >+ //Attempt to load the configuration template file using the current thread's context class loader and privileged security: >+ inputStream = ((InputStream) (AccessController.doPrivileged(new PrivilegedExceptionAction() { >+ >+ public Object run() throws Exception { >+ return (Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName)); >+ } >+ }))); >+ } >+ catch (Throwable t) { >+ //Ignore since insufficient security privileges for loading the configuration template file using the current thread's context class loader and privileged security. >+ } >+ } >+ } >+ } > > return inputStream; > } >Index: src.events/org/eclipse/tptp/logging/events/cbe/impl/EventFactoryContext.java >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.tptp.platform.logging.events/src.events/org/eclipse/tptp/logging/events/cbe/impl/EventFactoryContext.java,v >retrieving revision 1.3 >diff -u -r1.3 EventFactoryContext.java >--- src.events/org/eclipse/tptp/logging/events/cbe/impl/EventFactoryContext.java 5 Oct 2006 21:07:44 -0000 1.3 >+++ src.events/org/eclipse/tptp/logging/events/cbe/impl/EventFactoryContext.java 29 Oct 2007 11:31:45 -0000 >@@ -6,7 +6,7 @@ > import org.eclipse.tptp.logging.events.cbe.EventFactoryHome; > > /********************************************************************** >- * Copyright (c) 2005, 2006 IBM Corporation and others. >+ * Copyright (c) 2005, 2007 IBM Corporation and others. > * All rights reserved. This program and the accompanying materials > * are made available under the terms of the Eclipse Public License v1.0 > * which accompanies this distribution, and is available at >@@ -71,7 +71,7 @@ > * <p> > * > * @author Paul E. Slauenwhite >- * @version March 10, 2005 >+ * @version October 27, 2007 > * @since 1.0.1 > * @see org.eclipse.tptp.logging.events.cbe.EventFactoryHome > */ >@@ -204,105 +204,73 @@ > > Class eventFactoryHomeClass = null; > >- // Attempt to find the EventFactoryHome class using the parameter >- // (e.g. caller's) >- // class loader: >+ //Attempt to load the EventFactoryHome class using the parameter class loader: > if (classLoader != null) { > > try { >- >- // Consult the parameter (e.g. caller's) class loader to >- // find the >- // EventFactoryHome class using privileged security: >+ >+ //Attempt to load the EventFactoryHome class using the parameter class loader and privileged security: > eventFactoryHomeClass = ((Class) (AccessController.doPrivileged(new PrivilegedExceptionAction() { > > public Object run() throws Exception { > return (classLoader.loadClass(eventFactoryHomeType)); > } > }))); >- } catch (Throwable t) { >- // Ignore since insufficient security privileges for >- // accessing the >- // parameter (e.g. caller's) class loader and we will >- // attempt to use >- // the current class' class loader. >+ } >+ catch (Throwable t) { >+ //Ignore since insufficient security privileges for loading the EventFactoryHome class using the parameter class loader and privileged security. > } > } > >- // If the EventFactoryHome class could not be located using the >- // parameter (e.g. caller's) >- // class loader, the EventFactoryHome class is attempted to be >- // found using the following class loader hierarchy: >- // -The current class' (e.g. EventFactoryContext) class loader. >- // -The system's class loader. >- // -The current thread's context class loader. >+ //If the EventFactoryHome class could not be loaded using the parameter class loader, attempt the class load using the current class' (e.g. EventFactoryContext) class loader: > if (eventFactoryHomeClass == null) { > > try { > >- // Consult the current class' (e.g. EventFactoryContext) >- // class >- // loader to find the EventFactoryHome class using >- // privileged >- // security: >+ //Attempt to load the EventFactoryHome class using the current class' (e.g. EventFactoryContext) class loader and privileged security: > eventFactoryHomeClass = ((Class) (AccessController.doPrivileged(new PrivilegedExceptionAction() { > > public Object run() throws Exception { > return (org.eclipse.tptp.logging.events.cbe.impl.EventFactoryContext.class.getClassLoader().loadClass(eventFactoryHomeType)); > } > }))); >- } catch (Throwable t) { >- >- // Catch all exceptions since the current class' (e.g. >- // EventFactoryContext) >- // class loader may be null (e.g. current class was loaded >- // by the bootstrap >- // class loader) or insufficient security privileges >- // for accessing the current class' class loader and we >- // will attempt to use the system's class loader. >- try { >+ } >+ catch (Throwable t) { >+ //Ignore since insufficient security privileges for loading the EventFactoryHome class using the current class' (e.g. EventFactoryContext) class loader and privileged security. >+ } >+ >+ //If the EventFactoryHome class could not be loaded using the current class' (e.g. EventFactoryContext) class loader, attempt the class load using the system's class loader: >+ if(eventFactoryHomeClass == null){ >+ >+ try { > >- // Consult the system's class loader to find the >- // EventFactoryHome class using privileged security: >+ //Attempt to load the EventFactoryHome class using the system's class loader and privileged security: > eventFactoryHomeClass = ((Class) (AccessController.doPrivileged(new PrivilegedExceptionAction() { > > public Object run() throws Exception { > return (ClassLoader.getSystemClassLoader().loadClass(eventFactoryHomeType)); > } > }))); >- } catch (Throwable tt) { >+ } >+ catch (Throwable t) { >+ //Ignore since insufficient security privileges for loading the EventFactoryHome class using the system's class loader and privileged security. >+ } >+ >+ //If the EventFactoryHome class could not be loaded using the system's class loader, attempt the class load using the current thread's context class loader: >+ if(eventFactoryHomeClass == null){ >+ >+ try { > >- // Catch all exceptions since the system's class loader >- // may be null or insufficient security privileges for >- // accessing the system's class loader and we >- // will attempt to use the current thread's context >- // class >- // loader. >- try { >- >- // Consult the current thread's context class loader >- // to find >- // the EventFactoryHome class using privileged >- // security: >+ //Attempt to load the EventFactoryHome class using the system's class loader: > eventFactoryHomeClass = ((Class) (AccessController.doPrivileged(new PrivilegedExceptionAction() { > > public Object run() throws Exception { > return (Thread.currentThread().getContextClassLoader().loadClass(eventFactoryHomeType)); > } > }))); >- } catch (Throwable ttt) { >- >- // Ignore since the current thread's context class >- // loader >- // may be null or insufficient security privileges >- // for >- // accessing the current thread's context class >- // loader and >- // the API's post condition states a null return >- // value >- // if the EventFactoryHome cannot be resolved and/or >- // instantiated (e.g. insufficient security >- // privileges). >+ } >+ catch (Throwable t) { >+ //Ignore since insufficient security privileges for loading the EventFactoryHome class using the system's class loader. > } > } > } >Index: src.cbe101/org/eclipse/hyades/logging/events/cbe/impl/EventFactoryContext.java >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.tptp.platform.logging.events/src.cbe101/org/eclipse/hyades/logging/events/cbe/impl/EventFactoryContext.java,v >retrieving revision 1.3 >diff -u -r1.3 EventFactoryContext.java >--- src.cbe101/org/eclipse/hyades/logging/events/cbe/impl/EventFactoryContext.java 5 Oct 2006 21:07:45 -0000 1.3 >+++ src.cbe101/org/eclipse/hyades/logging/events/cbe/impl/EventFactoryContext.java 29 Oct 2007 11:31:45 -0000 >@@ -6,7 +6,7 @@ > import org.eclipse.hyades.logging.events.cbe.EventFactoryHome; > > /******************************************************************************* >- * Copyright (c) 2005, 2006 IBM Corporation and others. All rights reserved. This program and the >+ * Copyright (c) 2005, 2007 IBM Corporation and others. All rights reserved. This program and the > * accompanying materials are made available under the terms of the Eclipse > * Public License v1.0 which accompanies this distribution, and is available at > * http://www.eclipse.org/legal/epl-v10.html >@@ -69,7 +69,7 @@ > * <p> > * > * @author Paul E Slauenwhite >- * @version 1.0.1 >+ * @version October 27, 2007 > * @since 1.0.1 > * @see org.eclipse.hyades.logging.events.cbe.EventFactoryHome > */ >@@ -201,14 +201,12 @@ > > Class eventFactoryHomeClass = null; > >- //Attempt to find the EventFactoryHome class using the parameter (e.g. caller's) >- //class loader: >+ //Attempt to load the EventFactoryHome class using the parameter class loader: > if (classLoader != null) { > > try { > >- //Consult the parameter (e.g. caller's) class loader to find the >- //EventFactoryHome class using privileged security: >+ //Attempt to load the EventFactoryHome class using the parameter class loader and privileged security: > eventFactoryHomeClass = ((Class) (AccessController.doPrivileged(new PrivilegedExceptionAction() { > > public Object run() throws Exception { >@@ -217,25 +215,16 @@ > }))); > } > catch (Throwable t) { >- //Ignore since insufficient security privileges for accessing the >- //parameter (e.g. caller's) class loader and we will attempt to use >- //the current class' class loader. >+ //Ignore since insufficient security privileges for loading the EventFactoryHome class using the parameter class loader and privileged security. > } > } > >- //If the EventFactoryHome class could not be located using the parameter (e.g. caller's) >- //class loader, the EventFactoryHome class is attempted to be >- //found using the following class loader hierarchy: >- //-The current class' (e.g. EventFactoryContext) class loader. >- //-The system's class loader. >- //-The current thread's context class loader. >+ //If the EventFactoryHome class could not be loaded using the parameter class loader, attempt the class load using the current class' (e.g. EventFactoryContext) class loader: > if (eventFactoryHomeClass == null) { > > try { > >- //Consult the current class' (e.g. EventFactoryContext) class >- //loader to find the EventFactoryHome class using privileged >- //security: >+ //Attempt to load the EventFactoryHome class using the current class' (e.g. EventFactoryContext) class loader and privileged security: > eventFactoryHomeClass = ((Class) (AccessController.doPrivileged(new PrivilegedExceptionAction() { > > public Object run() throws Exception { >@@ -244,16 +233,15 @@ > }))); > } > catch (Throwable t) { >+ //Ignore since insufficient security privileges for loading the EventFactoryHome class using the current class' (e.g. EventFactoryContext) class loader and privileged security. >+ } >+ >+ //If the EventFactoryHome class could not be loaded using the current class' (e.g. EventFactoryContext) class loader, attempt the class load using the system's class loader: >+ if(eventFactoryHomeClass == null){ >+ >+ try { > >- //Catch all exceptions since the current class' (e.g. EventFactoryContext) >- //class loader may be null (e.g. current class was loaded by the bootstrap >- //class loader) or insufficient security privileges >- //for accessing the current class' class loader and we >- //will attempt to use the system's class loader. >- try { >- >- //Consult the system's class loader to find the >- //EventFactoryHome class using privileged security: >+ //Attempt to load the EventFactoryHome class using the system's class loader and privileged security: > eventFactoryHomeClass = ((Class) (AccessController.doPrivileged(new PrivilegedExceptionAction() { > > public Object run() throws Exception { >@@ -261,17 +249,16 @@ > } > }))); > } >- catch (Throwable tt) { >- >- //Catch all exceptions since the system's class loader >- //may be null or insufficient security privileges for >- //accessing the system's class loader and we >- //will attempt to use the current thread's context class >- //loader. >- try { >+ catch (Throwable t) { >+ //Ignore since insufficient security privileges for loading the EventFactoryHome class using the system's class loader and privileged security. >+ } >+ >+ //If the EventFactoryHome class could not be loaded using the system's class loader, attempt the class load using the current thread's context class loader: >+ if(eventFactoryHomeClass == null){ >+ >+ try { > >- //Consult the current thread's context class loader to find >- //the EventFactoryHome class using privileged security: >+ //Attempt to load the EventFactoryHome class using the system's class loader: > eventFactoryHomeClass = ((Class) (AccessController.doPrivileged(new PrivilegedExceptionAction() { > > public Object run() throws Exception { >@@ -279,19 +266,13 @@ > } > }))); > } >- catch (Throwable ttt) { >- >- //Ignore since the current thread's context class loader >- //may be null or insufficient security privileges for >- //accessing the current thread's context class loader and >- //the API's post condition states a null return value >- //if the EventFactoryHome cannot be resolved and/or >- //instantiated (e.g. insufficient security privileges). >+ catch (Throwable t) { >+ //Ignore since insufficient security privileges for loading the EventFactoryHome class using the system's class loader. > } > } > } > } >- >+ > if (eventFactoryHomeClass != null) { > > try { >Index: src.cbe101/org/eclipse/hyades/logging/events/cbe/impl/EventXMLFileEventFactoryHomeImpl.java >=================================================================== >RCS file: /cvsroot/tptp/platform/org.eclipse.tptp.platform.logging.events/src.cbe101/org/eclipse/hyades/logging/events/cbe/impl/EventXMLFileEventFactoryHomeImpl.java,v >retrieving revision 1.3 >diff -u -r1.3 EventXMLFileEventFactoryHomeImpl.java >--- src.cbe101/org/eclipse/hyades/logging/events/cbe/impl/EventXMLFileEventFactoryHomeImpl.java 5 Oct 2006 21:07:45 -0000 1.3 >+++ src.cbe101/org/eclipse/hyades/logging/events/cbe/impl/EventXMLFileEventFactoryHomeImpl.java 29 Oct 2007 11:31:45 -0000 >@@ -11,7 +11,7 @@ > import org.eclipse.hyades.logging.events.cbe.util.EventFormatter; > > /******************************************************************************* >- * Copyright (c) 2005, 2006 IBM Corporation and others. All rights reserved. This program and the >+ * Copyright (c) 2005, 2007 IBM Corporation and others. All rights reserved. This program and the > * accompanying materials are made available under the terms of the Eclipse > * Public License v1.0 which accompanies this distribution, and is available at > * http://www.eclipse.org/legal/epl-v10.html >@@ -79,7 +79,7 @@ > * <p> > * > * @author Paul E Slauenwhite >- * @version 1.0.1 >+ * @version October 27, 2007 > * @since 1.0.1 > * @see org.eclipse.hyades.logging.events.cbe.impl.AbstractEventFactoryHome > * @see org.eclipse.hyades.logging.events.cbe.TemplateContentHandler >@@ -134,16 +134,10 @@ > > if ((fileName != null) && (fileName.trim().length() > 0)) { > >- //Attempt to find the actual local location of the configuration template file >- //using the following class loader hierarchy: >- //-The current class' (e.g. EventXMLFileEventFactoryHomeImpl) class loader. >- //-The system's class loader. >- //-The current thread's context class loader. >+ //Attempt to load the configuration template file using the current class' (e.g. EventXMLFileEventFactoryHomeImpl) class loader: > try { > >- //Consult the current class' (e.g. EventXMLFileEventFactoryHomeImpl) class >- //loader to find the actual local location of the configuration template file >- //using privileged security: >+ //Attempt to load the configuration template file using the current class' (e.g. EventXMLFileEventFactoryHomeImpl) class loader and privileged security: > inputStream = ((InputStream) (AccessController.doPrivileged(new PrivilegedExceptionAction() { > > public Object run() throws Exception { >@@ -152,17 +146,15 @@ > }))); > } > catch (Throwable t) { >- >- //Catch all exceptions since the current class' (e.g. EventXMLFileEventFactoryHomeImpl) >- //class loader may be null (e.g. current class was loaded by the bootstrap >- //class loader) or insufficient security privileges >- //for accessing the current class' class loader and we >- //will attempt to use the system's class loader. >+ //Ignore since insufficient security privileges for loading the configuration template file using the current class' (e.g. EventXMLFileEventFactoryHomeImpl) class loader and privileged security. >+ } >+ >+ //If the configuration template file could not be loaded using the current class' (e.g. EventXMLFileEventFactoryHomeImpl) class loader, attempt the file load using the system's class loader: >+ if(inputStream == null){ >+ > try { > >- //Consult the system's class loader to find the >- //actual local location of the configuration template file >- //using privileged security: >+ //Attempt to load the configuration template file using the system's class loader and privileged security: > inputStream = ((InputStream) (AccessController.doPrivileged(new PrivilegedExceptionAction() { > > public Object run() throws Exception { >@@ -170,18 +162,16 @@ > } > }))); > } >- catch (Throwable tt) { >- >- //Catch all exceptions since the system's class loader >- //may be null or insufficient security privileges for >- //accessing the system's class loader and we >- //will attempt to use the current thread's context class >- //loader. >+ catch (Throwable t) { >+ //Ignore since insufficient security privileges for loading the configuration template file using the system's class loader and privileged security. >+ } >+ >+ //If the configuration template file could not be loaded using the system's class loader, attempt the file load using the current thread's context class loader: >+ if(inputStream == null){ >+ > try { > >- //Consult the current thread's context class loader to find >- //the actual local location of the configuration template file >- //using privileged security: >+ //Attempt to load the configuration template file using the current thread's context class loader and privileged security: > inputStream = ((InputStream) (AccessController.doPrivileged(new PrivilegedExceptionAction() { > > public Object run() throws Exception { >@@ -189,14 +179,8 @@ > } > }))); > } >- catch (Throwable ttt) { >- >- //Ignore since the current thread's context class loader >- //may be null or insufficient security privileges for >- //accessing the current thread's context class loader and >- //the API's post condition states a null return value >- //if the actual local location of the configuration template >- //file cannot be resolved (e.g. insufficient security privileges). >+ catch (Throwable t) { >+ //Ignore since insufficient security privileges for loading the configuration template file using the current thread's context class loader and privileged security. > } > } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 207160
:
80949
| 81438 |
81439