Jikes Bytecode Toolkit
Jikes Bytecode Toolkit is a 100% Java class library that enables Java programs to create, read, and write binary Java class files and to query and update a single, high-level representation of the collection of them, including relationships among them. These features allow the development of tools that report on what APIs the classes use, reorder and change instructions, merge or extend classes, add customized instrumentation (similar to profilers), analyze control and data flow, etc.
http://www.alphaworks.ibm.com/tech/jikesbt?open&ca=dgr-awjw03jikesbt
I was pointed out that sample did not include any source, which makes it
hard to run or change.
A new version of the Eclipse Monitor sample should be available soon at
AlphaWorks.
Chris Laffra
"Chris Laffra" <[email protected]> wrote in message
news:bi0iog$dm7$[email protected]..
> If you are interested in visualizing eclipse plugins (watching pre-canned
> ones or creating your own), check out the Eclipse Monitor shipped with the
> Jikes Bytecode Toolkit (jikesBT). Using bytecode instrumentation, plugin
> jars are modified and the resulting introspection events are used to draw
> plugins and their communication and execution:
>
> http://www.alphaworks.ibm.com/tech/jikesbt
>
> The visualization runtime is a plugin itself and declares an extension
point
> for people to define their own custom visualization (a sound generator and
> profiling tool is included). All this to be demoed at OOPSLA'03 at the
> demonstrations and posters track:
>
> http://oopsla.acm.org
>
> The Eclipse Monitor is shipped as an example in source code with JikesBT,
> because frankly we don't quite know what to do with it yet.
Recommendations
> (such as moving it to an eclipse technology under CPL) are welcome.
>
> Chris Laffra
> principal author of JikesBT and the Eclipse Monitor
> IBM Ottawa
>
>
>
Similar Messages
-
Null Pointer Exception and Illegal Arguement when ran with Wireless Toolkit
The following code throws a null pointer exception after it tried to initialize the textBox. I am not sure if there is something I am not importing, or if it's just because I'm sick and my head is cloudy. :-}.
I am using Wireless Toolkit 2.2 and Java 5.0
Anyhelp would be appreicated. Thank You.
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class TacticalTestMain extends MIDlet implements CommandListener {
private Display display;
private Form formMain;
private TextBox tbHelp; //Text Box for help Command
private Command cmExit; //A button to exit midLet
private Command cmBack; //Go "back" to main form
private Command cmHelp; //Ask for help
public TacticalTestMain()
display = Display.getDisplay(this);
formMain = new Form("Tactical Survey Program");
cmExit = new Command("Exit", Command.SCREEN, 1);
cmBack = new Command("Back", Command.BACK, 1);
cmHelp = new Command("Help", Command.HELP, 1);
formMain.addCommand(cmExit);
formMain.addCommand(cmBack);
formMain.addCommand(cmHelp);
formMain.setCommandListener(this);
System.out.println("Before Create Text Box");
//Create the help textBox with a max of 25 charecters
tbHelp = new TextBox("HeLp", "You can press the back button", 25, 0);
tbHelp.addCommand(cmBack);
tbHelp.setCommandListener(this);
System.out.println("AfTER Create Text Box");
}//end constructor
public void startApp()
System.out.println("Inside StartApp()");
display.setCurrent(formMain);
}//end startApp()
public void pauseApp()
}//end pauseApp
public void destroyApp(boolean unconditional)
notifyDestroyed();
}//end destroyApp()
//Check to see if the exit button was selected
public void commandAction(Command c, Displayable d)
System.out.println("Inside commandAction()");
String sLabel = c.getLabel();
if(sLabel.equals("Exit"))
destroyApp(true);
Errors from the KToolbar:
Running with storage root DefaultColorPhone
Before Create Text Box
Unable to create MIDlet TacticalTestMain
java.lang.IllegalArgumentException
at javax.microedition.lcdui.TextField.setChars(+105)
at javax.microedition.lcdui.TextField.setString(+27)
at javax.microedition.lcdui.TextField.<init>(+134)
at javax.microedition.lcdui.TextBox.<init>(+74)
at TacticalTestMain.<init>(+134)
at java.lang.Class.runCustomCode(+0)
at com.sun.midp.midlet.MIDletState.createMIDlet(+19)
at com.sun.midp.midlet.Selector.run(+22)
Execution completed.
743701 bytecodes executed
23 thread switches
741 classes in the system (including system classes)
4071 dynamic objects allocated (120440 bytes)
2 garbage collections (91412 bytes collected)Hi zoya,
Here is the problem:
tbHelp = new TextBox("HeLp", "You can press the back button", 25, 0);
This line declares a maximum textbox size of 25 but in reality he is declaring a textbox of size 29.
Thats why it is throwing the illegal argument.
happy coding :) -
Hello everytime I try to run a program in the wirless toolkit, the program
transfers to the emulator but when I click launch I get this error
Running with storage root DefaultGrayPhone
Method............: 100d2aa8 'com/sun/midp/midlet/MIDletState.createMIDlet
(static)'
Stack Chunk.......: d189a0
Frame Pointer.....: d189fc
Current IP........: 10128592 = 10128584 + offset 14
Previous Frame....: d189c0
Previous IP.......: 1012052b (offset 22)
Frame size........: 8 (1 arguments, 7 local variables)
Argument[0].......: d197e4
Local[1]..........: 0
Local[2]..........: d189c0
Local[3]..........: d28804
Local[4]..........: d189d4
Local[5]..........: 100dcdd0
Local[6]..........: d189a0
Local[7]..........: 1015f0a0
Operand[1]........: d197e4
Method............: 100cd0e4 'com/sun/midp/midlet/Selector.run (virtual)'
Stack Chunk.......: d189a0
Frame Pointer.....: d189c0
Current IP........: 1012052b = 10120515 + offset 22
Previous Frame....: 0
Previous IP.......: 1
Frame size........: 6 (1 arguments, 5 local variables)
Argument[0].......: d19a28
Local[1]..........: d28a14
Local[2]..........: d197e4
Local[3]..........: 0
Local[4]..........: 0
Local[5]..........: 0
Operand[1]........: d28a14
VM status:
Instruction pointer.: 10128592 (offset within invoking method: 14)
Next instruction....: 0x4c
Frame pointer.......: d189fc
Local pointer.......: d189dc
Stack size..........: 128; sp: d18a14; ranges: d189a8-d18ba8;
Contents of the current stack frame:
d189dc: d197e4 (lp)
d189e0: 0
d189e4: d189c0
d189e8: d28804
d189ec: d189d4
d189f0: 100dcdd0
d189f4: d189a0
d189f8: 1015f0a0
d189fc: d189c0 (fp)
d18a00: 1012052b
d18a04: d189d8
d18a08: 100d2aa8
d18a0c: d189a0
d18a10: 0 (end of frame)
d18a14: d197e4 (sp)
Execution stack contains 112 items:
d19a28
d28a14
d197e4
0
0
0
0
1
d189a4
100cd0e4
d189a0
0
d28a14
d197e4
0
d189c0
d28804
d189d4
100dcdd0
d189a0
1015f0a0
d189c0
1012052b
d189d8
100d2aa8
d189a0
0
d197e4
Execution completed.
435733 bytecodes executed
8 thread switches
486 classes in the system (including system classes)
2406 dynamic objects allocated (69836 bytes)
1 garbage collections (0 bytes collected)
ALERT: java/lang/ClassFormatError: Bad version information.
Execution completed.
435733 bytecodes executed
8 thread switches
486 classes in the system (including system classes)
2406 dynamic objects allocated (69836 bytes)
1 garbage collections (0 bytes collected)
Can anyone tell me why I get this. I have now tried my own progam and a few
other example programs and it is always the same.
Thanks,
Justin.Have you installed jdk 1.5? if so, try installing jdk1.4x too and get wtk to use that. (reinstall wtk if neccessary and point to 1.4 folder). No need to install a public 1.4 jre by the way. That sorted my problems anyway.
-
Hi,
I more or less wrote a small binary instrumentation toolkit which is needed for special purposes. I create a class with two methods at runtime. First method is the default constructor ( needed for instance creation ), and single, not static, method containing whatever.
The bytecode of the second method was cutted out from another class. All needed references in the bytecode are fixed correctly. I pass an additional parameter when i call the method. This parameter is the this-instance of the original method. My idea was to replace all
opcodes which are using the this reference by the additional passed reference of the original this-instance.
For not beeing forced to change all related this-instance opcodes, i thought maybe it is possible to overwrite the this instance like that:
0 wide
1 aload 5
4 wide
5 astore 0What this code does is it pushed the reference of the 6th element of the method stack and stores it in the first slot on the stack, which is reserved for the this instance if the method is a non-static one.
Currently i get following error when i try to call the method:
"Exception in thread "main" java.lang.VerifyError: (class: OHP1239475266A, method: OHP1239475266AM signature: (ILjava/lang/String;D[Ljava/lang/Integer;Lmuh/AClassWithAMethod;)Ljava/lang/Boolean;) Incompatible type for getting or setting field"
Any idea whether this error could be connected the my technique to overwrite the this instance of a method ? Maybe this is considered to be an illegal technique.
Thank you for your help,
bgnahmhttp://jakarta.apache.org/bcel/
The Byte Code Engineering Library is intended to give users a convenient possibility to analyze, create, and manipulate (binary) Java class files (those ending with .class). Classes are represented by objects which contain all the symbolic information of the given class: methods, fields and byte code instructions, in particular.
Such objects can be read from an existing file, be transformed by a program (e.g. a class loader at run-time) and dumped to a file again. An even more interesting application is the creation of classes from scratch at run-time. The Byte Code Engineering Library (BCEL) may be also useful if you want to learn about the Java Virtual Machine (JVM) and the format of Java .class files.
BCEL contains a byte code verifier named JustIce, which usually gives you much better information about what's wrong with your code than the standard JVM message. -
How to visualize java bytecode?
Hey guys
I'm here again with another question for you.
That you know, is there a way to visualize and see the bytecode of a program in Java? if yes can you please tell me how to do this?
Thanks in advance.
MaddyI dont think u can insert anything into to a .class file.So not true. How do javac, jikes, jasmin and several other compilers / translators work then?
There are several APIs for doing that. Check the link I gave. And this: http://directory.google.com/Top/Computers/Programming/Languages/Java/Class_Libraries/Data_Formats/Java_Class_Files/
CafeBabe is a graphical tool but it is far from finished right now: http://jfa.javalobby.org/projects/CafeBabe.html
I'm sure there are lots of others... I was browsing the 'net the other day and became momentarily intressed in this. I found a myriad of different tools - even graphical ones - but I can't seem to be able to find them now :(
infact as far as i know, even if u delete a char and retype the same char the verifier will complain.If you use a text editor, of course. The different character encodings and null bytes mix things up pretty badly, you know... You can't even open and save an casual GIF file in Notepad so that the result will be valid GIF! -
Hi all,
I'm trying to make a package of Vis to easily make Excel reports with Signal Express. I'm working on LabVIEW 8.2.1.
I'm using the report generation toolkit, so I build a .llb from my project which contains all the hierarchy of my steps, but also the hierarchy of dynamic VIs called.
I have made some steps, like "Open Workbook", "Write Data", etc.
My steps run well, excepts one step : "Close Workbook".
If my "Close Workbook" step is firing on "Run" Signal Express event, I have no error, so my reference is properly closed.
But if my "Close Workbook" step is firing on "Stop" Signal Express event, I have an error "1", from "Generate Report Objectrepository.vi".
I feel that I'm trying to use a reference which has been killed in the "Stop" step...
I would like to know what exactly do Signal Express on "Stop" event and why my close function does'nt run well.
Thanks,
CallahanHi Callahan,
SignalExpress (SE for short) does the following on the Stop event:
1. Takes the list of parameters that SE found on your VI's connector pane, and sets the values that the user set from the "Run LabVIEW VI" configuration page, if any.
2. Then tells the VI that SE is running the Stop event by setting the Enum found on your VI's front panel. This in turn should produce some boolean values telling your VI to execute the Stop case.
3. The VI is then run, with those values and states.
4. SE checks to see if any errors where returned.
5. Since this is the Stop event, SE releases the reference to the VI which it possesses.
Questions for you would be, is the reference to your Workbook linked to a control on your connector pane, or held in a uninitialized Shift Register. If it's held in a Shift Register, SE would not be aware of it, and would not be able to affect that reference.
Hope that helps. Feel free to post your LLB if it doesn't.
Phil -
Report Generation Toolkit Error (undefined erro)
Does anybody know what error -214 682 7864 (0x800A01A8) means when coming from the Report Generation Toolkit.
I have an app which has been happily ticking over for several weeks, and then this error was generated when attempting to write a table to a spreadsheet. The error was generated all the way down in NIReportGenerationToolkit.lvlib:Excel_Get_range.vi (this is the ActiveX code).
Any ideas?
nrp
CLAnrp wrote:
I have an app which has been happily ticking over for several weeks, and then this error was generated when attempting to write a table to a spreadsheet.
Was it the first time you attempted to write the table to that spreadsheet?
Maybe the error is due to the spreadsheet grown oversize than its limit so that it cant accomodate the table anymore.
What is the version of MS Office you are using? I think Office 2003 can go only upto 1024 columns...
- Partha
LabVIEW - Wires that catch bugs! -
Hi everybody,
I've got an application that logs data to an Excel spreadsheet using the Report Generation Toolkit. My VI's have worked fine in the past using Excel XP, but since I've upgraded to Excel 2007, I am getting COM errors like this one:
"Error -2147417842 occurred at The application called an interface that was marshalled for a different thread. in Excel_Insert_Text.vi" That is the exact wording, even with the weird punctuation and capitalization.
The first occurrence of the error is not determinate. Sometimes, up to 10 logging sessions, involving a new .xls file, can occur before this error pops up. Once this error occurs, I must quit LabVIEW to resolve it. If I try to do anything with Excel, I always get this error, although sometimes it comes out of different source VIs. Excel_Open.vi is another.
These logging VIs have worked just fine until upgrading to Excel 2007. I checked, and I was using a really old version of the Report Generation Toolkit, v1.0.1. I read the documentation and had a big sigh of relief when I realized I needed to upgraded to v1.1.2 to get Excel 2007 support. However, even after upgrading, I'm still getting the same errors. I'm using LabVIEW 8.0.1, and I'm also building these VIs into an application. The error occurs both in the LabVIEW IDE and in the built application. Does anybody out there have any idea what I can do to fix this? I googled a little, and discovered this is a COM error, but I can't find any references to the Report Generation Toolkit specifically.
Thanks,
Phil
Solved!
Go to Solution.Hi Christian,
I do not see that exact option listed, do you mean "user interface"? I recognize the "Run in UI Thread" option, it's on the Call Library Function Node.
I checked, and my top-level VI has "same as caller" set, and I believe all my VIs are set to "same as caller". Are you suggesting I change my top-level VI preferred execution environment to "user interface", or just the logging sub-VIs that use the Report Generation Toolkit?
Thanks,
Phil
Attachments:
VI_properties.png 15 KB -
Report generation toolkit VI error when running EXE
A VI inside the Report Generation Toolkit (version 1.1.2), Excel Find Application Directory.vi, will not function correctly when running an EXE. The "Current VI's path" block will return the path of the currently running EXE rather than the path of the Excel Find Application Directory VI. (The same would be true for Word Find Application Directory.vi.)
-Joel
Solved!
Go to Solution.Have you had a look at this knowledgebase article? The error is caused due to the exclusion of any dynamic VI.
Ipshita C.
National Instruments
Applications Engineer -
Problem for Report Generation Toolkit for excel 2000
Hi all,
Now I am Developing my program with Report Generation Toolkit 1.1.0 and Labview 7.1.
In my computer I am using Excel XP, and there is not any problem. But when I build to
a exe file, and use in a computer with Excel 2000, it didn't work.
And I try to check the source file in this computer, I found that there any some connection
error. And this is caused by the active X class. As I know Excel 2000 is using Microsoft Excel
Object Library 9.0, but i cannot find it in the list of active x. So it is using Microsoft Excel Object
Library with a very old verison. So in the property node there are missing functions, such as the
UsedRange in _Worksheet in the Excel_Get_Range.vi. However, In VBA, I can find the 9.0 Library.
Is it the problem of 9.0 library? How can I solve the problem? How can I upgrade the library to 10.0?
Thanks.
Regard,
RyanHi Mike,
Since my program is for all the staff in office, everyone may use it.
I cannot call the whole office to upgrade the excel to XP.
And I think Report Generation Toolkit is alway support Excel 2000,
since the old version of it is not support for Excel XP.
Regard,
Ryan -
Error involving Report Generation Toolkit and Labview Run Time Engine
Developed an application using LabVIEW 6.1 and LabVIEW Report Generation Toolkit for Microsoft Office 1.0.1. From there, tried to build a shared application for use with the LabVIEW Run Time Engine. The Run Time version functions properly until "New Report.vi" is called and then an error is generated, code 7, calling out "Open VI Reference in New Report.vi" could not be found. When building the application, I did include the "NI Reports Support" in the advanced installer options. The machine used for original development and application build is running Windows XP Pro and Office XP. Any suggestions??
I am having the exact same problem but with LV 6.1 and M/S WORD 2000. It appears that the "New Report.vi" is trying to open "C:\APP.DIR\Word_Open.vi" and "C:\APP.Dir\Word_Open_Document.vi" by reference. The "OFFICE 2000.TXT" says that "_exclsub.llb and _wordsub.llb must be added as support files when building an application or a dynamic link library with the application builder." I added them as Support Files and I copied them to the "C:\TESTER\" where the TESTER.EXE is and I still get ERROR 7 in "NEW REPORT.VI" at VI OPEN REFERENCE.
Do I need to make a "C:\TESTER\DATA\" sub-dir and put the support files there?
I am building on MY COMPUTER on F: Drive on a network and transporting files to the real Tester.
I displayed my App.Property of APP.DI
R at start up and it is C:\TESTER\ ! How would my application know that "Word_Open.vi" and "Word_Open_Document.vi" are actually inside the _wordsub.llb?
Any ideas ?
Greg Klocek -
Report Generation Toolkit V9.0.0 : Print Report.vi doesnt print
Hi,
i have migrated my Labview 8.5 Project with Report Generation Toolkit V1.1.2 to a Labview 2009 System with Report Generation Toolkit V9.0.0.
In this Project I use the Report Generation Toolkit for printing out a Standard Report with e few Tables and Graphs.
Now the VI Print Report.vi delivers the Error -41002 with the Text "Invalide Printer Name". I have, of course installed the propper Printer on the machine.
I don´t connect a string to the "Printer name" input of the VI, because i want to use the default printer.
In my oppinion, there´s a bug in the Print Report.vi: if you don´t wire the "Printer name" input, the vi should use the default printer, but in this case the vi connects the empty input string to the input of the method node it calls.
I fixed this bug, but the method node still returns the same error.
any ideas?
Thanks!
Solved!
Go to Solution.Thank you for the link!
For some reasons i can´t find this specific article in the knowledge base (my browser is always rerouted to the german version of ni.com, because i am in Austria). I tried to search with the exact title of this article, and the error message string, but no results...
I have also installed Labview 8.5 and the "old" Toolkits on my new computer in addition to Labview 2009 and the "new" Toolkits and tested my program in 8.5. Here i got an error mentioning the margins and i had to change the margin settings for printing out, then in worked.
After reading the article, i have applied the same changes for the margins in the 2009-version of my program and it works too!
Problem solved!
Thank you very much!
PS:
I first wrote, that there´s maybe a bug in the new version of the Print Report.vi, but i´ve compared it with the old version and it seems to be no bug, sorry!
After all I decided to stay with Labview 8.5 for now, because of another problem:
it´s not possible to "save for previous version" from LV2009 to LV8.5 directly.
Laview crashes, when a VI contains an event structure as i found out by searching through the "known issues", and i have a lot of VIs with event structures!
I have to have the possibility to save my Labview projects for 8.0 and 8.5. The only way is to save for 8.6 and then save from 8.6 to 8.5.
That´s nasty and time-consuming!
Maybe a future update will solve this problem (without producing new ones) -
I have labview 8.5 and Report Generation Toolkit version 1.1.2. My vi works fine during development. When I make an executable or an installer the excel vi's do not work. I have seen this question posted before but it has always been for earlier revisions and the answers do not seem to apply with 8.5 and 1.1.2.
Hello ajh,
You will have to include Dynamic VIs in the executable you build. The following link has more information:
http://digital.ni.com/public.nsf/allkb/C38CE3F30542D65B86256F0E00740DD8
Prashant. -
Report Generation Toolkit missing VI
LabVIEW version 8.6.1
Report Generation Toolkit 1.13
I have just started work on an ongoing project that others have been contributing to for some time. (Hence the project being in older versions of LabVIEW)
On my PC, I am apparently missing the VI "Word Get ActiveX References.vi"
I do have the version 1.13 of the toolkit installed, just as every other machine that runs this code does. But my word.llb does not contain that VI
I have tried simply copying that VI into the .llb The VI is then found by the application. But is not executable due to this error: This VI is connected with a library that does not include the VI. The VI might have been deleted from the library. Add the VI to the library again or select File»Disconnect from Library.
I have also tried replacing my entire C:\Program Files\National Instruments\LabVIEW 8.6\vi.lib\addons\_office\ directory with files from a PC that was working. Again, I get the same error as above.
I did attempt to do a repair on my installation of the toolkit. But as far as I can tell, this didn't do anything.
I also tried simply reinstalling the toolkit. But since it was already installed, it did nothing. I am hesitant to uninstall and reinstall the toolkit for fear of breaking all of my 8.6 projects, as well as possibly my 2009 projects. I wouldn't think it mess with my 2009 installation. But I do know that the order in which things are installed can be critical in system with multiple versions. I'm not sure if this applies to toolkits or not.
This PC also has an installation of LV 2009 SP1, and that version also has the Report Generation Toolkit installed. (although it is a different revision of the toolkit than 1.13)
I know that in the past, multiple versions of this toolkit were not compatible, meaning only one installed version of LabVIEW could have a working Report Generation Toolkit installed. But I was of the understanding that this was no longer a problem. Although it may not be a coincidence that neither of the other development boxes running this code do not have LV 2009 installed.
Has anyone else ever run into a similar problem and found a solution?
Thanks.
Patrick Allen
Solved!
Go to Solution.Darren wrote:
Back before we unified the LabVIEW and toolkit version numbers (in 2009), there were cases where we didn't change the version number in the registry for one reason or another on a minor upgrade.
Ah. This makes sense then.
I just reinstalled said toolkit from said SSP DVD and although it did tell me that I was about to install 1.1.4, MAX still thinks it's 1.1.3
...except that now I do have the missing VI. This is a good thingTM
I still wonder how it ended up missing, because I'm really sure this is where I installed the toolkit from in the first place. I'll probably never know for sure. But that's a lot easier to take when the code is working.
Thanks!
Message Edited by pallen on 04-15-2010 04:52 PM
Patrick Allen -
Report Generation Toolkit Error Quick Question
Hi,
I created the most awesome LabVIEW report ever at my desk using a trial version of the RGT and Office 2003. I took this to my production machine and ")@#(&%(*#^%()^!!!" The production machine has office 2007 and a fully licensed version of the RGT. Both machines have LabVIEW 8.6.0. I've read all the stuff about these errors and something about classes and dll's and whatnot's. So my quick question, is: Instead of matching the versions of Microsoft Office as recommended, can I just rewrite from scratch the VI that creates this world's most awesome LabVIEW report on the production machine to create the same effect?
Solved!
Go to Solution.Hi
Quick Answer: Probably
Slower answer: Microsoft changed a lot of things behind the scenes in Office 2007, but the Report Generation toolkit version 1.1.3 supports Office 2007 so you should be good to go. Depends on what functions are included in your VI. Liek the read me says "Several default settings in Microsoft Office 2007 differ slightly from previous versions. Reports you generate using Office 2007 might look different than reports you generate from other versions of Office because font sizes, cell sizes, and so on, differ."
Best Regards
David
NISW
Maybe you are looking for
-
Creation of report with the help of report painter
Dear Experts, I need report painter material, if any body have pls farward to me. my intension to create controlling report with the help of report painter. I am ready to award full points. Thanks in advance Regards avudaiappan
-
does anyone know what can i do to fix this?? i dont feel like going to a apple store...is there away around this or do i have to go to an apple store? the phone turnes on but no apple logo comes up..
-
3rd Gen iPod won't mount via firewire - any ideas?
After working for a brief spell when I first hooked it up, the progress bar would freeze while I was trying to copy files across to the HD. I unplugged, reset the iPod and tried it in my old clamshell iBook, where it worked fine again. I tried resett
-
'error in MSVCRT.DLL' when i try to open installer
hi, i was trying to install J2SE 1.4.2, the file is complete and not corrupted but when i try to open the installer program i get this message: The program has caused an error in MSVCRT.DLL what can i do to make it work? thanks, nick
-
The App store won't allow me to download mountain lion 10.8.2
The App store won't allow me to download mountain lion 10.8.2. It keeps saying "unknown error" and "There was an error in the App Store, please try again later (4)"