What String.intern() actually improve

Everyone is saying that calling String.intern() for comparison is a much better way to do than calling String.equals() method. I make a quick test to make sure about it before using in my program. However, it comes out as a surprise that by running a loop of 10 millions iterations, version of equals() spend 800 ms while vesion of intern() spend 3000 ms which is much longer.
Anyone has any idea why? Is .intern() really an improvement?
My code:
class testIntern {
public static void main(String[] args) {
String sTest = new String("Hello Everyone");
System.out.println(sTest.intern()=="Hello Everyone");
System.out.println("version".intern()=="version");
long x = System.currentTimeMillis();
int j = 0;
for (int i = 0; i < 10000000; i ++) {
sTest = new String("Hello Everyone");
if(sTest.intern() == "Hello Everyone") {
j++;
System.out.println(System.currentTimeMillis() - x);
System.out.println(j);
}

Grepping the JDK 1.5 source for the pattern "intern *(", I found 56 files. So far, I'm considering it an example of how not to use intern(). For example, in com.sun.org.apache.xml.internal.utils.NamespaceSupport2, we have this gem:
    void declarePrefix (String prefix, String uri)
                                // Lazy processing...
        if (!tablesDirty) {
            copyTables();
        if (declarations == null) {
            declarations = new Vector();
        prefix = prefix.intern();
        uri = uri.intern();
        if ("".equals(prefix)) {
            if ("".equals(uri)) {
                defaultNS = null;
            } else {
                defaultNS = uri;
        } else {
            prefixTable.put(prefix, uri);
            uriTable.put(uri, prefix); // may wipe out another prefix
        declarations.addElement(prefix);
    }So, they intern both the namespace prefix and URI, taking up space in the permgen. Then they use .equals() to compare those to a constant string, and put both values in standard Hashtables!
There are several cases where intern() is used to prevent the compiler from performing constant substitution:
    public final static String PREFIX_XMLNS = "xmlns".intern();It's a nice little trick, when your constants are likely to change: no need to recompile dependent classes. However, since this particular prefix is defined by the W3C namespace spec, the trick is of very dubious value here.
There are a few cases, such as in java.lang.Class, where intern() is used so that you can do a fast string search over a fixed array. I suspect these cases exist to avoid a dependency on Map. Whether or not a simple equals() would have been sufficient is an open question.

Similar Messages

  • Doubt about string.intern()

    Hello
    I have a doubt about string.intern() method.
    The document says
    When the intern method is invoked, if the pool already contains a string equal to this String object as determined by the String.equals(Object) method, then the string from the pool is returned.
    So what is the point of using this intern() method with == or != operators if it aleady calling to equals method internally?
    eg:
    if (studentObject.getName().intern() == "Student Name") {}cannot be better than
    if (studentObject.getName().equals("Student Name")) {}Can someone please explain?

    Easy dude.
    >
    Why do you need to optimize it?>
    Because i want to.
    I would avoid the whole stupid 100 line if-else by doing a Map of type->object and then just clone() the object. But maybe that might not be suitable or "fast enough" for you.I cannot do above because object have it's own behaviors varying at run time
    eg - class One has setOne method and class hundred has setHundred method
    . Even if i use a map and clone it again i have to use above comparison for setting those behaviours.
    Explain your actual problem you're trying to solve, with actual cases. What are these "one" and "Hundred" classes really? Or is your project so top secret that you can't tell us?It is not secret but big. And I need to make the question understandable. If I post the whole code no one will looking at it.
    Now you asking so please have a look.
    still I have cleaned up many.
    My initial question was how to bit speed up the comparison? And can't i use intern() Because here if I got plenty of rectangles(it is the last) performace sucks.
    for (CObject aObject : objList) {
                if (aObject.getType().equals(SConstant.TEMPLATE)) { /* process Template */
                    Template tObj = (Template) aObject;
                    org.apache.velocity.Template template = VelocityTemplateManager.getInstance().getObjectTemplateFromFile(retemplateProperties.getProperty("PAGE"));
                    VelocityContext context = new VelocityContext();
                    StringWriter writer = new StringWriter();
                    context.put(retemplateProperties.getProperty("BAND_OBJECT"), dtmBand);
                    tObj.setTags(writer.toString());
                } else if (aObject.getType().equals(SConstant.LINE)
                        && !isInBandandBandAutoAdjust(aObject)) {
                    Line object = (Line) aObject;
                    org.apache.velocity.Template template = VelocityTemplateManager.getInstance().getObjectTemplateFromFile(retemplateProperties.getProperty("LINE"));
                    VelocityContext context = new VelocityContext();
                    StringWriter writer = new StringWriter();
                    updateContextWithCheckShifting(context, object);
                    context.put(retemplateProperties.getProperty("LINE_OBJECT"), object);
                    template.merge(context, writer);
                    object.setTags(writer.toString());
                } else if (aObject.getType().equals(SConstant.IMAGE) /* process Image */
                        && !isInBandandBandAutoAdjust(aObject)) {
                    REImage imageObject = (REImage) aObject;
                    org.apache.velocity.Template template = VelocityTemplateManager.getInstance().getObjectTemplateFromFile(retemplateProperties.getProperty("IMAGE"));
                    VelocityContext context = new VelocityContext();
                    updateContextWithCheckShifting(context, imageObject);
                    context.put(retemplateProperties.getProperty("IMAGE_OBJECT"), imageObject);
                    mageObject.setTags(writer.toString());
                   else if (aObject.getType().equals(SConstant.RECTANGLE) /* process Rectangle */
                        && !isInBandandBandAutoAdjust(aObject)) {
                    Rectangle rectangleObject = (Rectangle) aObject;
                    org.apache.velocity.Template template = VelocityTemplateManager.getInstance().getObjectTemplateFromFile(retemplateProperties.getProperty("RECTANGLE"));
                    VelocityContext context = new VelocityContext();
                    StringWriter writer = new StringWriter();
                    updateContextWithCheckShifting(context, rectangleObject);
                    context.put(retemplateProperties.getProperty("RECTANGLE_OBJECT"), rectangleObject);
                    template.merge(context, writer);
                    rectangleObject.setTags(writer.toString());
                }And masijade
    Thank you very much for the better explanation.

  • In which cases does String.intern() increase the performance?

    I'm optimizing my program and I wonder when I should use the String.intern() method to increase my performance. Is there a downside of using the intern() method?

    paul.miner wrote:
    kajbj wrote:
    I have once implemented a system where intern was called on all strings when they arrived from a socket, and all comparisons was done using == after that. The reason was actually performance since we had to compare lots and lots of strings often. There is however a drawback with it. calling intern() when you have many strings in the pool is very slow (I would guess that it was linear time). You it's now always that you can improve performance by calling intern and comparing with ==Good point.
    I think if I was in this position though, I'd create my own interned string pool instead of cluttering the one in String.We tried that as well. We pretty much did everything we could think of to reduce memory footprint while gaining execution time. Startup time was not of importance so it was not a problem that it took an hour to start the system.

  • How do I find out what the internal error was?

    I got a fatal internal error when I pressed the "Show Errors" button under Windows->Show Errors menu option.
    Silly me, I didn't write it down. When I relaunched LabView, it offered to go and try to diagnose the error,
    but not I can't find any trace of what the error actually was! Obviously, I should have written it down,
    but why didn't Labview also record the error?

    Hi Doughera!
    When you say: "When I relaunched LabView, it offered to go and try to diagnose the error", do you mean that LabVIEW gave you the option of Investigate Now, Investigate Later, & Do Not Investigate? Assuming this is what you are referring to, by choosing either Investigate Now or Investigate Later, LabVIEW will generate an error log .txt file. This file is automatically placed in your My Documents\LabVIEW Data\lvfailurelog folder.
    Hope this helps!
    Travis H.
    National Instruments
    Travis H.
    LabVIEW R&D
    National Instruments

  • What is the actual size of an (empty) varray in a record?

    what is the actual size occupied by an (empty) varray in a record?
    For example, if I create my table defined as:
    create or replace type XXX as object (
    myRefs VARRAY(10) of REF(yyy)
    create table YYY as XXX;
    what is the actual size of the record of type XXX when 'myRefs' is empty? For some reason, select data_length from all_tab_cols where table_name = YYY seems always to return 3K as the length of column myrefs.... is that correct? If not, what is the correct size?

    A tad late here...
    Storage sizes of REF attributes are described here:
    [Design Considerations for REFs - Storage Size of REFs|http://download.oracle.com/docs/cd/E11882_01/appdev.112/e11822/adobjdes.htm#i452226]
    The size of your REF attribute (or element, in your case) will depend on whether it is primary key-based or system-generated, whether it is scoped or not, and whether it carries with it a rowid hint. The overall size of your VARRAY attribute as it grows will also depend on whether you allow null REF values or not, but essentially will be the size of your REF multiplied times the number of elements in your VARRAY (plus a small, constant amount of storage for internal housekeeping, both for the attribute and for each element).
    You could try the VSIZE function as an appromixation...
    [Oracle® Database SQL Language Reference - VSIZE|http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/functions233.htm#SQLRF06162]
    Hope it helps...
    Gerard

  • Question about the java doc of String.intern() method

    hi all, my native language is not english, and i have a problem when reading the java doc of String.intern() method. the following text is extract from the documentation:
    When the intern method is invoked, if the pool already contains a string equal to this String object as determined by the equals(Object) method, then the string from the pool is returned. Otherwise, this String object is added to the pool and a reference to this String object is returned.
    i just don't know the "a reference to this String object is returned" part, does the "the reference to this String" means the string that the java keyword "this" represents or the string newly add to the string pool?
    eg,
    String s=new String("abc");  //create a string
    s.intern();  //add s to the string pool, and return what? s itself or the string just added to string pool?greate thanks!

    Except for primitives (byte, char, short, int, long, float, double, boolean), every value that you store in a variable, pass as a method parameter, return from a method, etc., is always a reference, never an object.
    String s  = "abc"; // s hold a reference to a String object containing chars "abc"
    foo(s); // we copy the reference in variable s and pass it to the foo() method.
    String foo(String s) {
      return s + "zzz"; // create a new String and return a reference that points to it.
    s.intern(); //add s to the string pool, and return what? s itself or the string just added to string pool?intern returns a reference to the String object that's held in the pool. It's not clear whether the String object is copied, or if it's just a reference to the original String object. It's also not relevant.

  • What is internal table? read the another questions

    What are internal tables? How do you get the number of lines in an internal table? How to use a specific number occurs statement?
    send me replay also

    hi,
    try this links....
    http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb35de358411d1829f0000e829fbfe/content.htm
    An internal table is one of two structured data types in ABAP. It can contain any number of identically structured rows, with or without a header line.
    The header line is similar to a structure and serves as the work area of the internal table. The data type of individual rows can be either elementary or structured.
    Internal tables provide a means of taking data from a fixed structure and storing it in working memory in ABAP. The data is stored line by line in memory, and each line has the same structure. In ABAP, internal tables fulfill the function of arrays. Since they are dynamic data objects, they save the programmer the task of dynamic memory management in his or her programs. You should use internal tables whenever you want to process a dataset with a fixed structure within a program. A particularly important use for internal tables is for storing and formatting data from a database table within a program. They are also a good way of including very complicated data structures in an ABAP program.
    Fields of Internal Tables
    SY-TABIX
    Current line of an internal table. SY-TABIX is set by the statements below, but only for index tables. The field is either not set or is set to 0 for hashed tables.
    APPEND sets SY-TABIX to the index of the last line of the table, that is, it contains the overall number of entries in the table.
    COLLECT sets SY-TABIX to the index of the existing or inserted line in the table. If the table has the type HASHED TABLE, SY-TABIX is set to 0.
    LOOP AT sets SY-TABIX to the index of the current line at the beginning of each loop lass. At the end of the loop, SY-TABIX is reset to the value that it had before entering the loop. It is set to 0 if the table has the type HASHED TABLE.
    READ TABLE sets SY-TABIX to the index of the table line read. If you use a binary search, and the system does not find a line, SY-TABIX contains the total number of lines, or one more than the total number of lines. SY-INDEX is undefined if a linear search fails to return an entry.
    SEARCH <itab> FOR sets SY-TABIX to the index of the table line in which the search string is found.
    SY-TFILL
    After the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TFILL contains the number of lines in the relevant internal table.
    SY-TLENG
    After the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TLENG contains the length of the lines in the relevant internal table.
    SY-TOCCU
    After the statements DESCRIBE TABLE, LOOP AT, and READ TABLE, SY-TLENG contains the initial amount of memory allocated to the relevant internal table.
    i think this will solve your problem don't forget to reward points.
    regards,

  • BareCode reader and insert String into actual selected JTextField

    Hi everyone,
    I can't invent anything appropriate about my concept. I would like to write a program for BareCode reading. I have working code witch gets a text string from reader which is connected over RS232. But I have to send this String to actual selected JTextField in other java program. I think to use clipboard to overcome this problem but I'm not sure if it's a good solution. Copy this String to clipboard and auto Paste... Any ideas ?
    Please help me!
    Many thanks for any advices :)

    Hmm... I missed that bit about having to poke it into
    another Java program. In that case I would
    look into modifying the other Java program instead of
    trying to write a separate program to deal with it.
    Otherwise you run into management issues like making
    sure the other program is running, and not minimized,
    and located at the right place on the screen, and has
    the JTextField in question in focus, and so on.In most cases, I would agree. But if his java program is header-less and just responds to the serial events and calls Robot.keyPress() and Robot.keyRelease() he will just be imitating the keyboard, which is exactly what most barcode readers can already do. And this would work in any program that can get keyboard input, no matter what the language was written in.
    We are currently doing this with a web-based application. The web page just has a text field and when they scan the barcode it submits the page. Of course the barcode reader we are using just imitates the keyboard, no mucking around converting serial data into keyboard events.
    I bet if the OP looks around he could find software that will already convert the barcode RS232 data into keyboard events.

  • What is International business Division related bond licences, ARE forms?

    What is International business Division related bond licences, ARE forms?

    Hi Goutam
    In International Business, to encourage the exporters, Government of India have introduced various incentive schemes to bring more revenue to country.  Listing a few for your information.
    <b>1)  Duty Entitlement Pass Book Scheme
    </b>
    Duty Entitlement Pass Book Scheme (DEPB Scheme)- The scheme is easy to administer and more transparent. The scheme is similar to Cenvat credit scheme. The exporter gets credit when he exports the goods. The credit is on basis of rates prescribed. This credit can be utilised for payment of customs duty on imported goods.
    The objective of the scheme is to neutralise incidence of customs duty on the import content of export product. The neutralisation shall be provided by way of grant of duty credit against the export product.
    Exports under DEPB scheme are allowed only when DEPB rate for the concerned export product is finalised.
    Under this scheme, exporters will be granted duty credit on the basis of notified entitlement rates. The entitlement rates will be notified by DGFT. The entitlement rates will be a % of FOB.  The entitlement rate will be fixed on basis of SION (Standard Input Output Norms) and deemed import content. Value addition achieved in export product will also be taken into account.  Supplies made to unit in SEZ are also entitled to DEPB.  DEPB is issued only on post-exportation basis. Excise duty paid in cash on inputs will be eligible for brand rate of duty drawback.
    <b>2)  Export Promotion Capital Goods (EPCG) scheme
    </b>
    EPCG scheme - Under Export Promotion Capital Goods (EPCG) scheme, a licence holder can import capital goods (i.e. plant, machinery, equipment, components and spare parts of the machinery) at concessional rate of customs duty of 5% and without CVD and special duty. Computer software systems are also eligible. Import of spares of capital goods is permitted, without any limit. Jigs, fixtures, dies, moulds will be allowed to the extent of 100% of CIF value of licence. Spares for existing plant and machinery can also be imported. Second hand capital goods upto 10 year old can also be imported under EPCG scheme.
    EPCG authorisation is issued with validity period of 24 months
    <b>3)  Advance License</b>
    An advance licence is granted for the import of inputs without payment of basic customs duty. Such licences shall be issued in accordance with the policy and procedure in force on the date of issue of the licence and shall be subject to the fulfillment of a time-bound export obligation, and value addition as maybe specified. Advance licences maybe either value based or quantity based.
    As per the latest amendments to the EXIM Policy, the facility of Back to Back Inland Letter of Credit has been introduced, to enable an Advance Licence holder to source his inputs from domestic suppliers.
    Value based advance license
    Under a value based advance licence, any of the inputs specified in the licence maybe imported within the total CIF value indicated for those inputs, except inputs specified as sensitive items.
    Under a value based advance licence, both the quantity and the FOB value of the exports to be achieved shall be specified. It shall be obligatory on the part of the licence holder to achieve both the quantity and FOB value of the exports specified in the licence.
    <b>4)  Drawback
    </b>
    Drawback is allowable if any manufacture, process or any operation is carried out in India [section 75(1) of Customs Act]. Thus, drawback is available not only on manufacture, but also on processing and job work, where goods may not change its identity and no ‘manufacture’ has taken place.
    Type of Drawback Rates – All Industry Drawback rates are fixed by Directorate of Drawback, Dept. of Revenue, Ministry of Finance, Govt. of India, Jeevan Deep, Parliament Street, New Delhi - 110 001. The rates are periodically revised - normally on 1st June every year. Data from industry is collected for this purpose. The types of rates are as follows :
    <b>All Industry Rate</b> - This rate is fixed under rule 3 of Drawback Rules by considering average quantity and value of each class of inputs imported or manufactured in India. Average amount of duties paid is considered. These rates are fixed for broad categories of products. The rates include drawback on packing materials. Normally, the rates are revised every year from 1st June, i.e. after considering the impact of budget, which is presented in February every year. All Industry drawback rate is not fixed if the rate is less than 1% of FOB Value, unless the drawback claim per shipment exceeds Rs 500.
    The AIR (All Industry Rate) is usually fixed as % of FOB price of export products. However, in respect of many export products, duty drawback cap (ceiling) has been prescribed, so that even if an exporter gets high price, his duty drawback eligibility does not go above the ceiling prescribed.
    <b>Brand Rate</b>  - It is possible to fix All Industry Rate only for some standard products. It cannot be fixed for special type of products. In such cases, brand rate is fixed under rule 6. The manufacturer has to submit application with all details to Commissioner, Central Excise. Such application must be made within 60 days of export. This period can be extended by Central Government by further 30 days. Further extension can be granted even upto one year in if delay was due to abnormal situations as explained in MF(DR) circular No. 82/98-Cus dated 29-10-1998.
    <b>Special Brand Rate</b> - All Industry rate is fixed on average basis. Thus, a particular manufacturer may find that the actual duty paid on inputs is higher than All Industry Rate fixed for his product. In such case, he can apply under rule 7 of Drawback Rules for fixation of Special Brand Rate, within 30 days from export. The conditions of eligibility are (a) the all Industry rate fixed should be less than 80% of the duties paid by him (b) rate should not be less than 1% of FOB value of product except when amount of drawback per shipment is more than Rs. 500 (c) export value is not less than the value of imported material used in them - i.e. there should not be ‘negative value addition’.
    <b>5)  ARE Forms
    </b>
    Any goods manufactured in India and exported, means the rebate of duty or tax, as the case may be, chargeable on any imported materials or excisable materials used or taxable services used as input services in the manufacture of such goods. To account all these transactions, Central Excise have asked the manufacturers to submit various forms depending upon their business.  ARE form is mainly used for exports for claiming excise duty either by Letter of Undertaking, Bond or Rebate.
    Last but not least, unfortunately, in SAP, but for excise, none of the issues are addressed.
    Hope this information would suffice.  Reward if this helps you.
    Thanks
    G. Lakshmipathi

  • Hi Friends what are the actual differences between  AT NEW & ON CHANGE

    what are the actual differences between  AT NEW & ON CHANGE ? can you list some of the differences?

    Hi,
    At New
    1. When a new record comes at new triggers. Atnew only used inside loop and endloop.
    2. At new is controlbreak statment on at new the left side field change, the event
    trigers and the values become 0 and *
    On Change
    1. On change of works same like at-new but the diff is it can be used out side of a loop,like select and endselect,case endcase.
    2.. on change of is not a control break statement and we can use onchange of out side the loop
    and
    The Major difference between the two is that AT NEW can be used ONLY for INTERNAL TABLES, while ON CHANGE OF can be used for any loop processing i.e do..enddo, while..endwhile and loop..endloop also.
    AT NEW <field>
    The block will be executed when the SY-TABIX is 1 (or) when the SY-TABIX 1 value has a change with the SY-TABIX value.
    With this block the field towards the right to the field are not accessable with in the block, and are shown with '*'. They can be accessed outside the block.
    ON CHANGE OF <itab>-<field>
    The block also works similar to the AT First. In this block all the fields are accesseble.
    ON CHANGE OF triggers whenever there is a change in that particular field.
    AT NEW triggers whenever there is a change in the fields before that particular field.ie. if there is a change in that combinations from the first field.
    On change off' works on variabels. The 1st time the statement isreached a memory copy is made of the value. The next time the statementis reached, the current value is compared to the stored value. If thereis a difference, the coding between ON... and ENDON. is executed. Youcan use this for a table workarea field, but if you have the table loopin a routine and the routine called several times, you can get unwantedresults. (Check the value of the last loop with the value of the firstnew loop.)
    The AT NEW (and others like AT END OF...) are specially for table loopprocessing. The coding between AT new FIELD and ANDAT is triggerdwhenever a the field or any field defined to the left is changed. Yourtable should be sorted by all fields from the left up to the consideredFIELD. Btw all fields to the right contain *, so it can be usefull tohave a second workarea filled to be printed or what ever you want.
    REWARD IF HELPFUL
    RAAM

  • What does "Internal+Server+Error {error,badarg}" mean?

    What does "Internal+Server+Error {error,
    badarg}" mean?  I get this message on certain sites and whenever I try to install the updated versions of Adobe.

    Since you have issues with Adobe installation I would suggest you to check with Adobe on this. 
    Arnav Sharma | http://arnavsharma.net/ Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading
    the thread.

  • What is the ACTUAL storage space?

    I'm considering getting an MBA, but what is the actual storage space available on MBA with all the standard applications of leopard installed? I seem to remember my imac had 20 to 40 gb already taken up by standard software when i unpacked it last summer.

    If you are planning to get the SSD version at 60GB, be aware that the formatted space is about 55GB, You would need to find a separate usb drive for your vast music library unless you can pare it down as one does for inclusion on the iPhone. You can get the Leopard install down to maybe 11GB by eliminating language and printer support. You need to realize that you can use external storage and that you need to maintain at least ten percent or more free space on the internal drive.

  • How can I see what I'm actually video recording on iPad Air so that I don't include extra stuff at the borders of the image? It seems to automatically "zoom in" on the screen, but when I export the video, the picture isn't framed well.

    When I try to record a video on the Ipad Air, the screen automatically "zooms in" closer than when I'm taking a photo. So I frame the interview and record it. But when I export it to post it or edit it, I discover that only the screen was zoomed in, the camera wasn't, so I have all this extra stuff around the edges of my frame.
    I don't need to zoom in, but I do need to be able to see what I'm shooting--otherwise, as I'm videotaping, I'm guessing at my picture's framing. But every time I switch from photo to video mode, the screen "zooms in." How can I see what I'm actually recording?
    I've been searching for an answer for this for a while, but I can't find any responses to it! Thanks.

    Make sure that you allow pages to choose their colors and that you haven't enabled High Contrast in the Accessibility settings.
    *Firefox > Preferences > Content : Fonts & Colors > Colors : [X] "Allow pages to choose their own colors, instead of my selections above"
    See also:
    *http://kb.mozillazine.org/Images_or_animations_do_not_load
    *https://support.mozilla.org/kb/Images+or+animations+do+not+show

  • What happens internally while loading master data and transaction?

    hello,
    What happens internally and which tables are used while loading master data and transaction?
    I have loaded the data in DSO, but i am not getting value of particular InfoObject after loading the data.
    I have executed Attribute change run also.
    Kindly explain ...
    Thanks,
    Sonu

    Hi,
    Master data,
    Material Indipendent data can be sent without any dependency.
    Material Dependent data sequence is as follow.
    Plant,
    MRP areas,
    Supply area,
    Material,
    MRP area material,
    planning material,
    ATP check,
    Purchase info recards,
    schedule agg,
    PPM or PDS (But before PPM or PDS  work center should send to apo) If PDS is sending then BOM should send before PDS.
    Transaction data.
    As per the business requirement what is planning in apo.
    Regards,
    Kishore Reddy.

  • HT5676 my macpro (10.6.8) refused to install wireless printer (canon pixma MG4260). Whenever i tried to install, it keeps saying 'internal error number 12'. Please help!! and what does internal error got to do with installing a printer?

    my macbook pro (10.6.8) refused to install wireless printer (canon pixma MG4260). Whenever i tried to install, it keeps saying 'internal error number 12'. Please help me!! and what does internal error got to do with installing a printer?

    my macbook pro (10.6.8) refused to install wireless printer (canon pixma MG4260). Whenever i tried to install, it keeps saying 'internal error number 12'. Please help me!! and what does internal error got to do with installing a printer?

Maybe you are looking for

  • Help me to Create this Process Chain

    Hi Gurus, We have 3 Process chains, 1) Region 1 2) Region 2 3) Region 3 These three process chains were start at differt times and end time will depends upon the load of data. Now i want to do some manual calculations after the successful execution o

  • Downgrade to iWeb 08

    How do I downgrade back to iWeb 08? iWeb 09 is too freaking buggy, keeps quitting on me whenever I try to open one of the pages.

  • How do I get the internet to work in bootcamp?

    *I run my internet on an ethernet cable that plugs into a modem that plugs into another little box. When I start up windows on my mac I can't get internet for some reason. How can I setup a network that will allow me to use the internet?*

  • Can I bring in Invoice Memo Text using Invoice Interface Tables?

    Is there's a way to bring in Memo Lines using Invoice Interface tables. I got a need of converting around 5000 characters from legacy system to Oracle into Multiple Memo lines. I know that each memo line at the invoice level has 2000 character limit.

  • IPhoto says "unable to connect to Photo Stream"

    So I just re-did my OS on my iMac, so everything was started from a clean slate. I started adding user accounts, and had no problems whatsoever setting up my iCloud and PhotoStream in iPhoto. With that being said, after creating my moms user account,