Exception process: whether the cstatement in finally should be executed?

in the Exception process, whether the coding statement in the finally block should be executed, if new Exception be throw again in the catch block ahead of them? like this:
catch(Exception ex){
xxx;
throw new SQLExecption("aaa");
}finally{
close();
I wrroy that the close() should not be executed once I throw new Exception in catch block.
thanks very much

The contents of the finally block are guaranteed to be executed if you throw an exception.
Generally speaking you should release any resources in the finally block that were acquired in the try block, because otherwise they will leak when exceptions occur.
Example:
Connection c = null;
try {
   c = ... // Get a connection
    // Do something with the connection.  
   c.close();
   c = null;
} catch( SQLException e ) {
   logger.log(Level.SEVERE, "Could not foo the bar", e );
} finally {
   try {
      if( c != null ) c.close();
   } catch( SQLException e ) {
      logger.log(Level.WARNING, "Could not close the ostensibly open connection", e );
}

Similar Messages

  • Exception Processing Question -Reply

    I don't use Forte (yet--that's why I joined the mailing list), but since your
    question is a generic "engineering practices" question, I'll chime in. I do
    use exceptions both in C++ in Delphi, and have developed some opinions
    about how to use them:
    - Use exceptions for handling "behavior unexpected in the normal course
    of your algorithm". In other words, instead of returning error codes
    when something goes wrong, throw an exception.
    One example of this is in a parser: if you get an illegal token, just throw
    an exception.
    - When you need to make a choice based on a return status, don't throw
    an exception. In the parser example, if you get token 'A', you need to do
    one thing and if you get token 'B' you need to do another.
    - There's a fine distinction between "handling an error" and "making a
    choice", and there are cases where you could argue one way or the
    other. I'd say that an error throws an exception when it would normally
    terminate the normal flow of execution. For example, "out of memory" or
    "illegal token".
    - Catch exceptions at "high level" process start/end points, or where it is
    required to clean up resources held and rethrow.
    - Don't catch exceptions in every single method--it defeats the purpose.
    User Interfaces:
    - If your user-interface dictates a logical place to unwind no further,
    catch exceptions there. For example: In the Windows world most apps
    are a window with a menu. If you pull down and pick a menu item to
    execute a command, and that command throws an exception, the
    exception should be caught, a modal message box indicating the error
    should be presented, and then when the user clicks "ok", the program
    returns to its normal waiting state with the window intact.
    - If you have a modal dialog up, throwing an exception should either stop
    at the dialog's event loop or take the dialog down with it.
    I'd say that on-screen data validation should NOT use exceptions
    because "user typing invalid data" is expected behavior for a UI.
    Besides, the UI designer should be smart enough to deal with giving you
    a good model for data validation. OTOH, if you take the data out of the
    dialog and then pass the information as parameters to a function, and
    that function can't handle one of the parameter values, it should throw an
    exception.
    Nevertheless, if your dialog runs out of memory for some reason, it
    should throw an exception and the dialog should come down.
    Hope this helps.
    -- Conrad Herrmann
    Jerry Fatcheric <[email protected]> 07/24/96 03:29am >>>
    I have a toss up question for 50 points -
    We have finished the first phase of our project and have place
    exception processing in the places where we saw exceptions could be
    raise. But what about those other exceptional exceptions?
    Is this just good programming practice to have a high level generic
    exception handler (and what should it really do??) or is it critical.
    In addition, when handling data validation on specific widgets on a
    screen (e.g. the account number entered must be one of the existing
    10,000 valid ones), should this be handled via exception processing or
    should it just be handled with code in the event loop?
    Any opinions - please I don't want to hear the Forte Party line.
    I would like to hear opinions based upon real experience.
    Jerry Fatcheric
    Relational Options, Inc.
    Florham Park, New Jersey
    201-301-0200
    201-301-00377 (FAX) [email protected]

    We have finished the first phase of our project and have place
    exception processing in the places where we saw exceptions could
    be raise. But what about those other exceptional exceptions?
    Is this just good programming practice to have a high level
    generic exception handler (and what should it really do??) or
    is it critical.IMHO, you need to program for these ones that could occur because
    if you don't the exception will still happen except without
    your normal graceful (or standard) approach manner. I think it is good programming
    practice to trap on the ones you think can possible occur if they require
    something different in how they react. Otherwise, use of GenericException
    with a proper response is called for.
    >
    In addition, when handling data validation on specific widgets
    on a screen (e.g. the account number entered must be one of the
    existing 10,000 valid ones), should this be handled via exception
    processing or should it just be handled with code in the event loop?
    I use event loop processing because most of the time I am also
    keeping the user on the same widget after cancelling all events
    posted. So, in effect they are back where they started from.
    Any opinions - please I don't want to hear the Forte Party line.
    I would like to hear opinions based upon real experience.
    Jerry Fatcheric
    [email protected]@Sagesoln.com
    my 2 cents, or should I say my attempt at 50 points, Jerry.
    Len Leber
    ATG Partners

  • Message processing in the queue for long time

    Hello All,
    We are executing a file to Idoc scenario. The mapping is very complex.
    The file to be processed is of size 125kb size. Which generates around 450 Idocs.
    The file is picked by the adapter engine in hardly a minute.
    But I see the message taking 6 hours to process in the Queue.
    (SMQ2)
    Is there a way I can improve and speed up the Queue processing.

    Hi,
    >message taking 6 hours to process in the Queue.
    It should not happen,
    Check whether all the Queue are Registered.
    /people/sap.india5/blog/2006/01/03/xi-asynchronous-message-processing-understanding-xi-queues-part-i
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/59e837d3-0201-0010-c096-dc1869733413
    Regards
    Agasthuri Doss

  • How can I get a file to copy all of the files in a directory except itself and the source of the copy function will be the directory the final program is in?

    How can I get a file to copy all of the files in a directory except itself and the source of the copy function will be the directory the final program is in? This application must be in Lab View 8.

    you mean something like this (see below)?
    Now you may have to implement code to check if the destination folder exists and to create it, etc.  But if you use the Front Panel Control to select the destination folder, it should be okay.
    Not the best implementation, mind you but you'll get the idea..
    Message Edited by JoeLabView on 04-18-2007 03:43 PM
    Attachments:
    copy folder contents.PNG ‏10 KB

  • "Exception Processing Message" error when clicking the Accessing Server Data link on the start page

    When I first started the application, I click the Accessing Server Data link on the start page.  I immediately got the error "Exception Processing Message c0000013 Parameters 75b6bf7c 4 75b6bf7c 75b6bf7c in a dialog box titled "Windows - No Disk".  I had to used Task Manager to remove the box after closing Flash Builder 4.  I then tried the video tutorial on "PHP Services in Flash Builder 4".  I keep receiving an error during service introspection trying to connect to the PHP class.  It was the same error as the other individual "Cannot Connect to PHP Service".  So I tried another tutorial and generated a sample PHP class.  I moved a datagrid on to the stage, droped in the getAllItems function, and configured the return type.  However, when I ran the app, I received the same error "Exception Processing Message" again.  I have attached the screenshot of the error in addition to my phpinfo and log files.

    "The exception process message" is definitely a issue. Is it happening consistently, if so can you file a bug at bugs.adobe.com/flex and give out your machine config details, and the error log.
    With regards to generating a new php file and the introspection error that you are getting, looking at the logs it probably is two fold.
    First off the name of the file and the class name should be the same, are you having employeeServices as the name of the class in employeeServices.php file.
    Second, It seems prior to generating this new file, you had a syntax error at line 5.
    It would be easier to figure out what the error is, if you can also attach the php file, by removing any sensitive information in that.
    Hope this helps.
    Thanks
    -Sunil

  • MS SQL server is going down frequently(10 days of gap) with exception message: "A severe error occurred on the current command. The results, if any, should be discarded".

    MS SQL server is going down frequently(10 days of gap) with exception message: "A severe error occurred
    on the current command. The results, if any, should be discarded". We are facing this issue for past two month.But funny thing is server will be up automatically with out any service restart manually.  Also if we try to restart the SQL
    server service manually then SQL server will be in a dead lock situation and it will not come up even if we wait for long time. Then we should do a windows server machine restart to
    make the SQL sever up. As a suggestion from Microsoft to fix this kind of similar issue,
    we have installed service pack 3 for SQL Server. But even after we are facing same issue.
    Server Details:
    Server OS: Windows Server 2008 R2
    Two type of database servers are installed on server:
    1. MS SQL Server 2008 R2
    2. My SQL
    Also Reporting server is configured for the purpose of generating SSRS report from a dot net website.
     NOTE:Immediately after the data retrieval/save, we are closing the connection explicitly by the
    application.
    we have checked the windows event log and below are the details:
    Log Name:      Application
    Source:        ASP.NET 4.0.30319.0
    Application information:
        Application domain: /LM/W3SVC/5/ROOT-1-130718142067856406
        Trust level: Full
        Application Virtual Path: /
        Application Path: E:\WebSpaceFolder\ACSQuiK\Production\
        Machine name: DBSERVER 
     Process information:
        Process ID: 148
        Process name: w3wp.exe
        Account name: NT AUTHORITY\NETWORK SERVICE 
     Exception information:
        Exception type: SqlException
        Exception message: A severe error occurred on the current command.  The results, if any, should be discarded.
       at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
       at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
    Log Name:      Application
    Source:        Report Server Windows Service (MSSQLSERVER)
    Description:
    Report Server Windows Service (MSSQLSERVER) cannot connect to the report server database.
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="Report Server Windows Service (MSSQLSERVER)" />
        <EventID Qualifiers="0">107</EventID>
    Could anybody can suggest any kind of fix for this issue? Thanks in advance.

    Hi YesYemPee,
    I have tried but still not clear about your issue, I would like you provide more details information about your issue based on below points to better analysis about the issue:
    What action did you do and caused the error "A severe error occurred on the current command. The results, if any, should be discarded", did you run report on the web application or something else then the error happen?
    If you rendering the report and got the error, please try to provide us more error information in the log files which path like:
    C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\LogFiles
    If it is not the case in step1, Please try to provide SQL Server Error log(SQL Server Logs) and more details information.
    If you still have any problem, please feel free to ask.
    Regards,
    Vicky Liu
    Vicky Liu
    TechNet Community Support

  • Should "rv_value = 'submit'." force processing of the Setter method?.

    When new values are entered into the field 'Country' for the Account screen the code associated with this field does not seem to be run unless I press ENTER after the field is populated from the list of values.
    I have a method with the appropriate code to force it to process:
    method GET_P_COUNTRY.
    case iv_property.
    when if_bsp_wd_model_setter_getter=>fp_server_event.
      rv_value = 'submit'.
    endcase.
    endmethod
    I was under the illusion that this should force the Setter code to be executed, as though I had manually hit ENTER within the field.
    I have just placed a break point in the GET_P_COUNTRY method and can see that the rv_value field is never being set. The iv_property is never matching the value from  if_bsp_wd_model_setter_getter=>fp_server_event.
    The method is being called multiple times with the iv_property being equal to:
    'fieldType'
    'onclick'
    'tooltip'
    'DetailLink'
    'focus'
    'disableSVH'
    and if_bsp_wd_model_setter_getter=>fp_server_event having a value of 'ServerEvent'.
    What might be the best way of detecting that a value has been chosen from the pull-down list and then trigger the SET_COUNTRY method?.
    Jason

    Ah, It's not a manual input and is indeed a drop-down. The Country field is one of the SAP standard fields which, via config, displays a drop-down list of values to choose from. Once chosen it then updates the Country description.
    Within the SET_COUNTRY method I detect if the country value has been changed, and if so set a boolean variable called ZCountry_flag to 'X'. This attribite is created against the class for the context node of the Country attribute.
    Then, within the controller impl class I have entered code against the do_prepare_output method to detect whether the ZCountry_flag field is set, and then if so get data from ERP and post it into a Z-field, which is actually in a different context node, but for the same controller class. The ZCountry_flag attribute is then cleared.
    This process works fine after I have selected a country code from the drop-down and then hit ENTER, but I need a way to emulate hitting ENTER after a value is selected from the list.
    I hope that makes sense.
    I could just moved the code from the do_prepare_output of the controller class to one of the Save related methods, but then this will only update the other fields when saving.

  • Oracle.jbo.NoDefException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-25058. Error message parameters

    Dear Guru's,
    I am not able to solve the above issue for last couple of days.
    I am newbie to the webservice
    My Issue...
    I am using Jdeveloper 11.1.2.4.0 Release 2
    1. Using Jdev I built one small Web Service with two methods.
            While testing the Webservice...
                   I passed User Id as Parameter and it successfully return the values (user id, user name and description) from fnd_user table
    2. I created another application to consume the web service i created.
                   1. I added the webservice SOAP and added the method.
                   2. Created a jsf page and drag and drop the parameter and return values to the jsf page.
    3. While executing the created jsf page I received the error message as below
    "oracle.jbo.NoDefException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-25058. Error message parameters are {0=Attribute, 1=UserName, 2=UserName}"
    Even I know that this issue is repeated one in our forum, I was not able to solve this issue.
    Can anybody help to solve this issue.
    Thanks and Regards,
    Durai S E

    Dear Guru's,
    I am not able to solve the above issue for last couple of days.
    I am newbie to the webservice
    My Issue...
    I am using Jdeveloper 11.1.2.4.0 Release 2
    1. Using Jdev I built one small Web Service with two methods.
            While testing the Webservice...
                   I passed User Id as Parameter and it successfully return the values (user id, user name and description) from fnd_user table
    2. I created another application to consume the web service i created.
                   1. I added the webservice SOAP and added the method.
                   2. Created a jsf page and drag and drop the parameter and return values to the jsf page.
    3. While executing the created jsf page I received the error message as below
    "oracle.jbo.NoDefException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-25058. Error message parameters are {0=Attribute, 1=UserName, 2=UserName}"
    Even I know that this issue is repeated one in our forum, I was not able to solve this issue.
    Can anybody help to solve this issue.
    Thanks and Regards,
    Durai S E

  • Class Not found Exception for invoking BPEL process through the Java code

    Hi.
    The JDeveloper IDE raise the Exception From the invoking the BPEL process through the java code .Class Not Found Exception (Locator,ID.......).What is process of importing these classes from API.

    In your code (.bpel file) import the library using the bpelx:exec tag. For example the adding the following entry in your .bpel file imports the com.oracle.bpel.client.util library.
    <bpelx:exec import="com.oracle.bpel.client.util.*"/>

  • Exception Handling Standards -The exception Exception should never been thrown. Always Subclass Exception and throw the subclassed Classes.

    In the current project my exception handling implementation is as follows :
    Exception Handling Layer wise :
    DL layer :
    catch (Exception ex)
    bool rethrow = ExceptionPolicy.HandleException(ex, "Ui Policy");
    if (rethrow)
    throw;
    BL Layer
    catch (Exception ex)
    bool rethrow = ExceptionPolicy.HandleException(ex, "Ui Policy");
    if (rethrow)
    throw;
    UI Layer
    catch (Exception ex)
    bool rethrow = ExceptionPolicy.HandleException(ex, "Ui Policy");
    if (rethrow)
    Response.Redirect("ErrorPage.aspx", false);
    We have a tool to check the standards. And tool output is as follows :
    The exception Exception should never been thrown. Always Subclass Exception and throw the subclassed Classes.
    I need suggestions on how to implement the same according to standards.

    Your tool is wrong if it says to never throw Exception.  This was a common recommendation back in the .NET v1 days but has long since been thrown out.  It is perfectly fine to use Exception when you have a general exception that provides no information
    that an application can use to make an informed opinion.
    The general rules of exception throwing is to throw the most specific exception that makes sense. If there is no specific exception that applies and it would be useful for the caller to handle the exception differently than other exceptions then creating
    a custom exception type is warranted.  Otherwise throwing Exception is reasonable. As an example you might have an application that pulls back product data given an ID. There is no built in exception that says the ID is invalid. However an invalid ID
    is something that an application may want to handle differently than, say, an exception about the product being discontinued.  Therefore it might make sense to create an ItemNotFoundException exception that the application can react to.
    Conversely there is no benefit in having different exception types for disk full and disk quota met. The application will respond the same in either case.
    Michael Taylor
    http://blogs.msmvps.com/p3net

  • After downloading a movie to my iPad it is blocked with the word  "processing" under the movie icon. What should I do?

    After downloading a movie to my iPad it is blocked with the word  "processing" under the movie icon. What should I do?

    Do you not want a backup of the iTunes content on your computer in the event the iPad is lost, stolen, or simply fails?

  • I wanted to ask whether the camera for ipod touch comparable to a digital camera? if not are there apps available that can turn it into a digital camera? i want to buy an ipod touch and i like photography....what should i do?plz suggest

    i  wanted to ask whether the camera for ipod touch comparable to a digital camera? if not are there apps available that can turn it into a digital camera? i want to buy an ipod touch and i like photography....what should i do? plz suggest

    The iPod touch has a very rudimentary camera.  It has only a 0.6 MP resolution, no optical zoom, no flash, etc.   There is no app that can improve this as it is limited by the hardware. So it is not a replacement for a digital camera (nor even for an iPhone whose camera has a 5.0 MP resolution.

  • In SNC -What is the exception process and current options/limitations

    In SNC we have Exeption mechanism for Alerts for ASN,PO,SA,INVOICE etc.
    What are the current Options / Limitations in Exception Process.
    Thanks.
    Mahesh

    Hi Mahesh,
    I'm not sure what exactly is your question.
    There are various alert types in SNC which needs to be activated. Some alerts get triggered automatically e.g. New PO, Changed PO, New SA Release, Late Confirmation, etc. For some other alerts, we need to run the report periodically.
    If you would like to receive Email, SMS, etc., you can create Selection profile for the same in SNC web UI and maintain the parameters accordingly.
    Regards,
    Sandeep

  • Whether the payments can be processed to outside aproved bank accounts.

    Hi guys,
    The question is, how can determine whether the payments from customers can be posted to other then approved bank accounts.
    We have a number of house banks, some of them are scheduled for creditor payments (outgoing) the other for payments received from customers (incoming). The proceeds can be posted directly to house bank accounts and can be in form of cash, eft, or checks as defined in the company code level.  However, then I am checking the list of house banks using FI12,  where all house banks are listed ( more then 30 ), I am not able to see whether particular bank account is for outgoing or incoming  payments. So, can you please tell me, are there any alternative way to determine that? Or what I am doing wrong?
    Regards

    Dear,
    I hope with GL account created for bank you can know Outgoing or incoming payment. Check.
    Regards,
    Syed Hussain.

  • Everything is very slow and I can almost always hear processing in the background

    I will copy my Etrecheck report below: Thanks!
    EtreCheck version: 2.1.7 (114)
    Report generated January 30, 2015 at 8:15:42 AM EST
    Download EtreCheck from http://etresoft.com/etrecheck
    Click the [Support] links for help with non-Apple products.
    Click the [Details] links for more information about that line.
    Click the [Adware] links for help removing adware.
    Hardware Information: ℹ️
        iMac (27-inch, Mid 2010) (Technical Specifications)
        iMac - model: iMac11,3
        1 2.93 GHz Intel Core i7 CPU: 4-core
        4 GB RAM Upgradeable
            BANK 0/DIMM0
                2 GB DDR3 1333 MHz ok
            BANK 1/DIMM0
                2 GB DDR3 1333 MHz ok
            BANK 0/DIMM1
                Empty  
            BANK 1/DIMM1
                Empty  
        Bluetooth: Old - Handoff/Airdrop2 not supported
        Wireless:  en1: 802.11 a/b/g/n
    Video Information: ℹ️
        ATI Radeon HD 5750 - VRAM: 1024 MB
            iMac 2560 x 1440
    System Software: ℹ️
        OS X 10.9.5 (13F34) - Time since boot: 22:58:11
    Disk Information: ℹ️
        WDC WD1001FALS-40Y6A0 disk0 : (1 TB)
            EFI (disk0s1) <not mounted> : 210 MB
            Macintosh HD (disk0s2) / : 978.49 GB (754.71 GB free)
            Recovery HD (disk0s3) <not mounted>  [Recovery]: 650 MB
            BOOTCAMP (disk0s4) /Volumes/BOOTCAMP : 20.86 GB (20.85 GB free)
        OPTIARC DVD RW AD-5680H 
    USB Information: ℹ️
        HP Officejet 6500 E710n-z
        Apple Inc. BRCM2046 Hub
            Apple Inc. Bluetooth USB Host Controller
        Apple Internal Memory Card Reader
        Primax Electronics Apple Optical USB Mouse
        Fitbit Inc. Fitbit Base Station
        Apple Inc. Built-in iSight
        Apple Computer, Inc. IR Receiver
    Gatekeeper: ℹ️
        Mac App Store and identified developers
    Kernel Extensions: ℹ️
            /System/Library/Extensions
        [not loaded]    com.tomtom.driver.UsbEthernetGadget (1.0.0d1) [Support]
    Problem System Launch Daemons: ℹ️
        [failed]    com.apple.wdhelper.plist [Details]
    Launch Agents: ℹ️
        [loaded]    com.cisco.anyconnect.gui.plist [Support]
        [loaded]    com.citrix.AuthManager_Mac.plist [Support]
        [running]    com.citrix.ReceiverHelper.plist [Support]
        [running]    com.citrix.ServiceRecords.plist [Support]
        [loaded]    com.google.keystone.agent.plist [Support]
        [loaded]    com.oracle.java.Java-Updater.plist [Support]
    Launch Daemons: ℹ️
        [loaded]    com.adobe.fpsaud.plist [Support]
        [running]    com.cisco.anyconnect.vpnagentd.plist [Support]
        [running]    com.fitbit.galileod.plist [Support]
        [loaded]    com.google.keystone.daemon.plist [Support]
        [loaded]    com.microsoft.office.licensing.helper.plist [Support]
        [loaded]    com.oracle.java.Helper-Tool.plist [Support]
        [running]    com.perion.searchprotectd.plist [Support]
    User Launch Agents: ℹ️
        [invalid?]    .dat0bfe.000 (hidden) [Support]
        [running]    com.spotify.webhelper.plist [Support]
        [loaded]    com.valvesoftware.steamclean.plist [Support]
    User Login Items: ℹ️
        GrowlHelperApp    Application  (/Library/PreferencePanes/Growl.prefPane/Contents/Resources/GrowlHelperApp.app)
        iTunesHelper    UNKNOWN Hidden (missing value)
        MailTab for Gmail    UNKNOWN  (missing value)
        Spotify    Application  (/Applications/Spotify.app)
        Dropbox    Application  (/Applications/Dropbox.app)
        Microsoft Database Daemon    Application  (/Applications/Microsoft Office 2011/Office/Microsoft Database Daemon.app)
        Fitbit Connect Menubar Helper    Application  (/Applications/Fitbit Connect.app/Contents/MacOS/Fitbit Connect Menubar Helper.app)
        TomTomHOMERunner    Application Hidden (/Users/[redacted]/Library/Application Support/TomTom HOME/TomTomHOMERunner.app)
        iLauncherHelperAgent    Application Hidden (/Applications/Samsung/iLauncherHelper.app)
        AutoBackup    Application  (/Applications/SamsungPAB/AutoBackup.app)
    Internet Plug-ins: ℹ️
        DirectorShockwave: Version: 12.0.0r112 - SDK 10.6 [Support]
        o1dbrowserplugin: Version: 5.38.6.0 - SDK 10.8 [Support]
        Default Browser: Version: 537 - SDK 10.9
        Flip4Mac WMV Plugin: Version: 2.4.4.2 [Support]
        OfficeLiveBrowserPlugin: Version: 12.3.3 [Support]
        Silverlight: Version: 5.1.20913.0 - SDK 10.6 [Support]
        FlashPlayer-10.6: Version: 16.0.0.296 - SDK 10.6 [Support]
        Flash Player: Version: 16.0.0.296 - SDK 10.6 [Support]
        QuickTime Plugin: Version: 7.7.3
        CitrixICAClientPlugIn: Version: 11.8.2 - SDK 10.7 [Support]
        googletalkbrowserplugin: Version: 5.38.6.0 - SDK 10.8 [Support]
        iPhotoPhotocast: Version: 7.0 - SDK 10.7
        SharePointBrowserPlugin: Version: 14.0.0 [Support]
        Scorch: Version: 6.2.0 [Support]
        JavaAppletPlugin: Version: Java 8 Update 25 Check version
    User internet Plug-ins: ℹ️
        WebEx64: Version: 1.0 - SDK 10.6 [Support]
        Picasa: Version: 1.0 [Support]
        Dashlane: Version: Dashlane 1.0.0 - SDK 10.10 [Support]
    Safari Extensions: ℹ️
        Dashlane [Installed]
        Trovi Search for Safari [Installed]
    3rd Party Preference Panes: ℹ️
        Flash Player  [Support]
        Flip4Mac WMV  [Support]
        Growl  [Support]
        Java  [Support]
    Time Machine: ℹ️
        Time Machine not configured!
    Top Processes by CPU: ℹ️
             2%    WindowServer
             1%    Fitbit Connect Menubar Helper
             0%    fontd
             0%    WebKitPluginHost
             0%    Google Chrome Helper EH
    Top Processes by Memory: ℹ️
        245 MB    Google Chrome Helper EH
        176 MB    Google Chrome Helper
        133 MB    Google Chrome
        47 MB    Finder
        47 MB    WindowServer
    Virtual Memory Information: ℹ️
        47 MB    Free RAM
        1.08 GB    Active RAM
        1.05 GB    Inactive RAM
        666 MB    Wired RAM
        11.29 GB    Page-ins
        208 MB    Page-outs
    Diagnostics Information: ℹ️
        Jan 29, 2015, 09:18:13 AM    Self test - passed

    1. This procedure is a diagnostic test. It changes nothing, for better or worse, and therefore will not, in itself, solve the problem. But with the aid of the test results, the solution may take a few minutes, instead of hours or days.
    Don't be put off by the complexity of these instructions. The process is much less complicated than the description. You do harder tasks with the computer all the time.
    2. If you don't already have a current backup, back up all data before doing anything else. The backup is necessary on general principle, not because of anything in the test procedure. Backup is always a must, and when you're having any kind of trouble with the computer, you may be at higher than usual risk of losing data, whether you follow these instructions or not.
    There are ways to back up a computer that isn't fully functional. Ask if you need guidance.
    3. Below are instructions to run a UNIX shell script, a type of program. As I wrote above, it changes nothing. It doesn't send or receive any data on the network. All it does is to generate a human-readable report on the state of the computer. That report goes nowhere unless you choose to share it. If you prefer, you can act on it yourself without disclosing the contents to me or anyone else.
    You should be wondering whether you can believe me, and whether it's safe to run a program at the behest of a stranger. In general, no, it's not safe and I don't encourage it.
    In this case, however, there are a couple of ways for you to decide whether the program is safe without having to trust me. First, you can read it. Unlike an application that you download and click to run, it's transparent, so anyone with the necessary skill can verify what it does.
    You may not be able to understand the script yourself. But variations of it have been posted on this website thousands of times over a period of years. The site is hosted by Apple, which does not allow it to be used to distribute harmful software. Any one of the millions of registered users could have read the script and raised the alarm if it was harmful. Then I would not be here now and you would not be reading this message. See, for example, this discussion.
    Nevertheless, if you can't satisfy yourself that these instructions are safe, don't follow them. Ask for other options.
    4. Here's a summary of what you need to do, if you choose to proceed:
    ☞ Copy a line of text in this window to the Clipboard.
    ☞ Paste into the window of another application.
    ☞ Wait for the test to run. It usually takes a few minutes.
    ☞ Paste the results, which will have been copied automatically, back into a reply on this page.
    The sequence is: copy, paste, wait, paste again. You don't need to copy a second time. Details follow.
    5. Try to test under conditions that reproduce the problem, as far as possible. For example, if the computer is sometimes, but not always, slow, run the test during a slowdown.
    You may have started up in "safe" mode. If the system is now in safe mode and works well enough in normal mode to run the test, restart as usual. If you can only test in safe mode, do that.
    6. If you have more than one user, and the one affected by the problem is not an administrator, then please run the test twice: once while logged in as the affected user, and once as an administrator. The results may be different. The user that is created automatically on a new computer when you start it for the first time is an administrator. If you can't log in as an administrator, test as the affected user. Most personal Macs have only one user, and in that case this section doesn’t apply. Don't log in as root.
    7. The script is a single long line, all of which must be selected. You can accomplish this easily by triple-clicking anywhere in the line. The whole line will highlight, though you may not see all of it in the browser window, and you can then copy it. If you try to select the line by dragging across the part you can see, you won't get all of it.
    Triple-click anywhere in the line of text below on this page to select it:
    PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec;clear;cd;p=(1207 ' 0.5 0.25 1000 1000 15 5120 1000 25000 1 1 0 100 ' 51 25600 4 10 25 5120 102400 1000 25 1000 80 20 500 300 85 25 20480 1024 20 2000 );k=({Soft,Hard}ware Memory Diagnostics Power FireWire Thunderbolt USB Bluetooth SerialATA Extensions Applications Frameworks PrefPane Fonts Displays CFBundleIdentifier OSBundleRequired PlistBuddy{,' 2>&1'}' -c Print' 'Info\.plist' 'com\.apple\.' -\\t N\\/A 'AES|atr|udit|msa|dnse|ax|ensh|fami|FileS|fing|ft[pw]|gedC|kdu|etS|is\.|alk|ODSA|otp|htt|pcas|ps-lp|rexe|rlo|rsh|smb|snm|teln|upd-[aw]|uuc|vix|webf' 'tsA|[ST]M[HL]' );f=('\n%s'{': ','\n\n'}'%s\n' '\nRAM details\n%s\n' %s\ %s '%s\n'"${k[22]}"'%s\n' {Privacy,Mode}': %s\n' '\n   ...and %s more line(s)\n' 'RSSI: %s\nNoise: %s\nTx rate: %s\n' '\nContents of %s\n   '"${k[22]}"'mod date: %s\n   '"${k[22]}"'checksum: %s\n%s\n' '%d MB: %s\n' );b=(com.adobe.{AAM.Updater-1.0{,},AdobeCreativeCloud,CS{4,5}ServiceManager,fpsaud,SwitchBoard{,}} ${k[21]}{aelwriter,{AirPortBaseSt,SafariNotific}ationAgent,FolderActions.enabled,installer.osmessagetracing,mrt.uiagent,ReportCrash.Self,{rp,usb}muxd} com.citrixonline.GoToMeeting.G2MUpdate com.google.keystone.daemon com.microsoft.office.licensing.helper com.oracle.java.{Helper-Tool,JavaUpdateHelper{,}} org.macosforge.xquartz.{privileged_{,},}startx );c=(879294308 4071182229 461455494 3627668074 1083382502 1274181950 1855907737 2758863019 1848501757 464843899 2636415542 3694147963 1233118628 2456546649 2806998573 2778718105 842973933 2051385900 3301885676 891055588 695903914 1443423563 4136085286 523110921 2883943871 3873345487 );s=(' s/[0-9A-Za-z._]+@[0-9A-Za-z.]+\.[0-9A-Za-z]{2,4}/EMAIL/g;/faceb/s/(at\.)[^.]+/\1NAME/g;/\/Shared/!s/(\/Users\/)[^ /]+/\1USER/g;s/[-0-9A-Fa-f]{22,}/UUID/g;' ' s/^ +//;/de: S|[nst]:/p;' ' {sub(/^ +/,"")};/er:/;/y:/&&$2<'${p[4]} ' s/:$//;3,6d;/[my].+:/d;s/^ {4}//;H;${ g;s/\n$//;/s: (E[^m]|[^EO])|x([^08]|02[^F]|8[^0])/p;} ' ' 5h;6{ H;g;/P/!p;} ' ' ($1~/^Cy/&&$3>'${p[9]}')||($1~/^Cond/&&$2!~/^N/) ' ' /:$/{ N;/:.+:/d;s/ *://;b0'$'\n'' };/^ *(V.+ [0N]|Man).+ /{ s/ 0x.... //;s/[()]//g;s/(.+: )(.+)/ (\2)/;H;};$b0'$'\n'' d;:0'$'\n'' x;s/\n\n//;/Apple[ ,]|Genesy|Intel|SMSC/d;s/\n.*//;/\)$/p;' ' s/^.*C/C/;H;${ g;/No th|pms/!p;} ' '/= [^GO]/p' '{$1=""};1' ' /Of/!{ s/^.+is |\.//g;p;} ' ' BEGIN { FS=":";if(system("sw_vers -productVersion|grep -q ^10\.1")) d="^'"${k[21]}"'launch(d\.peruser\.[0-9]+|ctl\.(Aqua|Background|System))$";} { if($2~/[1-9]/) { $2="status: "$2;printf("'"${f[4]}"'",$1,$2);} else if(!d||$1!~d) print $1;} ' ' { sub(/ :/,"");print|"tail -n'${p[10]}'";} ' ' NR==2&&$4<='${p[7]}' { print $4;} ' ' END { $2/=256;if($2>='${p[19]}') print int($2) } ' '|grep DYLD' ' { q=$1;$1="";u=$NF;$NF="";gsub(/ +$/,"");print q":"$0":"u;} ' ' /^ {6}[^ ]/d;s/:$//;/([^ey]|[^n]e):/d;/e: Y/d;s/: Y.+//g;H;${ g;s/ \n (\n)/\1/g;s/\n +(M[^ ]+)[ -~]+/ (\1)/;s/\n$//;/( {8}[^ ].*){2,}/p;} ' 's:^:/:p;' ' !/ /{print};END{if(NR<'{${p[12]},${p[13]}}')printf("^'"${k[21]}"'")} ' '|uniq' ' 1;END { if(NR<'{${p[14]},${p[21]}}') printf("^/S");} ' ' /\.(framew|lproj)|\):/d;/plist:|:.+(Mach|scrip)/s/:.+//p;' '&&echo On' '/\.(bundle|component|framework|kext|mdimporter|plugin|qlgenerator|saver|wdgt)$/p' '/\.dylib$/p' ' /Temp|emac/{next};/(etc|Preferences|Launch[AD].+)\// { sub(".","");print;} END { split("'"${b[*]}"'",b);split("'"${c[*]}"'",c);for(i in b) print b[i]".plist\t"c[i];} ' ' /^\/(Ap|Dev|Inc|Prev)/d;/((iTu|ok).+dle|\.(component|mailbundle|mdimporter|plugin|qlgenerator|saver|wdgt))$/p;' ' { gsub(/[()"]/,"",$3);if($2!="="||!$3) $3="N/A";print $3;} ' ' /^\// { sub("/dev/","",$1);printf("%s: %s\n",$1,$9);} ' '>&-||echo No' '{print $3"\t"$1}' 's/\'$'\t''.+//p' 's/1/On/p' '/Prox.+: [^0]/p' '$2>'${p[2]}'{$2=$2-1;print}' ' BEGIN { i="'${p[6]}'";M1='${p[16]}';M2='${p[18]}';M3='${p[8]}';M4='${p[3]}';} !/^A/{next};/%/ { getline;if($5<M1) a="user "$2"%, system "$4"%";} /disk0/&&$4>M2 { b=$3" ops/s, "$4" blocks/s";} $2==i { if(c) { d=$3+$4+$5+$6;next;};if($4>M3||$6>M4) c=int($4/1024)" in, "int($6/1024)" out";} END { if(a) print "CPU: "a;if(b) print "I/O: "b;if(c) print "Net: "c" (KiB/s)";if(d) print "Net errors: "d" packets/s";} ' ' /r\[0\] /&&$NF!~/^1(0|72\.(1[6-9]|2[0-9]|3[0-1])|92\.168)\./ { print $NF;exit;} ' ' !/^T/ { printf "(static)";exit;} ' '/apsd|BKAg|OpenD/!s/:.+//p' ' (/k:/&& $3!~/(255\.){3}0/)||(/v6:/&&$2!~/A/) ' ' $1=="op" {m=$3};$1~"lN" {N=$2};$1~"lR" {S=$2};$1~"Tx" {T=$2};$1~/^st/ {s=$2};$1~"li"&&$3!~"wpa2" {printf("'"${f[5]}"'",toupper($3))};END { if(S*N*T&&(S-N<'${p[5]}'||T<'${p[20]}')) printf("'"${f[8]}"'",S,N,T);if(s~/^r/&&m!~/^st/) printf("'"${f[6]}"'",m);} ' ' BEGIN { FS=":";} { n=split($3,a,".");sub(/_2[01].+/,"",$3);print $2" "$3" "a[n]$1;} ' ' BEGIN { split("'"${p[1]}"'",m);FS=":";} $2<=m[$1]{next} $1<9 { o[$1]=o[$1]"\n   "$3" (UID "$4"): "$2;} $1==9&&$5!~"^/dev" { o[$1]=o[$1]"\n   "$3" (UID "$4") => "$5" (status "$6"): "$2;} $1==10&&$5 { p="ps -c -ocomm -p"$5"|sed 1d";p|getline n;close(p);if(n) $5=n;o[$1]=o[$1]"\n   "$5" => "$3" UID ("$4"): "$2;} $1~/1[12]/ { o[$1]=o[$1]"\n   "$3" (UID "$4", error "$5"): "$2;} END { u1="Mb/s";u2="per sec";u3="us/s";u4="KiB/s";u5="%";u6="total";u7="MB";u8="ports";u[1]=u1;u[2]=u1;u[3]=u3;u[4]=u4;u[5]=u5;u[6]=u6;u[7]=u7;u[8]=u8;u[9]=u2;u[10]=u2;u[11]=u2;u[12]=u2;l[1]="Net in";l[2]="Net out";l[3]="I/O wait time";l[4]="I/O requests";l[5]="CPU usage";l[6]="Open files";l[7]="Memory";l[8]="Mach ports";l[9]="File opens";l[10]="Forks";l[11]="Failed forks";l[12]="System errors";for(i in o) print "\n"l[i]" ("u[i]")\n"o[i];} ' ' END{if($3~/[0-9]/)print$3} ' ' BEGIN { L='${p[17]}';} !/^[[:space:]]*(#.*)?$/ { l++;if(l<=L) f=f"\n   "$0;} END { F=FILENAME;if(!F) exit;if(!f) f="\n   [N/A]";"cksum "F|getline C;split(C, A);C=A[1];"stat -f%Sm "F|getline D;"file -b "F|getline T;if(T~/^Apple b/) { f="";l=0;while("'"${k[18]}"' "F|getline g) { l++;if(l<=L) f=f"\n   "g;};};if(T!~/^(AS.+ (En.+ )?text(, with v.+)?$|(Bo|PO).+ sh.+ text ex|XM)/) F=F"\n   '"${k[22]}"'"T;printf("'"${f[9]}"'",F,D,C,f);if(l>L) printf("'"${f[7]}"'",l-L);} ' ' s/^ ?n...://p;s/^ ?p...:/-'$'\t''/p;' 's/0/Off/p' 's/^.{52}(.+) <.+/\1/p' ' /id: N|te: Y/{i++} END{print i} ' ' /kext:/ { split($0,a,":");s=system("'"${k[18]}"'\\ :'${k[17]}' \""a[1]"\"/*/I*|grep -q Sa");if(!s) a[1]=a[1]" S";if(!a[2]) a[2]="'"${k[23]}"'";printf("'"${f[4]}"'",a[1],a[2]);next;} !/^ *$/ { p="'"${k[19]}"'\\ :'"${k[16]}"' \""$0"\"/*/'${k[20]}'";p|getline b;close(p);if(b~/ /||b=="") b="'"${k[23]}"'";printf("'"${f[4]}"'",$0,b);} ' '/ en/!s/\.//p' ' NR>=13 { gsub(/[^0-9]/,"",$1);print;} ' ' $10~/\(L/&&$9!~"localhost" { sub(/.+:/,"",$9);print $1": "$9|"sort|uniq";} ' '/^ +r/s/.+"(.+)".+/\1/p' 's/(.+\.wdgt)\/(Contents\/)?'${k[20]}'$/\1/p' 's/^.+\/(.+)\.wdgt$/\1/p' ' /l: /{ /DVD/d;s/.+: //;b0'$'\n'' };/s: /{ /V/d;s/^ */- /;H;};$b0'$'\n'' d;:0'$'\n'' x;/APPLE [^:]+$/d;p;' '/^find: /!p;' ' /^p/{ s/.//g;x;s/\nu/:/;s/(\n)c/\1:/;s/\n\n//;p;};H;' ' BEGIN{FS="= "} /Path/{print $2} ' ' /^ *$/d;s/^ */   /;p;' ' s/^.+ |\(.+\)$//g;p;' '1;END{if(NR<'${p[15]}')printf("^/(S|usr/(X|li))")}' ' /2/{print "WARN"};/4/{print "CRITICAL"};' ' /EVHF|MACR|^s/d;s/^.+: //p;' ' $3~/^[1-9][0-9]{0,2}(\.[1-9][0-9]{0,2}){2}$/ { i++;n=n"\n"$1"\t"$3;} END{ if(i>1)print n} ' s/{':[^:]+$','P.+:'}'//;s/ +([0-9]+)(.+)/\2: \1/p' ' /es: ./{ s/^.+://;b0'$'\n'' };/^ +C.+ted: +[NY]/H;/:$/b0'$'\n'' d;:0'$'\n'' x;/: +N/d;s/\n.+//p;' ' 1d;/:$/b0'$'\n'' $b0'$'\n'' /(D|^ *Loc.+): /{ s/^.+: //;H;};/(B2|[my]): /H;d;:0'$'\n'' x;/[my]: [AM]|^\/Vo/d;s/(^|\n) [ -~]+//g;s/(.+)\n(.+)/\2:\1/;s/\n//g;/[ -~]/p;' 's/$/:(0|-(4[34])?)$/p' '|sort'{'|uniq'{,\ -c},\ -nr} ' s/^/'{5,6,7,8}':/;s/ *: */:/g;p;' '/e:/{print $2}' ' /^[(]/{ s/....//;s/$/:/;N;/: [)]$/d;s/\n.+ ([^ ]+).$/\1/;H;};${ g;p;} ' 's/:.+$//p' '|wc -l' /{\\.{kext,xpc,'(appex|pluginkit)'}'\/(Contents\/)?'Info,'Launch[AD].+'}'\.plist$/p' 's/([-+.?])/\\\1/g;p' 's/, /\'$'\n/g;p' ' BEGIN{FS=":"} { printf("'"${f[10]}"'",$1/1048576,$2);} ' ' /= D/&&$1!~/'{${k[24]},${k[25]}}'/ { getline d;if(d~"t") D=D"\n"$1;} END { print D;} ' ' NR>1&&$3!~/0x|\.([0-9]{3,}|[-0-9A-F]{36})$/ { print $3":"$2;} ' '|tail -n'${p[6]} ' $1>1 { $NF=$NF" x"$1;} /\*/ { if(!f) f="\n\t* Code injection";} { $1="";} 1;END { print f;} ' ' s/.+bus /Bus: /;s/,.+[(]/ /;s/,.+//p;' ' { $NF=$NF" Errors: "$1;$1="";} 1 ' ' 1s/^/\'$'\n''/;1s/:/ tree/;/^ +[MPSV].+:../d;s/:$//;p;' );c1=(system_profiler pmset\ -g nvram fdesetup find syslog df vm_stat sar ps crontab kextfind top pkgutil "${k[18]}\\" echo cksum kextstat launchctl smcDiagnose sysctl\ -n defaults\ read stat lsbom 'mdfind -onlyin /' env pluginkit scutil 'dtrace -q -x aggsortrev -n' profiles sed\ -En awk /S*/*/P*/*/*/C*/*/airport networksetup mdutil lsof test osascript\ -e netstat mdls route );c2=(${k[21]}loginwindow\ LoginHook ' /L*/P*/loginw*' "'tell app \"System Events\" to get properties of login items'" 'L*/Ca*/'${k[21]}'Saf*/E* -d 2 -name '${k[20]} '~ $TMPDIR.. \( -flags +sappnd,schg,uappnd,uchg -o ! -user $UID -o ! -perm -600 \)' -i '-nl -print' '-F \$Sender -k Level Nle 3 -k Facility CReq "apple\.(bird|i?clou)"' '{/,}L*/{Con,Pref}* -type f ! -size 0 -name *.plist -exec plutil -s {} \;' "-f'%N: %l' Desktop L*/Keyc*" therm sysload boot-args status " -F '\$Time \$(RefProc): \$Message' -k Sender Req 'fsev|kern|launchd' -k RefProc Rne 'Aq|WebK' -k Message Rne '08012|Goog|ksadm|probe|Roame|SMC:|smcD|sserti|suhel| VALI|ver-r|xpma' -k Message Req 'abn|bad |Beac|caug|corru|dead[^bl]|FAIL|fail|GPU |hfs: Ru|idle ex|inval|jnl:|last value [1-9]|lv_c|NVDA\(|pagin|pci pa|proc: t|Roamed|rror|SL|TCON|Throttli|tim(ed? ?|ing )o|WARN' " '-du -n DEV -n EDEV 1 10' 'acrx -o%cpu,comm,ruid' "' syscall::recvfrom:return {@a[execname,uid]=sum(arg0)} syscall::sendto:return {@b[execname,uid]=sum(arg0)} syscall::open*:entry {@c[execname,uid,copyinstr(arg0),errno]=count()} syscall::execve:return, syscall::posix_spawn:return {@d[execname,uid,ppid]=count()} syscall::fork:return, syscall::vfork:return, syscall::posix_spawn:return /arg0 < 0/ {@e[execname,uid,arg0]=count()} syscall:::return /errno != 0/ {@f[execname,uid,errno]=count()} io:::wait-start {self->t=timestamp} io:::wait-done /self->t/ { this->T=timestamp - self->t;@g[execname,uid]=sum(this->T);self->t=0;} io:::start {@h[execname,uid]=sum(args[0]->b_bcount)} tick-10sec { normalize(@a,2560000);normalize(@b,2560000);normalize(@c,10);normalize(@d,10);normalize(@e,10);normalize(@f,10);normalize(@g,10000);normalize(@h,10240);printa(\"1:%@d:%s:%d\n\",@a);printa(\"2:%@d:%s:%d\n\",@b);printa(\"9:%@d:%s:%d:%s:%d\n\",@c);printa(\"10:%@d:%s:%d:%d\n\",@d);printa(\"11:%@d:%s:%d:%d\n\",@e);printa(\"12:%@d:%s:%d:%d\n\",@f);printa(\"3:%@d:%s:%d\n\",@g);printa(\"4:%@d:%s:%d\n\",@h);exit(0);} '" '-f -pfc /var/db/r*/'${k[21]}'*.{BS,Bas,Es,J,OSXU,Rem,up}*.bom' '{/,}L*/Lo*/Diag* -type f -regex .\*[cght] ! -name .?\* ! -name \*ag \( -exec grep -lq "^Thread c" {} \; -exec printf \* \; -o -true \) -execdir stat -f:%Sc:%N -t%F {} \;' '/S*/*/Ca*/*xpc*' '-L /{S*/,}L*/StartupItems -type f -exec file {} +' kMDItemContentTypeTree=${k[21]}{bundle,mach-o-dylib} :Label "/p*/e*/{aut*,{cron,fs}tab,hosts,{[lp],sy}*.conf,mach_i*/*,pam.d/*,ssh{,d}_config,*.local} {/p*,/usr/local}/e*/periodic/*/* /L*/P*{,/*}/com.a*.{Bo,sec*.ap}*t {/S*/,/,}L*/{Lau,Sec}*/*t .launchd.conf" list '-F "" -k Sender hidd -k Nle 3' /Library/Preferences/${k[21]}alf\ globalstate --proxy '-n get default' -I --dns -get{dnsservers,info} -P -m\ / '' -n1 '-R -ce -l1 -n5 -o'{'prt -stats prt','mem -stats mem'}',command,uid' -kl -l -s\ / '--regexp --files '${k[21]}'pkg.*' '+c0 -i4TCP:0-1023' ${k[21]}dashboard\ layer-gadgets '-d /L*/Mana*/$USER' '-app Safari WebKitDNSPrefetchingEnabled' '-Fcu +c0 -l' -m 'L*/{Con*/*/Data/L*/,}Pref* -type f -size 0c -name *.plist.???????' kern.memorystatus_vm_pressure_level '3>&1 >&- 2>&3' '-F \$Message -k Sender kernel -k Message CReq "'{'n Cause: -','a underr|I/O e','USBF'}'"' -name\ kMDItem${k[16]} -T\ hfs '-n get default' -listnetworkserviceorder :${k[16]} :CFBundleDisplayName $EUID {,'/{S*/,}'}'L*/{,Co*/*/*/L*/}{Cache,Log}s $TMPDIR../C -type f -size +'${p[11]}'M -exec stat -f'%z:%N' {} \;' \ /v*/d*/*/*l*d{,.*.$UID}/* '-app Safari UserStyleSheetEnabled' );N1=${#c2[@]};for j in {0..15};do c2[N1+j]=SP${k[j]}DataType;done;l=({Restricted\ ,Lock,Pro}files POST Battery {Safari,App,{Bad,Loaded}\ kernel}\ extensions Heat System\ load boot\ args FileVault Diagnostic\ reports Log {Free\ space,Swap}' (MiB)' Activity SMC Login\ hook 'I/O per process' 'High file counts' UID Daemons Agents XPC\ cache Startup\ items {Admin,Root}\ access Bundles {,Inserted\ }dylibs Stylesheet Font\ issues Firewall Proxies DNS TCP/IP Wi-Fi 'Elapsed time (sec)' {Root,User}\ crontab {Global,User}' login items' Spotlight Memory\ pressure Listeners Widgets Parental\ Controls Prefetching Nets Volumes Bad\ plists {I/O,iCloud,HID,HCI}\ errors {User,System}\ {caches/logs,overrides} Shutdown\ codes );N3=${#l[@]};for i in {0..8};do l[N3+i]=${k[5+i]};done;F() { local x="${s[$1]}";[[ "$x" =~ ^([\&\|\<\>]|$) ]]&&{ printf "$x";return; };:|${c1[30]} "$x" 2>&-;printf "%s \'%s\'" "|${c1[30+$?]}" "$x";};A0() { Q=6;v[2]=1;id -G|grep -qw 80;v[1]=$?;((v[1]))||{ Q=7;sudo -v;v[2]=$?;((v[2]))||Q=8;};v[3]=`date +%s`;date '+Start time: %T %D%n';printf '\n[Process started]\n\n'>&4;printf 'Revision: %s\n\n' ${p[0]};};A1() { local c="${c1[$1]} ${c2[$2]}";shift 2;c="$c ` while [[ "$1" ]];do F $1;shift;done`";((P2))&&{ c="sudo $c";P2=;};v=`eval "$c"`;[[ "$v" ]];};A2() { local c="${c1[$1]}";[[ "$c" =~ ^(awk|sed ) ]]&&c="$c '${s[$2]}'"||c="$c ${c2[$2]}";shift 2;local d=` while [[ "$1" ]];do F $1;shift;done`;((P2))&&{ c="sudo $c";P2=;};local a;v=` while read a;do eval "$c '$a' $d";done<<<"$v";`;[[ "$v" ]];};A3(){ v=$((`date +%s`-v[3]));};B1() { v=No;! ((v[1]))&&{ v=;P1=1;};};eval "`type -a B1|sed '1d;s/1/2/'`";B3(){ v[$1]="$v";};B4() { local i=$1;local j=$2;shift 2;local c="cat` while [[ "$1" ]];do F $1;shift;done`";v[j]=`eval "{ $c;}"<<<"${v[i]}"`;};B5(){ v[$1]="${v[$1]}"$'\n'"${v[$2]}";};B6() { v=` paste -d: <(printf "${v[$1]}") <(printf "${v[$2]}")|awk -F: ' {printf("'"${f[$3]}"'",$1,$2)} ' `;};B7(){ v=`grep -Ev "${v[$1]}"<<<"$v"|sort`;};eval "`type -a B7|sed '1d;s/7/8/;s/Ev/E/'`";C0() { [[ "$v" ]]&&sed -E "$s"<<<"$v";};C1() { [[ "$v" ]]&&printf "${f[$1]}" "${l[$2]}" "$v"|sed -E "$s";};C2() { v=`echo $v`;[[ "$v" != 0 ]]&&C1 0 $1;};C3() { B4 0 0 63&&C1 1 $1;};C4() { echo $'\t'"Part $((++P)) of $Q done at $((`date +%s`-v[3])) sec">&4;};C5() { sudo -k;pbcopy<<<"$o";printf '\n\tThe test results are on the Clipboard.\n\n\tPlease close this window.\n';exit 2>&-;};for i in 1 2;do eval D${i}0'(){ A'$i' $@;C0;};';for j in 2 3;do eval D$i$j'(){ x=$1;shift;A'$i' $@;C'$j' $x;};';done;done;trap C5 2;o=$({ A0;D10 0 N1+1 2;D10 0 $N1 1;B1;C2 27;B1&&! B2&&C2 28;D12 22 15 63;D10 0 N1+2 3;D10 0 N1+15 17;D13 3 0 N1+3 4;D13 4 0 N1+4 5;D13 N3+4 0 N1+9 59;for i in 0 1 2;do D13 N3+i 0 N1+5+i 6;done;D13 N3+3 0 N1+8 71;D13 9 1 10 7;D13 10 1 11 8;B2&&D13 18 19 53 67;D12 11 2 12 9;D12 12 3 13 10;D12 15 6 36 13;D12 45 20 52 66;D12 16 7 37 14;D13 17 8 15 38;D10 9 16 16 77 45;C4;B2&&D10 35 49 61 75 76 78 45;B2&&{ D10 28 17 45;C4;};D10 12 40 54 16 79 45;D10 12 39 54 16 80 45;D13 31 25 37 15;B2&&D13 19 21 0;B2&&D13 40 10 42;B2&&D12 2 29 35 46;D12 44 34 43 53;D12 25 22 20 32;D12 33 0 N1+14 51;D12 34 21 28 35;D13 35 27 29 36;A1 40 59 81;B3 18;A1 33 60 82;B8 18;B4 0 19 83;A1 27 32 39&&{ B3 20;B4 19 0;A2 33 33 40;B3 21;B6 20 21 3;};C2 36;D13 50 38 5 68;B4 19 0;D23 37 33 34 42;B2&&D13 46 35 45 55;D13 38 32 31 43;B2&&D13 59 4 65 76 91;D13 13 4 19 44 75 95 96;B1&&{ D13 53 5 55 75 69&&D13 51 6 58 31;D13 56 5 56 97 75 98&&D10 0 N1+7 99;D12 55 5 27 84; D13 61 5 54 75 70;D13 14 5 14 12;C4;};A1 13 44 74 18;C4;B3 4;B4 4 0 85;A2 14 61 89;B4 0 5 19;A1 17 41 20;B7 5;C3 8;B4 4 0 88;A2 14 24 89;C4;B4 0 6 19;B4 4 0 86;A2 14 61 89;B5 6 0;B4 6 6 73;B2&&{ A1 18 26 94;B7 6;B4 0 0 11;C3 23;};A1 18 26 94;B7 6;B4 0 0 11;C3 24;D13 60 14 66 92;D13 58 14 67 93;D13 26 4 21 24;D13 42 14 1 62;D13 43 37 2 90 48;D13 41 10 42;D12 48 36 47 25;A1 4 3 60&&{ B3 5;A2 14 61;B4 0 6 21;B4 5 0;A2 14 62;B4 0 0 21;B6 0 6 4;C3 5;};D12 32 21 68 35;D12 49 21 48 49;B4 4 22 57;A1 21 46 56;B7 22;B4 0 0 58;C3 47;D13 54 5 7 75 69;D13 57 4 64 76 91;D12 0 4 4 84;D12 1 4 51 84;D13 21 22 9 37;A1 23 18 28 89;B4 0 16 22;A1 16 25 33;B7 16;B4 0 0 34;D20 31 47;D13 52 4 8 41;C4;B4 4 12 26 89 23;for i in {0..3};do A1 0 N1+10+i 72;B7 12;B4 0 0 52;C3 N3+5+i;((i))||C4;done;A1 24 22 29;B7 12;B3 14;A2 39 57 30;B3 15;B6 14 15 4;C3 29;B4 4 13 27 89 65;A1 24 23;B7 13;C3 30;B4 4 0 87;A2 14 61 89 20;B4 0 16;A1 26 50 64;B7 16;C3 6;D13 7 11 6;A3; C2 39;C4;} 4>&2 2>/dev/null;);C5
    Copy the selected text to the Clipboard by pressing the key combination command-C.
    8. Launch the built-in Terminal application in any of the following ways:
    ☞ Enter the first few letters of its name into a Spotlight search. Select it in the results (it should be at the top.)
    ☞ In the Finder, select Go ▹ Utilities from the menu bar, or press the key combination shift-command-U. The application is in the folder that opens.
    ☞ Open LaunchPad and start typing the name.
    Click anywhere in the Terminal window and paste by pressing command-V. The text you pasted should vanish immediately. If it doesn't, press the return key.
    9. If you see an error message in the Terminal window such as "Syntax error" or "Event not found," enter
    exec bash
    and press return. Then paste the script again.
    10. If you're logged in as an administrator, you'll be prompted for your login password. Nothing will be displayed when you type it. You will not see the usual dots in place of typed characters. Make sure caps lock is off. Type carefully and then press return. You may get a one-time warning to be careful. If you make three failed attempts to enter the password, the test will run anyway, but it will produce less information. In most cases, the difference is not important. If you don't know the password, or if you prefer not to enter it, just press return three times at the password prompt. Again, the script will still run.
    If you're not logged in as an administrator, you won't be prompted for a password. The test will still run. It just won't do anything that requires administrator privileges.
    11. The test may take a few minutes to run, depending on how many files you have and the speed of the computer. A computer that's abnormally slow may take longer to run the test. While it's running, a series of lines will appear in the Terminal window like this:
    [Process started]
            Part 1 of 8 done at … sec
            Part 8 of 8 done at … sec
            The results are on the Clipboard.
            Please close this window.
    [Process completed]
    The intervals between parts won't be exactly equal, but they give a rough indication of progress. The total number of parts may be different from what's shown here.
    Wait for the final message "Process completed" to appear. If you don't see it within about ten minutes, the test probably won't complete in a reasonable time. In that case, press the key combination control-C or command-period to stop it. Then go to the next step.
    12. When the test is complete, or if you stopped it because it was taking too long, quit Terminal. The results will have been copied to the Clipboard automatically. They are not shown in the Terminal window. Please don't copy anything from there. All you have to do is start a reply to this comment and then paste by pressing command-V again.
    At the top of the results, there will be a line that begins with the words "Start time." If you don't see that, but instead see a mass of gibberish, you didn't wait for the "Process completed" message to appear in the Terminal window. Please wait for it and try again.
    If any private information, such as your name or email address, appears in the results, anonymize it before posting. Usually that won't be necessary.
    13. When you post the results, you might see an error message on the web page: "You have included content in your post that is not permitted," or "You are not authorized to post." That's a bug in the forum software. Please post the test results on Pastebin, then post a link here to the page you created.
    14. This is a public forum, and others may give you advice based on the results of the test. They speak only for themselves, and I may not agree with them.
    Copyright © 2014, 2015 by Linc Davis. As the sole author of this work, I reserve all rights to it except as provided in the Use Agreement for the Apple Support Communities website ("ASC"). Readers of ASC may copy it for their own personal use. Neither the whole nor any part may be redistributed.

Maybe you are looking for

  • "Disk not readable...", Verify & Repair fail, Zero Out, HFS+ still fail

    First, a time machine error came up saying the volume could not be found. Tried disk verify, disk repair (in disk utility) restarting, reconnecting, but to no avail. On restarting, computer says "Disk was not readable by this computer." I then Zeroed

  • All the steps involved in creating user attributes

    where is it documented on how to create user attributes that are stored in the ldap? I created a jspprovider channel, and I can get data out of the user attributes in the samplecontent.jsp by: JSPProvider p = (JSPProvider)pageContext.getAttribute("JS

  • One 30" or Two 24" Displays for Logic 9?

    Hi, would it be preferable to have one 30", or two 24", LCD displays for Logic 9 use specifically? The views, or windows (not sure what Logic calls them) will be mainly for audio/midi tracking, audio/midi editing, VI tracking and mixing of rock music

  • Compressor/FCP quits unexpectedly possibly due to ProMedia plug-in

    Hi all I am sending a finished project to Compressor from FCP, without rendering first. Much of the project is comprised of embedded Motion files. I keep getting a "quit unexpectedly possibly due to the ProMedia plug-in" alert. After repairing the HD

  • Photos-App: How do I find out which photos are used in a Shared Photo Stream?

    Hi folks, I just ecountered a "problem" using a Shared Photo Stream. FYI: I have circa 1.200 images stored in Photos-App. About 360 of them are used in a Shared Photo Stream. Now I'd like to delete all the fotos NOT used in said Stream. Since the ima