Collection.equals
The javadocs for collection.equals states
"The general contract for the Object.equals method states that equals must be symmetric (in other words, a.equals(b) if and only if b.equals(a)). The contracts for List.equals and Set.equals state that lists are only equal to other lists, and sets to other sets. Thus, a custom equals method for a collection class that implements neither the List nor Set interface must return false when this collection is compared to any list or set. (By the same logic, it is not possible to write a class that correctly implements both the Set and List interfaces.) "
Why not? Couldn't a class implement both List and Set and compare either way, depending on what kind of object it is being compared with?
FYI I grumbled about equals before in a previous post
http://forum.java.sun.com/thread.jspa?forumID=425&threadID=619976
I was just working on something and came across a bug in my code because I was hashing something using an arrayList as a key, and I believed incorrectly that equals would be implemented the same way it is for arrays.
It seems weird to me that Collection, List and Set require symmetry and transitivity between all classes implementing them, but CharSequence (an interface implemented by both String and StringBuffer, ala my other post) does not.
CharSequence states:
"This interface does not refine the general contracts of the equals and hashCode methods. The result of comparing two objects that implement CharSequence is therefore, in general, undefined. Each object may be implemented by a different class, and there is no guarantee that each class will be capable of testing its instances for equality with those of the other. It is therefore inappropriate to use arbitrary CharSequence instances as elements in a set or as keys in a map"
Ok. So the guys working on Java have given us at least three or four different patterns to follow here: There are arrays which we know are only equal if they are the same array. There's the Object (general) implementation of equals in which we can count on objects of different classes being different. There's List and Set where all lists and sets are equal to other lists and set respectively, and there's the CharSequence pattern in which all bets are off.
Wouldn't it be easier for people to learn and program in java if they could rely on one of these patterns without having to go through the javadocs with a fine toothed comb?
No.
Let's say you have a List, (L) a Set (S) and a
List/Set (LS).
You want both of the following to be able to be
true:
LS.equals(L)
LS.equals(S)
However, symmetry and transitivity combine to tell us
that L.equals(S) and S.equals(L) must also return
true.
The contracts for List and Set require L.equals(S)
and S.equals(L) to return false.
Ah ok. Thanks for clearing that up for me. It seems kind of limiting to say that there could never be a collection that is both a list and a set, but I guess it wouldn't be too hard to work around.
Object and arrays use the same equals method--only
returns true if the references are equal.Yes, I meant Object in the general sense, not the Object class itself. So things like Integer(5) can be equal to another Integer, but never to a Float.
There's List and Set where all lists and
sets are equal to other lists and setrespectively,
No. Any List can be equal to any other List,
and any Set can be equal to any other Set. In
both cases, it depends on what elements the
collection contains.Right, sorry that's what I meant to say.
It makes sense that List and Set define equals the
way they do. Since Lists are ordered, it makes sense
that the order should matter in determining equality.
Since Sets are not ordered, it would not make
sense to use order in determining equality.Naturally. But it might also make sense just to say that lists and sets are only equal to themselves.
and there's the CharSequence pattern in which all
bets are off.There's nothing special about CharSequence. It's just
another interface that doesn't define a specific
equals implementation.Yes. What I was trying to get at is that while in general objects (such as subclasses of Number) are only be equal to objects of the same class, and lists and sets must be equal to other lists and sets, respectively, that CharSequence says that some subclasses MAY be comparable using equals.
However, ease of learning is not the one and only
supreme driving force behind the design of the
language and the APIs.Acknoledged. What I mean is that with equals following all these different patterns, it is easy to make a mistake that goes unnoticed until software is in the hands of the clients.
Rather than trying to cram equals (or anything else)
into a fixed set of pigeonholes, you'd be better
served to try to undertand the fundamental purpose
behind it and what kinds of factors go into deciding
what the appropriate implementation is in a given
situation.Ok. What is the fundamental purpose behind equals? Not trying to be hostile here, I'm just curious. I know that one of the biggest factors is with collections and such questions as hashing and contains. Another big one is String.equals(...) to compare strings. Are there any others?
I'm just trying to figure out how it might be possible to make equals() more opaque in future languages, so that people can read the basic definition of equals given in Object and know how it is used and how to use it. If you think that it is already clear and easy to use, consider that using FindBugs (google for FindBugs if you are interested) I found a bug in the java source in ChoiceFormat that has existed since ChoiceFormat's inception in Java 1.1 in which it calls equals between a StringBuffer and a String. If the people working on designing Java can make these mistakes, what hope have the rest of us?
Similar Messages
-
Server 2012 RS Multiple RDS Collections equals only one application from one collection at a time
Hello all!
We have a 2012 R2 RDS "farm" configured like this:
2 RD Web Access servers (load balanced behind KEMP appliances)
2 RD Connection Brokers in a High Availability configuration
8 RD Session Host servers (no VDI) in 2 different collections
I've noticed that if I have rights / visibility to different applications in both collections I can only run one of the applications at a time. For instance:
Collection A has application 1
COllection B has application 2
What i'm experienceing now is that if i have rights to app 1 and app 2 i can only use one at a time. If i attemp to run app 2 while i have app 1 open I get this message:
"Windows cannot start the RemoteApp program. The following RemoteApp program is not in the list of authorized programs: app 1"
Maybe my thinking is incorrect and you cannot cross boundries from one collection to the other. Maybe i need one collection with all my host and segregate applications via AD permissions. Any thoughts?Hi,
Please make sure the client PC has mstsc.exe 6.3.9600 (RDP 8.1) or later.
From your description it sounds as though it is attempting to connect to the wrong collection when you launch the RemoteApp for the second collection. This can be caused by older client version and/or your load balancing configuration. You should
load balance the initial connections to the broker, but not use a load balancer for the connections to the RDSH servers, unless you have a specific need to. The RD Connection Brokers will handle the load balancing for the RDSH servers.
Thanks.
-TP -
WorkManager 6 - Additional fields do not get deleted
Hi,
I have an issue with WorkManager 6.0 Enhancement.
I have added custom fields to the Workorder object. To do this, I have created a ZWORKORDER class that handles these fields with its setter and getter methods and have as well created ZBAPI and ZSTEPLET classes and configured these in the config panel.
We have added a new structure to the workorder as well.
Downloading the information works fine - it is displayed properly and all data if handeled correctly.
If I now delete the workorder form the device with a sync, it seem to work fine as well - until the last workorder is removed.
If there are no workorders left, it will display text of the last order on the screen in the first tab. Some of the fields I did add are filled and the description if filled as well. The complete rest of this item is empty.
In my finding the additional structure is removed and if I enter the Agentry Test Environment the data is gone there as well. So there is no workorder left or anything like.
So my question: what do I have to do to remove the additional fields and clear them correctly? Do I need to change the REMOVE Bapi and Steplet or have I done wrong something else?
Is there a guide around so I could compare if I did something wrong?
I implemented my own ZRemove classes to be able to debug, but even that did no throw any more light on it.
Thanx a lot for your help.
Oliver
Tags edited by: Michael ApplebyOliver,
This is a bug in the Workmanager application. Specifically, a bug in the Agentry platform when it attempts to clean up a Tile Display control after there are no longer any objects because of a deletion. I have run into the scenario you are describing on another project. You aren't doing anything wrong, but need to use some trickery to correct this. If it is just the main detail screen that wont clean up, add another copy of the detail screen to that screenset, call it DetailEmpty or something like that. Leave all the fields positioned as they should be, but remove all the object mappings and update rules on the fields so they never display anything. Next add an enable rule on the new screen that checks to see if the COUNT of the workorders collection equals zero. Put the opposite enable rule on the original detail screen that checks if workorder count > 0. That way only one or the other screen will ever be displayed, and when there are no workorders, you will see blank fields. This workaround is required until Agentry can correct the platform defect.
Jason Latko - Senior Product Developer at SAP -
Hi,
I'm trying to understand the garbage collection log (1.4.2). I have log statements in there like:
14325.110: [GC 14325.110: [DefNew: 111691K->111691K(118016K), 0.0000206 secs]14325.111: [Tenured: 283068K->298347K(393216K), 4.1681840 secs] 394760K->298347K(511232K), 4.1683295 secs]
The way I read it is: nothing done on the New Generation and the tenured Generation even increased. But looking at the total heap, the total used memory after the garbage collection equals the total used memory in the tenured Generation making me believe that the New Generation is empty. Is there a display bug that the New Generation was completely cleared but only the log incorrect? But is it really possible to clear the New Generation up to the very last byte?
dirkHi,
I'm trying to understand the garbage collection log
(1.4.2). I have log statements in there like:
14325.110: [GC 14325.110: [DefNew:
111691K->111691K(118016K), 0.0000206 secs]14325.111:
[Tenured: 283068K->298347K(393216K), 4.1681840 secs]
394760K->298347K(511232K), 4.1683295 secs]
The way I read it is: nothing done on the New
Generation and the tenured Generation even increased.
But looking at the total heap, the total used memory
after the garbage collection equals the total used
memory in the tenured Generation making me believe
that the New Generation is empty. Is there a display
bug that the New Generation was completely cleared
but only the log incorrect? Yes, exactly.
But is it really possible
to clear the New Generation up to the very last
byte?Yes, all the survivors in the New Generation were compacted
up into the Old Generation. (The whole heap was collected.) -
What is the use of hash code () method?
hashCode is used as a fast way to compare two objects.
If the hashCode are equal, there is a chance that the
two objects are equal. This is then verified by
calling the equals method.
It is used a lot with the Collection classes, for
example with the HashMap. The HashMap will not allow
duplicate keys, so when you add something, it checks
if the key already exist, and if it does it overrides
the value.This is true, but only upto a point.
It depends on the way the hash code is generated.
The hashcode for java.lang.Object is based on the actual reference (read: pointer value) for that object and you can test for identity when using the standard hash code values but not for probable equality.
This kind of test for identity or probable equality is not reliable however. It is often recommended that you override the equals and hashcode methods for classes so that things like the Collections classes handle instances of your classes in a predictable manner. This can mean that using hash code comparison as a clue to possible equality can often cause you to take an extra step in checking for equality when this would not be the case (reason, you normally check for class equality with instanceof and then equality. The hashcode step can work, see below).
Using hashcode for probable equality checks will only work properly, after instance class comparison, if the hashcode reflects the uniqueness of those member variables for the purposes of comparison.
The problem with this usage of hashcodes is that it can cause clumping of keys inside datastructures like the Hashtable collection class where hashcode is used for working out which 'bucket' the key should land in. This leads to poor performance in your collection as the less uniform the key distribution is the more time it takes to actually find the key you want in the bucket.
In short:-
hashcode should normally be overriden to optimise the distribution of keys in Collections,
equals should be overriden to ensure proper equality and also allow you to optimise the method, instance class equality, primitives then object member equality.
Example
class Simple {
int a = 1;
String b = "I am a String";
public boolean equals(Object ob) {
return (ob instanceof Simple.class &&
this.a == ((Simple)ob).a &&
this.b.equals(((Simple)ob).b)); // Casts will be optimised out for the optipurists
public int hashCode() {
return this.a ^ this.b.hashCode(); -
Equals() in Sets and Collections
It is a common knowledge that Collection per se are not supposed to have equals() method: first, comparing two bags (multisets) is too costly, second, comparing a Collection to a List may lead to ignoring the List order - the same elements but in different order is a different List, right?
Then I have a question: why does SortedSet have equals() method? It is definitely not just a Map, but a decorator; the order can be different. It is obviously an error.
Unlike the other clumsy feature:
Map<String> m1 = new HashMap();
Map<String> m2 = new HashMap();
m1.put("k", "v");
m2.put("k", "v");
m1.equals(m2); // returns true
m1.values().equals(m2.values()); // returns false - there is a long explanation why
Another, unrelated, observation.
String[] a1 = new String[] {"a", "b"};
String[] a2 = new String[] {"a", "b"};
a1.equals(a2); // returns false - bad, bad, bad implementation!
Arrays.asList(a1).equals(Arrays(asList(a2)); // returns true - way to go!In which case my response is: It is?I think so. I can't say I've taken a survey, but I doubt that it's "common knowledge" that collections shouldn't override equals.
Otherwise you would end up comparing
Lists and Sets.Not if you follow the documented contracts.
the List order - the same elements but indifferent
order is a different List, right?List's equals contract requires that equals return
true iff the other object is also List and hasthe
same elements (by the elements' equals methods) in
the same order. You are repeating my explanation, are not you?No. I'm pointing out what you seem to have missed--that if you follow the documented contracts, there won't be a problem.
If you're aware of that and I missed you point, perhaps you could try to clarify what you're getting at?
Then I have a question: why does SortedSet have
equals() method? It is definitely not just aMap,
but
a decorator; the order can be different. It is
obviously an error.Set's equals contract only requires that the other
object also be a Set and that the two Sets contain
the same elements. Wrong. I mean, an ordered set is not equivalent to a
set. In your mind it is not. In the view taken by the collections framework, it can be. Neither view is inherently correct or wrong. I've never been in a situation to compare a SortedSet to a non-sorted Set (as far as I know), but I have compared Sets, and my own needs didn't care whether neither, one, or both of the Sets was sorted. So in the cases where I've compared Sets, the current definition has worked for me. I suppose there are cases where it doesn't work.
It has an additional structure: the order. Two
different ordered sets can have the same elements, it
does not mean they are the same. There's nothing inherent about equals() that says it has to compare every attribute or every structural aspect of the objects being compared.
It's math.But this is Java, which is intended to model certain mathematical concepts to a certain degree, but not necessarily to be perfectly faithful to them.
>
>
I suppose you could argue that for
SortedSets, order should matter for equality, buta)
I don't see any real benefit to it and b) You then
wouldn't be able to compare SortedSets to otherSets,
so the specific implementation would matter(unlike
for Maps and Lists).Well, here we are getting closer to the paradox. Of
course it would be interesting to compare SortedSets
as if they were ordinary Sets, and compare them to
Sets as well.As I said, I haven't knowingly done so, but I was glad that I didn't have to care whether they were sorted.
How about Lists? We may be interested in comparing
them too, ignoring the order. A List is an ordered
multiset. Why not compare Lists and Sets, as
Collections? I would not object - but the problem
lies somewhere deeper. Do you know where?I don't know that there is a problem. I'm not saying the current equals contracts are perfect, or that an objective "best" contract can be defined. But in my experience they have served well whenever I've needed them. I think they're a reasonable, practical compromise.
Weird. What is that explanation?values() returns a virtual Collection, a view that
has only an iterator which scans EntrySet and returns
Map.Entry.getValue().Okay. Still not sure why that would return false, but I'm not able to focus on it that much at the moment.
Yeah, I always thought it was odd that arrays'equals
methods didn't behave more like List's. I imagine
there's a reason for it, owing to how the array
classes are created, but still...What could be the reason? I'm just curious, that's
why I started this philosophical thread. :)I don't know, but one thing that's odd about arrays. There's no such class as MyClass[] until I create MyClass. Then MyClass[] magically comes into existence (or maybe the first time I use it). That makes the array classes different from other classes. I imagine it would have been possible to have them provide their own equals() that compares elements, but presumably it was deemed more difficult or complex or error-prone than the perceived value it would add. -
Collection override for equals
Hi,
i have a Collection X of objects and i would like to use X.contains(blah) to check for an obect's existence. The problem is that 5 out of the six fields in the object are the same but the sixth is different.
Object o1 {
x=10;
a=1;
b=1;
c=1;
d=1;
e=1;
Object o2 {
x=20;
a=1;
b=1;
c=1;
d=1;
e=1;
These would be equal .. because the first field is irrelevant!
So, the Collection X reads {o6, o7, o8, o2} and X.contains(o1) returns true. OK? So how do i get this scenario?
Thanks.I have a Set and I add objects of a class that has the method equals defined. Howerver the object equals method is not called when I do a contains(object). What is it that I am doing wrong?
public class TSet {
public TSet() {
Set s = new HashSet();
s.add(new MyTest("A","B"));
MyTest t = new MyTest("A","B");
// I was expecting that the equals in MyTest object
// would be called but it is not
if(s.contains(t))
System.out.println("found:" + t);
else
System.out.println("not found:" + t);
MyTest x = new MyTest("X","B");
if(s.contains(x))
System.out.println("found:" + x);
else
System.out.println("not found:" + x);
* @param args the command line arguments
public static void main(String[] args) {
new TSet();
class MyTest{
String a = null;
String b = null;
private MyTest(){}
public MyTest(String a, String b)
this.a = a;
this.b = b;
public boolean equals(Object o)
return equals((MyTest)o);
public boolean equals(MyTest t)
if(a.equals(t.a) && b.equals(t.b))
return true;
else
return false;
public String toString()
return " a=[" + a + "] b=[" + b + "]"; -
Why Collection interface declares equals() and hashCode() method
When I went through the source code of Collection interface, I found equals() and hashCode() are declared? Why? If a class implements this interface, it will inherit these two method from Object, and we can true to override them.
It's probably so that they can provide the documentation that you see there.
-
Improve Auto-Stack and Process Collections with user settings
I have read through all of the Bridge request discussions, and encountered a few comments on the stacking process but nothing to explain my critique and feature request. My apologies for any redundancy.
Bridge CS4 includes two features that would (virtually) streamline my entire photo-organization workflow. Brilliant! Except that they offer zero configuration and my default scenario is very different from Adobe's, so these two would-be-wonderful features are pretty much useless to me, and to anybody else who doesn't happen to shoot in the way the presets are configured.
The first feature is to automatically group images into stacks, based on their similarity, exposure settings, and timestamps. Unfortunately Bridge considers no minimum or maximum amount of photos per stack, and has a fixed timestamp window of 18 seconds. I shoot everything in three-exposure bursts and sometimes multiple shots in less than 18 seconds, so being able to say "process collections in 3-item stacks only" would be absolutely perfect. For other people, being able to limit the timestamp range or other min/max exposure options would work great.
The second feature, which could save me hours every week but is equally useless, is to automatically process collections in Photoshop. My biggest ire about this function is that it completely ignores stacks that I have manually created AND stacks that were previously created using the auto-stack feature. Every time this function is run, it re-runs the auto-stack process from scratch and then delivers the collections to Photoshop. Not only is this made useless by the previously mentioned inflexibility of the auto-stack process, but even if auto-stack worked perfectly, this would waste time by doing the entire thing again and denying the user the option to review the stacks before committing to the Photoshop processing. The process collections feature would also be much improved if the option were given to process ONLY panoramas or HDR photos, or auto-detect. I have never shot a panorama in my life and I'm sure plenty of people have never shot HDR, but Photoshop isn't capable of knowing our intentions and there's no reason why we shouldn't be able to instruct it.Agree. It is an interesting capability that falls short of being really useful. I feel like an ingrate to complain, but ...
I'd also like to see the capability to specify something than "Auto" for the panorama option. My experience is that most of my panos work best with "Cylindrical + Geometric Correction".
My experience is that once you get past 5+ images in a pano, it becomes very tedious ... and then 20+ images in rows is painful. Unlike a single image that you can quickly evaluate, with panos I find I need to make the pano to tell if it going to turn out. I have been generating smaller 1800x1200 or 1200x1800 files to speed up the evaluation process, but it is still very manual and tedious.
The Auto-Stack generates a AutoCollectionCache.xml, but I haven't found it workable to edit this. I'd like to be able to modify it to "force" my knowledge of what is in a group. It seems to check the time-stamp, and re-do the Auto-Stack, thus ignoring my changes. Sigh. -
Hi there,
I am having some strange issue with my PowerPivot for SharePoint but can't figure out what is causing this. Here is what happened:
I setup PowerPivot (PP) for SharePoint and activate it on few site collections in production environment; I upload a PP workbooks in a library, manage the data refresh schedules, run the data refresh for an external SQL databases, etc. Everything works
fine for several days.
One day we decide the move one of the site collections (X) from its current content database to its own (new) content db. The way we did it is that we took the site collection backup in production, restored it in test environment (in its own content
db; we deleted the old site collection in test first before restoring), checked everything including PP data refreshes etc.; all worked fine.
Then we did the same thing in production - we deleted the old site collection X, restored the site collection from the same backup file that we used in test environment, everything works fine EXCEPT the PowerPivot refreshes!! :-(
I am getting these errors: When I click on the workbook, it gives this error "An error occurred during an attempt to establish a connection to the external data source. The following connections failed to refresh: PowerPivot Data"
When I click OK on error dialogbox, it opens the workbook fine but no slicers/refreshes work now. When I go back to the library and click on "Manage PowerPivot Data Refresh" to open the refresh history/schedule page, it gives this generic but scary
error: "An unexpected error has occurred. Troubleshoot issues with Microsoft SharePoint Foundation." ULSViewer or Event viewer is not showing anything related to this error!
Strange thing is that PP refresh works fine in Test environment, as well as on other site collections in production that we didn't touch (which tells me there is nothing wrong with my PP configuration). Did the backup/restore in prd cause anything? Did moving
it in its own contentdb cause anything? (But then why it works in test environment?) Is there anything wrong with site collection PP feature? Can force reactivating it help??????? I am just lost and going crazy now!
Please help.
AsifI have found some entries in ULS logs seemingly relevant to this issue as below: Please help. Thanks.
Note: I have replaced urls with <url> or <server> and username with "domain\user".
ExternalSource.GetExternalKeyAndStateAndMarkUsed: Populating the session's credentials for external data. Index=0, Credentials=[14337250,
domain\user]
ConnectionRequest.ConnectionRequest: New connection request. SessionId=1.V24.1916ClMR0rOQ1F8mQPqtil0V90.5.en-US5.en-US73.-0600#0000-04-00-01T03:00:00:0000#+0000#0000-10-00-01T02:00:00:0000#-006036.7dcb49ef-0dc4-45d2-a0f8-4dc0e18a70f41.N,
WorkbookVersion=ConnectionInfo.WorkbookVersion: Uri=http://<url>/SQL_PowerPivotTest.xlsx, Version=Monday, 09 September 2013 06:29:42
Check whether "http://<url>/SQL_PowerPivotTest.xlsx" is in the farm.
Connecting to "http://<server>/_vti_bin/PowerPivot/Redirector.svc/?DataSource=/team/IT/SiteCollectionDocuments/SQL_PowerPivotTest.xlsx&LocaleID=1033".
WcfSendRequest: RemoteAddress: 'http://<server>:32843/0a4610a7f75f4ff582ca7329256f0fe3/SSASMidTierService.svc' Channel: 'Microsoft.AnalysisServices.SharePoint.Integration.IGeminiServiceApplicationClient'
Action: 'http://tempuri.org/IGeminiServiceApplication/GetDatabase' MessageId: 'urn:uuid:44f67e36-7ec2-4fe8-bd4c-277c9d9ddde7'
WcfReceiveRequest: LocalAddress: 'http://<server>:32843/0a4610a7f75f4ff582ca7329256f0fe3/SSASMidTierService.svc' Channel: 'System.ServiceModel.Channels.ServiceChannel'
Action: 'http://tempuri.org/IGeminiServiceApplication/GetDatabase' MessageId: 'urn:uuid:44f67e36-7ec2-4fe8-bd4c-277c9d9ddde7'
Entering monitored scope (ExecuteWcfServerOperation)
Obtaining routing information for the request using <SERVER> - User:domain\user, DataSource: http://<url>/SQL_PowerPivotTest.xlsx,
Version: 09/09/2013 06:29:42. (RequestStartTime=[<SERVER>])
Leaving Monitored Scope (ExecuteWcfServerOperation). Execution Time=10.7664521608193
EXCEPTION: System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Unable to find the specified file. (Fault Detail
is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is: System.IO.FileNotFoundException: Unable to find the specified file.
at Microsoft.SharePoint.SPFile.EnsureUniqueId()
at Microsoft.SharePoint.SPFile.get_UniqueId()
at Microsoft.AnalysisServices.SharePoint.Integration.Redirector.BackendRedirectService.GetDatabase(String loginName,
String dataSource, String versionLabel, DateTime fileLastModifiedTimestamp, Int32 localeId, Boolean collectHeathInfo, Boolean createLocal, String serverEndpointAddress)
at Microsoft.AnalysisServices.SharePoint.Integration.GeminiServiceApplication.GetDatabase(String loginName, String
dataSource, String dataSourceVersion, DateTime fileLastModifiedTimestamp, Int32 localeId, Boolean collectHeathInfo, Boolean createLocal, String serverEndpointAddress)
at SyncInvokeGetDatabase(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at Sy...).
Proxy encountered an error while trying to get the sandbox information. This request will be terminated
EXCEPTION: System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Unable to find the specified file. (Fault Detail
is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is: System.IO.FileNotFoundException: Unable to find the specified file.
at Microsoft.SharePoint.SPFile.EnsureUniqueId()
at Microsoft.SharePoint.SPFile.get_UniqueId()
at Microsoft.AnalysisServices.SharePoint.Integration.Redirector.BackendRedirectService.GetDatabase(String loginName,
String dataSource, String versionLabel, DateTime fileLastModifiedTimestamp, Int32 localeId, Boolean collectHeathInfo, Boolean createLocal, String serverEndpointAddress)
at Microsoft.AnalysisServices.SharePoint.Integration.GeminiServiceApplication.GetDatabase(String loginName, String
dataSource, String dataSourceVersion, DateTime fileLastModifiedTimestamp, Int32 localeId, Boolean collectHeathInfo, Boolean createLocal, String serverEndpointAddress)
at SyncInvokeGetDatabase(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at Sy...).
PF_CHECK_ERROR returned 'critical hresult error' 0x80004005 ; Stack Trace:NA
PF_CHECK_ERROR returned 'critical hresult error' 0x80004005 ; Stack Trace:NA
PF_CHECK_ERROR returned 'hresult error' 0x80040e41 ; Stack Trace:NA
ConnectionManager.GetConnection: Failed to create new connection, exception=Microsoft.Office.Excel.Server.CalculationServer.Interop.ConnectionException:
Exception of type 'Microsoft.Office.Excel.Server.CalculationServer.Interop.ConnectionException' was thrown.
at Microsoft.Office.Excel.Server.CalculationServer.Interop.ConnectionInterop.InitConnection()
at Microsoft.Office.Excel.Server.CalculationServer.ConnectionManager.<>c__DisplayClass3.<CreateConnection>b__0()
at Microsoft.Office.Excel.Server.Credentials.TryExecuteImpersonated(WindowsIdentity wi, ExecuteImpersonatedMethod
method, Boolean dispose)
at Microsoft.Office.Excel.Server.Credentials.TryExecuteImpersonated(ExecuteImpersonatedMethod method, Boolean
dispose)
at Microsoft.Office.Excel.Server.CalculationServer.CredentialsDelegation.TryExecuteImpersonated(ExecuteImpersonatedMethod
method)
at Microsoft.Office.Excel.Server.CalculationServer.ConnectionManager.CreateConnection(Credentials credentials,
ConnectionInfo connectionInfo, Int32 keyLcid, Uri workbookUrl, Boolean auditConnection, SessionId sessionId), sessionId=1.V24.1916ClMR0rOQ1F8mQPqtil0V90.5.en-US5.en-US73.-0600#0000-04-00-01T03:00:00:0000#+0000#0000-10-00-01T02:00:00:0000#-006036.7dcb49ef-0dc4-45d2-a0f8-4dc0e18a70f41.N,
connectionString=Provider=MSOLAP.4;Persist Security Info=True;Initial Catalog=Microsoft_SQLServer_AnalysisServices;Data Source=$Embedded$;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error;Optimize Response=3;Cell Error Mode=TextValue pool
count=0
ConnectionManager.GetConnection: Caught an exception: Microsoft.Office.Excel.Server.CalculationServer.Interop.ConnectionException:
Exception of type 'Microsoft.Office.Excel.Server.CalculationServer.Interop.ConnectionException' was thrown.
at Microsoft.Office.Excel.Server.CalculationServer.Interop.ConnectionInterop.InitConnection()
at Microsoft.Office.Excel.Server.CalculationServer.ConnectionManager.<>c__DisplayClass3.<CreateConnection>b__0()
at Microsoft.Office.Excel.Server.Credentials.TryExecuteImpersonated(WindowsIdentity wi, ExecuteImpersonatedMethod
method, Boolean dispose)
at Microsoft.Office.Excel.Server.Credentials.TryExecuteImpersonated(ExecuteImpersonatedMethod method, Boolean
dispose)
at Microsoft.Office.Excel.Server.CalculationServer.CredentialsDelegation.TryExecuteImpersonated(ExecuteImpersonatedMethod
method)
at Microsoft.Office.Excel.Server.CalculationServer.ConnectionManager.CreateConnection(Credentials credentials,
ConnectionInfo connectionInfo, Int32 keyLcid, Uri workbookUrl, Boolean auditConnection, SessionId sessionId)
at Microsoft.Office.Excel.Server.CalculationServer.ConnectionManager.CreateConnectionAndAddToList(ConnectionRequest
connectionRequest, ExtendedConnectionInfo extendedConnInfo, Credentials credentials, Boolean auditConnection, Int32 keyLcid, ConnectionInfo connectionInfo, ConnectionKey connectionKey, AutoReaderWriterLock autoPoolLock, Connection& connection, ConnectionList&
connectionList)
at Microsoft.Office.Excel.Server.CalculationServer.ConnectionManager.GetConnection(ConnectionRequest connectionRequest,
ExtendedConnectionInfo extendedConnInfo, Credentials credentials, Int64 privateConnectionId, Boolean auditConnection)
Refresh failed for 'PowerPivot Data' in the workbook 'http://<url>/SQL_PowerPivotTest.xlsx'.
[Session: 1.V24.1916ClMR0rOQ1F8mQPqtil0V90.5.en-US5.en-US73.-0600#0000-04-00-01T03:00:00:0000#+0000#0000-10-00-01T02:00:00:0000#-006036.7dcb49ef-0dc4-45d2-a0f8-4dc0e18a70f41.N User: 0#.w|domain\user]
ExternalSource.ValidateConnection: Unable to get a connection: Microsoft.Office.Excel.Server.CalculationServer.Interop.ConnectionException:
Exception of type 'Microsoft.Office.Excel.Server.CalculationServer.Interop.ConnectionException' was thrown.
at Microsoft.Office.Excel.Server.CalculationServer.Interop.ConnectionInterop.InitConnection()
at Microsoft.Office.Excel.Server.CalculationServer.ConnectionManager.<>c__DisplayClass3.<CreateConnection>b__0()
at Microsoft.Office.Excel.Server.Credentials.TryExecuteImpersonated(WindowsIdentity wi, ExecuteImpersonatedMethod
method, Boolean dispose)
at Microsoft.Office.Excel.Server.Credentials.TryExecuteImpersonated(ExecuteImpersonatedMethod method, Boolean
dispose)
at Microsoft.Office.Excel.Server.CalculationServer.CredentialsDelegation.TryExecuteImpersonated(ExecuteImpersonatedMethod
method)
at Microsoft.Office.Excel.Server.CalculationServer.ConnectionManager.CreateConnection(Credentials credentials,
ConnectionInfo connectionInfo, Int32 keyLcid, Uri workbookUrl, Boolean auditConnection, SessionId sessionId)
at Microsoft.Office.Excel.Server.CalculationServer.ConnectionManager.CreateConnectionAndAddToList(ConnectionRequest
connectionRequest, ExtendedConnectionInfo extendedConnInfo, Credentials credentials, Boolean auditConnection, Int32 keyLcid, ConnectionInfo connectionInfo, ConnectionKey connectionKey, AutoReaderWriterLock autoPoolLock, Connection& connection, ConnectionList&
connectionList)
at Microsoft.Office.Excel.Server.CalculationServer.ConnectionManager.GetConnection(ConnectionRequest connectionRequest,
ExtendedConnectionInfo extendedConnInfo, Credentials credentials, Int64 privateConnectionId, Boolean auditConnection)
at Microsoft.Office.Excel.Server.CalculationServer.ExternalSource.TryGetValidatedConnection(Request request, Credentials
credentials, ExtendedConnectionInfo extendedConnectionInfo, Boolean shouldReportFailure, Boolean auditConnection, Connection& connectionOut). sessionId=1.V24.1916ClMR0rOQ1F8mQPqtil0V90.5.en-US5.en-US73.-0600#0000-04-00-01T03:00:00:0000#+0000#0000-10-00-01T02:00:00:0000#-006036.7dcb49ef-0dc4-45d2-a0f8-4dc0e18a70f41.N,
externalSource=PowerPivot Data
ConnectionInfoManager.InitConnInfoFromOdcFile: ODC File Uri is not valid:
ExternalSource.ExecuteOperation: We exhausted all available connection information. Exception: Microsoft.Office.Excel.Server.CalculationServer.Interop.ConnectionInfoException:
Exception of type 'Microsoft.Office.Excel.Server.CalculationServer.Interop.ConnectionInfoException' was thrown.
at Microsoft.Office.Excel.Server.CalculationServer.ConnectionInfoManager.GetConnectionInfo(Request request, String
externalSourceName, Int32 externalSourceIndex, Boolean& shouldReportFailure)
at Microsoft.Office.Excel.Server.CalculationServer.ExternalSource.ExecuteOperation(Request request, ExternalSourceStateInfo externalSourceStateInfo,
ExternalSourceStateInfo prevExternalSourceStateInfo, Int32 index, ConnectionInfoManager connectionInfoManager, ExternalDataScenario scenario, DataOperation dataOperation, Boolean verifyPreOperationConnection), Data Connection Name:
PowerPivot Data, SessionId: 1.V24.1916ClMR0rOQ1F8mQPqtil0V90.5.en-US5.en-US73.-0600#0000-04-00-01T03:00:00:0000#+0000#0000-10-00-01T02:00:00:0000#-006036.7dcb49ef-0dc4-45d2-a0f8-4dc0e18a70f41.N, UserId: 0#.w|domain\user -
Using a Collection of beans to store a result set help.
Does anyone have any sample code on the subject? This is something I wrote up, but I wanted feedback, and also an example of how to retreive data out of the array of beans in jsp
package beanpersonal;
import beandatabase.DBConnection;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import java.util.Collection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
public class PersonNew {
public PersonNew() { }
public Collection getPersondata( String alias, String password ) {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
Collection retValue = new ArrayList();
String query = "SELECT * FROM person WHERE (alias = ?, password = ?)";
try {
conn = DBConnection.getDBConnection();
stmt = conn.prepareStatement( query );
stmt.setString( 1, alias );
stmt.setString( 2, password );
rs = stmt.executeQuery();
while (rs.next()) {
PersonalInfo beanrow = new PersonalInfo();
beanrow.setAlias(rs.getString("alias"));
beanrow.setPassword(rs.getString("password"));
retValue.add(beanrow);
return retValue;
catch( SQLException sqle ) {
//sqle.printStackTrace();
//throw new ApplicationSpecficException("Cannot query db", sqle);
throw new RuntimeException(sqle);
finally {
try {if (rs != null) rs.close();} catch (SQLException e) {}
try {if (stmt != null) stmt.close();} catch (SQLException e) {}
try {if (conn != null) conn.close();} catch (SQLException e) {}
}sorry i only view the codes, but don't read it as a whole maybe this codes can help you..
jsp:
<%@ page contentType="text/html;charset=windows-1252"%>
<%@page import="java.util.*,mypackage.TestBean"%>
<%
String name = request.getParameter("name")!=null?request.getParameter("name"):"";
String age = request.getParameter("age")!=null?request.getParameter("age"):"";
System.out.println(name);
System.out.println(age);
Collection col = new ArrayList();
col = (Collection)session.getAttribute("col")!=null?(Collection)session.getAttribute("col"):new ArrayList();
TestBean tBean = new TestBean();
if(!name.equals(""))
tBean.setName(name);
if(!age.equals(""))
tBean.setAge(age);
if(!age.equals("") || !name.equals(""))
col.add(tBean);
session.setAttribute("col",col);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<title>untitled</title>
</head>
<body>
<form>
<table cellspacing="0" cellpadding="0" border="1" width="200">
<tr>
<td>Name</td>
<td>
<input type="text" name="name"/>
</td>
</tr>
<tr>
<td>Age</td>
<td>
<input type="text" name="age"/>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Submit"/>
</td>
</tr>
</table>
<%
if(col.size()>0){
Iterator iter = col.iterator();
%>
<table cellspacing="0" cellpadding="0" border="1" width="200">
<tr>
<td>
NAME
</td>
<td>
AGE
</td>
</tr>
<%while(iter.hasNext()){
tBean = (TestBean)iter.next();
%>
<tr>
<td>
<%=tBean.getName()%>
</td>
<td>
<%=tBean.getAge()%>
</td>
</tr>
<%}%>
</table>
<%}%>
</form>
</body>
</html>TestBean.java
package mypackage;
public class TestBean
private String name;
private String age;
public TestBean()
public String getName()
return name;
public void setName(String name)
this.name = name;
public String getAge()
return age;
public void setAge(String age)
this.age = age;
} -
How can i remove the empty sting from IList collection?
How can i remove the empty sting from IList collection. If i use the code i got System.NotSupportedException was unhandled exception. How can i achive this?
IList record = (IList)records;
int count = record.Count;
for (int i = 0; i < count;i++)
bool contains = record[i].Equals("");
if (contains)
record.Remove(record[i]);
Is anyone know, please suggest me.
Thanks in Advance!Try:
items.RemoveAll(s => string.IsNullOrEmpty(s));
Or you can filter them out using where:
var noEmptyStrings = items.Where(s => !string.IsNullOrEmpty(s));
Having fun with custom collections!
Basics of .NET Collections in C#
How does it work in C#? - Part 3 (C# LINQ in detail)
Mark as answer or vote as helpful if you find it useful | Ammar Zaied [MCP] -
How can I extract data from embedded collection??????
I have 4 classes (class1, class2, class3, class4). Each of them contains properties, methods and a set (HashSet). The set declaration code is: private Set set1;
The initialization occurs in the appropriate method (however I did declare and initialize as private Set set1= new HashSet(); without success). Each Set is declared and initialize in their own class. The insert and update method works perfectly well.
When I load class1 object, I can see at runtime in the debug feature all properties data as well as all set elements (set1, set2, set3, and set4). I can extract the data from all properties belongs to the class1 as well as the set1 element. However I cannot extract the data from the set2, set 3 and set4. By writing the following �String s = class1.set1(). Property name;� and I will get the information. The problem that I have is that I cannot write the following �String s= class1.set1().set2().property name;� since set2 cannot be seen. What should I do to get the info from the other set collection???? The loading method provide an object that contains everything. This object is equal as class1 and the set are embedded one inside the other.
Used hibernate and Struts.
Could someone help???? Many thanksAre we talking about Java source code here or some weird expression language?
Can you post a minimal, example Java program that demonstrates your problem? -
Incorrect Transport Requests : SAP delivery version getting collected
Hi,
In our development system, when we try to include objects in a transport request, the entries in the transport request are getting saved as the SAP Delivery version rather than the active version.
For example an ODS ( z object, newly created in development environment) entry is being logged as R3TR DODS XXXX (Obj name) rather than R3TR ODSO XXXX.This is happening for all object types ( Info objects, cubes, workbooks etc).
Also while collecting workbooks in transport request ( using transport connection) we got the following error -Logical transport object 414Q not found in table RSTLOGOPROP. Not sure if the above two issues are interlinked.
Appreciate your help on this.
Kind Regards,
BansiHi KxD,
I don't expect the loading date to be equal to the delivery date but I expect it to be 2 days before the delivery date since the time specified on the route is 2 days. So I would expect my loading date = delivery date - 2 days (route time)
The way system is acting is loading date = committed date + 2 days (route time).
FYI.. when you turn on route scheduling the delivery creation date is based off of your route time and not your planned delivery time from the material master
Thanks,
Imran -
Bios Collection. *Updated 02.07.07*
============================================================================================
02.07.07 (mm-dd-yy) MS7125
============================================================================================
A new ISO image dated 17-30-Feb-06-2007 is uploaded
New item #6
+--------------------------------------+
Press 1,2,3,4,5 followed by enter
to flash with desired version
+--------------------------------------+
1 = MS-7125 bios NCG 1.C (W7125NCG.1C0)
2 = MS-7125 bios 1.D murdok mod (7125XMOD.1D)
3 = MS-7125 bios 1.D Syar mod temp disabled (W7125NMM.1D0)
4 = MS-7125 bios 1.D MSI regular (W7125NMS.1D0)
5 = MS-7125 bios 1.C MSI regular (W7125NMS.1C0)
6 = MS-7125 bios NCG 1.C Syar FixedUp (7125NCGM.1C0) <---
+--------------------------------------+
Turn off PSU after successful flash
and reset cmos
+--------------------------------------+
ISO (bootable) is at :
http://members.lycos.co.uk/olsen0423/MS7125/
D/L file: 7125_batch_17-30-Feb-06-2007-iso.zip , unzip and burn .
Note!
Make sure that you clear cmos after bios flash (with PSU disconnected) .
After powering up , first to do is enter cmos and "Load Optimized Defaults" and setting date/time , then save/exit .
Next boot to cmos you may define/change to own preferences.
==================================================
01.21.07 (mm-dd-yy) MS7030
==================================================
New downloadable bootable bios flash cdrom ISO for
K8N Neo Platinum (MS-7030 boards)
Link:
http://members.lycos.co.uk/olsen0423/
(Select MS-7030)
Download file : Neo1-ms7030-bios-collection-iso.zip
Unzip and burn iso image to cd-r - boot with cdrom as 1'st boot device.
Easy flash menu for latest/best bioses looks like this:
+--------------------------------------+
Press 1,2,3,4,5,6 followed by enter
to flash with desired version
PS! Make sure to use right version
for your 7030 mobo PCB rev
+--------------------------------------+
1 = MS-7030 easybios syar for PCB 1.x (W7030nms.156)
2 = MS-7030 bios 1.70 (W7030nms.170)
3 = MS-7030 bios 2.1 (w7030nms.210)
4 = MS-7030 bios 5.4 (W7030nms.540)
5 = MS-7030 bios 7.1 (w7030nms.710)
6 = MS-7030 bios 9.0 (w7030nms.900)
+--------------------------------------+
Turn off PSU after successful flash
and reset cmos
+--------------------------------------+
Theese hotkey flashes use the following syntax:
AWFL859G BIOSFILE /PY /SN /WB /CC /CD /CP /LD /E
And choice 1-6 will automaticly flash your bios with proper parameters
to avoid any problems.
Please make sure to use the correct bios series for
your particular MS7030 board.
There is alot of boards named MS7030 now which use different series.
This collection is for convenience (ALLin1).
I take no responcibility for users flashing wrong bios or a dud bios flash.
Goto http://www.msi.com.tw and look up your MS-7030 board and
PCB version to see which series you should use.
You can also check this yourself by entering cmos - standard setup - info
to see what series is on your board already , and update to latest for the same series.
Bios series : 1.1 -> 2.1
Bios series : 5.1 -> 5.4
Bios series : 7.0 -> 7.1
Bios series : 9.0 -> 9.x
All theese series goes for different versions of MS-7030
The ISO contains the following bioses :
W7030NMS.110
W7030NMS.120
W7030NMS.130
W7030NMS.140
W7030NMS.150
W7030NMS.160
W7030NMS.170
W7030NMS.190
W7030NMS.210
7030EBW.BIN (EasyBios by Syar based on W7030NMS.156)
W7030NMS.510
W7030NMS.520
W7030NMS.530
W7030NMS.540
W7030NMS.700
W7030NMS.710
W7030NMS.900
============================================================================================
10.22.06 (mm-dd-yy) MS7220
============================================================================================
I made a bootable cdrom ISO with different bios files for easy flashing of Diamond Plus
without the need of a floppy drive.
Nothing modded , just collection of MS-7220 Diamond Plus bioses on one bootable cd for conveniance.
Burn ISO (unzip first) and reboot PC with CDROM as 1'st boot device.
A menu tells what to key:
1,2,3,4,5,6 or 7 followed by enter.
Menu looks like this :
+--------------------------------------+
Press 1,2,3,4,5,6,7 followed by enter
to flash with desired version
+--------------------------------------+
1 = MS-7220 bios 1.0
2 = MS-7220 bios 1.1
3 = MS-7220 bios 1.2
4 = MS-7220 bios 1.22
5 = MS-7220 bios 1.33
6 = MS-7220 bios 3.09
7 = MS-7220 bios 3.0A
R:\>
Pressing 1 will flash with following command
afud408 a7220nms.100 /P /B /N /C
Pressing 2 will flash with following command
afud408 a7220nms.110 /P /B /N /C
Pressing 3 will flash with following command
afud408 a7220nms.120 /P /B /N /C
Pressing 4 will flash with following command
afud408 a7220nms.122 /P /B /N /C
Pressing 5 will flash with following command
afud408 a7220nms.133 /P /B /N /C
Pressing 6 will flash with following command
AFDOS404 A7220NMS.309 /B /C /P /N
Pressing 7 will flash with following command
AFDOS404 A7220NMS.30A /B /C /P /N
Link:
http://members.lycos.co.uk/olsen0423/MS7220
File : 7220_batch_14-45-Okt-07-2006.zip
============================================================================================
10.22.06 (mm-dd-yy) MS7125
============================================================================================
To whom it may Concern.
I made a cdom ISO for MS-7125 board also.
Menu looks like this:
1 = MS-7125 bios NCG 1.C (W7125NCG.1C0)
2 = MS-7125 bios 1.D murdok mod (7125XMOD.1D)
3 = MS-7125 bios 1.D Syar mod temp disabled (W7125NMM.1D0)
4 = MS-7125 bios 1.D MSI regular (W7125NMS.1D0)
5 = MS-7125 bios 1.C MSI regular (W7125NMS.1C0)
ISO (bootable) is at :
http://members.lycos.co.uk/olsen0423/MS7125/
D/L file: 7125_batch_22-10-Okt-15-2006.zip , unzip and burn .
Note!
Make sure that you clear cmos after bios flash (with PSU disconnected) .
After powering up , first to do is enter cmos and "Load Optimized Defaults" and setting date/time , then save/exit .
Next boot to cmos you may define/change to own preferences.
==================================================
08.20.06 (mm-dd-yy) MS7025
==================================================
EasyBIOS for MS-7025 based on 1C3 bootable cdom iso.
If you dont want to use winflash or floppy , there is a ISO image to use.
Burn the iso to a cd and it will boot to dos , at the dosprompt just key in the command
flash.bat
Then follow the instructions
Goto :
http://members.lycos.co.uk/olsen0423/MS7025/isoimage
It's packed in a zip file to maintain reability/file integrity after download and to save web space.
==================================================
08.18.06 (mm-dd-yy)
==================================================
Previous web hosting was taken down due to the fact that this is an old board.
However due to the continious requests i have this bios hosted again.
Still want the EasyBIOS for MS-7025 based on 1C3
EasyBIOS[r.2] for K8N Neo2 MS-7025
Goto :
http://members.lycos.co.uk/olsen0423/MS7025/
==================================================
==================================================
12.10.05 (mm-dd-yy)
==================================================
Entry point to bios collection downloads :
Syar's MSI Nvidia64 Bios Collection
EasyBIOS[r.2] for K8N Neo2 MS-7025 (based on 7025CU2.1C3)
Optimized (good) default values on all items .
150Mhz , 183Mhz divider .
Completely new (easy navigating) layout in most setup screens .
ref: *News* What do I mean by custom EasyBIOS
Filename : EASYBIOS.ZIP
Link :
EASYBIOS.ZIP
==================================================
07.10.05 (mm-dd-yy)
==================================================
BIOS for K8N Neo2 MS-7025 1C3 .
Custom version rev.1 has non working HT 3.5x/4.5x multipliers .
Wasn't aware of it but they both defaults to 5x .
This is no good in an overclock attempt as you would attemt to run the HT far over it's spec .
Theese two is removed again .
In addition the 150mhz text is aligned in memory index , and 216/233/250mhz dividers
removed as they gives 100/130/200mhz anyway and they are alredy there .
Please use the new version
Filename : 7025CU2-1C3.ZIP
Link (could be some time before it's up):
7025CU2-1C3.zip
==================================================
06.10.05 (mm-dd-yy)
==================================================
A new BIOS for K8N Neo2 MS-7025 1C3 become availible today .
Made a custom version of it that have reworked defaults like the previous custom .
150mhz + 183mhz divider added and HT multiplier 3.5x/4.5x .
Filename : 7025CUST1-1C3.zip
Addon PCI card issue and invoke boot error issue resolved by MSI
EasyBIOS and full advanced version in zip .
Readme file included .
==================================================
09.05.05 (mm-dd-yy)
==================================================
A new beta BIOS for K8N Neo2 MS-7025 1.BB4 availible
Filename : 70251B4MOD1.zip (hidden options enabled)
Filename : W70251B4NMS.zip (untouched Beta)
USB 2.0 issue resolved by MSI
Enabled in BIOS now includes both usb1.1 and USB 2.0 .
==================================================
09.03.05 (mm-dd-yy)
==================================================
A new beta BIOS for K8N Neo1 MS-7030 1.9B1 availible
Filename : 7030M1NT191.zip
All hidden items is made accessible and temps not shown in BIOS hw monitor .
==================================================
08.29.05 (mm-dd-yy)
==================================================
Two new beta BIOSes for K8N Neo2 ms-7025 has surfaced.
Have them modded to enable usb 2.0 and unhiding the hidden stuff and some defaults changed
like with the 1A beta mods .
W7025 1BB2
W7025 1BB3
Can be found under Syar's MSI Nvidia64 Bios Collection\NEO2
1B2 : 7025MOD1B2.zip
1B3 : 70251B3-MOD1.zip
Sideeffect has also a more thorough mod of the 1B3
Link:
Sideeffect's 1.B3 beta mod
MSI K8N Neo2 Platinum
1.B Beta 3
- Idle Cycle limit = 64
- Max Async = 8
- Read Write Queue bypass = 16
- Bypass max = 7
- Enabled 183 divider
- Enabled 150 Divider
- Enabled USB 2.0
- Enabled Bios cachable by default
- All options available in bios will show.
- Nvidia lan on by default.
- Disabled Temps from showing in bios
- Disabled 216, 233, 250 dividers
- Disabled ATI/Nvidia Speedup
- Disabled Full screen logo and small EPA logo by default
- Disabled Fast writes by default
==================================================
08.21.05 (mm-dd-yy)
==================================================
7025 1A has gone final (1A0 081605)
1A has gone final Aug.16 and is availible on MSI USA .
MSI though has again forgotten to enable USB 1.1+2.0 as selectable
and the enhanced memory timings and the usual stuff is hidden .
Two modded versions that gives you full control is availible at
(one version without temp and voltage reporting in BIOS hw-monitor)
Syars_Bios_Collection/NEO2
Files:
7025MOD1-1A.zip 21-Aug-2005 13:27 263k
7025MOD1NOTEMP-1A.zip 21-Aug-2005 13:27 263k
K8N Neo2 Platinum (MS-7025) V1.A BIOS Release
1. This is Award BIOS release
2. This BIOS fixes the following problem of the previous version:
- Update CPU ID for AMD E6 CPU.
3. 2005/08/16
Thats all the readme say ...
==================================================
08.10.05 (mm-dd-yy)
==================================================
Several requests resulted in theese two 1A3 versions .
Neo2 1.A3 MOD4 version is availible in two versions .
7025MOD4-1A3.zip
MOD4 - reworked sane bios default values and all items availible
Same as normal MOD4 version , but with BIOS temp reporting disabled to help noboot/freeze situations for people with vapo/prommy
7025NOTEMPMOD4-1A3.zip
Use the above link and navigate to NEO2 folder .
==================================================
07.29.05 (mm-dd-yy)
==================================================
Neo2 1.90 official
MSI have hidden made several hings non selectable , like trrd,trc.trfc.trwt along with other things
Take the file 7025-190-MOD2.zip to get around all this
No logo mod or such things , just the plain original will all neccesay options availible .
Thanks supershanks ( it rhymes)
==================================================
07.16.05 (mm-dd-yy)
==================================================
Dear Tripod Member,
In order to guarantee a high-quality service on Tripod, we had to close your website http://members.lycos.co.uk/syar2003/ as it was found abusive.
Both HTTP and FTP access have been closed.
Guess my rather large ISO , was what tipped them over .
==================================================
07.16.05 (mm-dd-yy)
==================================================
There are more and more people asking about how to flash bios outside windows from
DOS without having a floppy drive .
Well here is the solution .
I Have compiled a ISO file that holds all the most used bioses for all the K8N Neo motherboards .
The cd also includes the volkov commander (norton commander clone) for easy navigating .
Click on the "MSI K8N NEO/FSR & Neo2-Neo4 Bioses" text over the platinum BMP picture to get to the directory listing.
Go into the sub directory " ALL_BIOS_ISO " and download the ISO image for the bootable BIOS compilation CD " MS_CD5.iso " .
Then burn the ISO with your favorite cd burning application.
Again note the correct flash routine , clear PnP , clead cmos , clear dmi , and load defaults after flash , theese have become
essensial to use with flashing to ther newer bioses for all boards and is even posted on MSI's bios pages.
Flash with the command line
AWFL859G.EXE 7100NMS.350 /py/sn/cc/cd/cp/f/e
(change award flasher exe program and bios file as neccesary)
After flash , turn off the PSU .
Power on again , enter bios , and load bios defaults followed by a cmos exit with save .
Note that this is just a service . I will take no responsiblitity of the outcome of the bios flashing .
CD contents (sub directories and file listing) :
Code: [Select]
Bootable CD info
NEO1
7030NMS.110
7030NMS.120
7030NMS.130
7030NMS.140
7030NMS.142
7030NMS.143
7030NMS.144
7030NMS.145
7030NMS.146
7030NMS.147
7030NMS.148
7030NMS.150
7030NMS.151
7030NMS.152
7030NMS.155
7030NM5.156
7030NMS.160
7030NMS.170
7030MOD.156
AWFL833D.EXE
How to flash the BIOS.txt
MOD466.156
NEO2
7025NMS.100
7025NMS.110
7025NMS.120
7025NMS.123
7025NMS.125
7025NMS.130
7025NMS.133
7025NMS.134
7025NMS.135
7025NMS.136
7025NMS.137
7025NMS.140
7025NMS.141
7025NMS.150
7025NMS.151
7025NMS.160
7025NMS.170
7025NMS.180
7025NMS.196
7025NMS.197
7025NMS.198
7025MOD.136
7025MOD.137
7025MOD.141
7025MOD.160
7025MOD.180
7025MOD.195
7025MOD.196
7025NFM.198
7025NFM3.180
AWFL833D.EXE
How to flash the BIOS.txt
NEO3
7135NMS.100
7135NMS.110
7135-10.TXT
7135-11.TXT
AWFL855A.EXE
How to flash the BIOS.TXT
NEO4-DM
7100NMS.100
7100NMS.110
7100NMS.120
7100NMS.130
7100NMS.133
7100NMS.140
7100NMS.150
7100NMS.501
7100NMS.502
7100NMS.504
7100NMS.505
7100NMS.506
AWFL859G.EXE
How to flash the BIOS.TXT
NEO4-PL
7125NMS.100
7125NMS.110
7125NMS.120
7125NMS.121
7125NMS.124
7125NMS.130
7125NMS.140
7125NMS.141
7125NMS.144
7125NMS.150
7125NMS.152
7125NMS.160
7125NMS.161
7125NMS.164
7125NMS.165
7125NMS.171
7125MOD.140
7125MOD.161
AWFL859G.EXE
How to flash the BIOS.TXT
NEO4-SLI
7100NMS.300
7100NMS.310
7100NMS.320
7100NMS.330
7100NMS.336
7100NMS.340
7100NMS.350
7100V32.TXT
7100V33TXT
7100V34.TXT
AWFL859G.EXE
Also equippedt with The Volkov Commander, Version 4.05
A "Norton Commander" clone for easier navigating
==================================================
07.05.05
==================================================
W7135:
K8N Neo 3 nForce4-4x for S754
Made a bios placeholder/folder for this motherboard .
All officials availible. ( v.1.0 only )
==================================================
07.05.05
==================================================
W7025:
K8N Neo 2 Platinum
New BETA bios added (Beta 1.8 )
All officials availible. ( version 1.6 placed under beta as it's only official on MSI korean site not global )
MurdoK's modded 1.6 and 1.8 placed under modded .
W7030:
K8N Neo Platinum (Neo1)
All officials availible.
Pinochio's modded 1.6 placed under modded .
W7100:
K8N Neo 4 SLI Platinum & K8N Neo 4 Diamond
New BIOS files added for 7100 Diamond (7100NMS v.1xx) and 7100 SLI_Platinum 7100NMS v.3xx
New BETA bios added for Diamond ( Beta 1.3 version 3 )
All officials availible.
Version 5XX bioses is placed under DIAMOND/BETA
New beta version 506 added .
W7125:
K8N Neo4 Platinum Ultra
New BETA bios added ( Beta 1.4 version 1 )
All officials availible.
==================================================
03.04.05
==================================================
MS-7100 (K8N Neo4 SLI Series , diamond/platinum) all bioses released , officials and beta's .
Officials ends with zero , e.g diamonds = W7100NMS_110.zip(V 1.1) , W7100NMS_100.zip(V 1.0)
Officials ends with zero , e.g platinum = W7100NMS_300.zip(V 3.0 platinum)
Betas ends with a digit 1-9 , e.g W7100NMS_113.zip
Standard BIOS W7100NMS.110
Release Date 2.18.2005
1. Update CPU code
2. Fix AMD K8 Rev.E DIMMS DRAM size show error.
3. Fixed report error SMB ID for MCP04
Beta BIOS W7100NMS.113 (SATA HD issue)
Release date 020205
1. Fix DRAM fail no Beep.
2. Do not show SATA Device string during POST2 screen.
3. Update NVMM 4.79.
Switch to Big-Real-Mode before calling NVMM.
Fix "identify" function to be bus/dev/func independent.
During LDT-5x operation occasional CRC errors occur. Fixed with new PROD settings.
Certain Maxtor 300 GB drives fail detection, or are slow to detect.
Results in slow POST. Fixed with new PROD settings.
Fixed CK804 detection routine. Removed dependency on hardcoded Bus/Dev/Func number
4. Update NVPXE 2.03.0469.
.Fix CPU speed dependency causing initialization failure on faster processors
.Increase DHCP timeout. This avoids PXE error message "PXE-E51..." when connected to a switch
with Spanning Tree Protocol enabled.
.Fixed connectivity problems between Marvell PHY and some switches (ie. Cisco FastHub).
5. Added "Sort_PCI_ROM" for release more shadow space.
6. Modify CPU-Voltage function
7. Update CBROM.EXE Ver.1.47
MS-7125 (K8N Neo4 Series) all bioses released , officials and beta's .
Officials ends with zero , e.g W7125NMS_100.zip , W7125NMS_110.zip
Betas ends with a digit 1-9 , e.g W7125NMS_121.zip , W7125NMS_124.zip
==================================================
01.26.05
==================================================
MS-7030 (K8N Neo Series) Bios 1.5
1. This is Award BIOS release.
2. This BIOS fixes the following problem of the previous version:
- Support Matrox G450 AGP card.
- Update CPU ID.
- Support FX-55.
- Support Sempron CPU 1800+ GHz.
- Update NVRAID ROM firmware to Ver:4.60.
3. 2005/01/21
==================================================
01.19.05
==================================================
Bios'es for
MSI K8N Neo1 Platinum s754 , 7030
Added beta bios'es
1.57 and 1.58
Both have not been modded with opening of hidden options
nor a replaced nvraid.rom .
Note!
1.57 gave me some problems with upped fsb , black screen on boot
and overclocking reset message - loaded defaults .
This with same settings as with 1.56.
1.58 runs just as good in my rig as 1.56 , found no issues with it (yet).
==================================================
01.14.05
==================================================
Bios for
MSI K8N Neo2 Platinum s939 , 7025
Added modded bioses (unhidden options)
1.37 and 1.41
And the Beta 1.5X
==================================================
12.01.04
==================================================
Bios for
MSI K8N Neo2 Platinum s939 , 7025
Official bios W7025NMS.140 (added 12.10.2004)
This one has the same boot block as 1.51B but different from all others .
==================================================
12.07.2004
==================================================
Update of boot block is not always neccesary.
Theese tables show with a letter the boot block version of each bios.
The bat file includes a /wb switch which reprograms bootblock .
If the flash goes wrong with boot block flashed and the boot block gets corrupted , no floppy rescue can be done.
Then it's adviced only to use the /wb swich in the included bat file when neccesary.
Table for S939 Neo2 ( 7025NMS )
Code: [Select]
|...A..|...B...|...C...|...C...|...C...|...E...|...D...|...D. ..|...D....|...E. ..|...E. ..|...E. ..|...F. ..|...F. ..|
|.100..|..110..|..120..|.1B23..|.1B25..|..130..|.1B33..|..1B34..|..1B35..|..1B36..|..1B37..|..1B41..|..140..|..1B51..|
7025 120/123/125 share the same boot block version.
7025 130/136/137/141 share the same boot block version.
7025 133/134/135 share the same boot block version.
7025 151/140 share the same boot block version.
Table for S754 Neo Platinum/FSR ( 7030NMS )
Code: [Select]
|...A..|...B...|...C...|...D...|...D...|...E...|...E...|...E. ..|...E....|...E. ..|...E. ..|...F. ..|...G. ..|...H. ..|...I. ..|
|.110..|..120..|..130..|.1B42..|.1B43..|.1B44..|.1B45..|..1B46..|..1B47..|..1B48..|..140...|..1B51..|..1B52..|..1B55..|..1B56..|
Only when flashing from one bios version to another bios version where boot block is different the /wb switch should be used .
If boot block it's equal in the source and target bios the /wb switch can be dropped if this is prefered.
==================================================
12.01.04
==================================================
Bios for
MSI K8N Neo(1) Platinum/FSR s754 , 7030
Beta bios W7030NMS.156 pinochio mod with new raidbios 4.71 (added 12.01.2004)
==================================================
12.01.04
==================================================
Bios for
MSI K8N Neo2 Platinum s939 , 7025
Beta bios W7025NMS.151 (added 12.01.2004)
==================================================
11.20.04
==================================================
New entry point from 2004.11.20
http://members.lycos.co.uk/syar2003/
Changes:
All S939 Neo2 bioses availible
Pinochio modded bioses , and Pinochio modded with nvraid ide rom bios 4.66
==================================================
I found it a little bit hard to search throgh posts to find hostings of the
different 1.4x & 1.5x bioses out.
I have collected all v 1.4x &1.5x upto now as well as the official ones .
All in one place. Thought i shold share the info .
*=========================================================*
Bios for
MSI K8N Neo FSR , 7030NMS
MSI K8N Neo Platinum , 7030NMS
[STRIKEOUT]http://members.lycos.co.uk/syar2003/S754_neo_plat_bios[/STRIKEOUT]
Betas:
1.4b2 , 1.42
1.4b3 , 1.43
1.4b4 , 1.44
1.4b5 , 1.45
1.4b6 , 1.46
1.4b7 , 1.47
1.4b8 , 1.48
1.5b1 , 1.51
1.5b2 , 1.52 (added 09.14.04)
1.5b5 , 1.55 (added 09.30.04)
1.5b6 , 1.56 (added 10.22.04)
Remember :
Enter bios and load optimized default + save/exit , before flashing .
Do the flashing to 1.56 with AWFL833D W7030NM5.156 /py/sn/wb/cc/cd/cp/f/r
Enter bios and load optimized default , and save .Important .
(enter bios and load optimized + save,exit if you get F1-continue at first boot)
Boot once again after this without any changes/editing in bios to floppy prompt and let the dmi pool build and update itself.
Then boot/edit bios set your individual bios preferences .
Officials:
1.1
1.2
1.3
1.4 (09/10-04)
Hidden bios options:
Shift+F2 then Alt+F3
Hidden BIOS options NOT gone with 1.4x
Some modded for K8N Neo Platinum/K8N Neo FSR is availible:
These dont need the shift+F2/alt+f3 to unhide options (and some other msi hidded items is unhidden also)
Modded Beta 1.56 with pinochio boot logo , nvraid ide rom bios 4.60
Modded Beta 1.56 with pinochio boot logo , and nvraid ide rom bios 4.66
[STRIKEOUT]http://members.lycos.co.uk/syar2003/S754_neo_plat_bios/modded/[/STRIKEOUT]
Theese are tested by several users (including myself and work fine)First off get the BIOS version you want to flash:
Take a look at syar2003's excellent collection!
http://members.lycos.co.uk/syar2003/S754_neo_plat_bios/
Download the BIOS version you want, extract the .zip and put the files on a bootable floppy. Syar2003 supplies a handy flash.bat file with "his" 1.55 that you can use. This saves you typing in all the command line switches listed in the quote below.
After booting from floppy, copy the three files (AWFL833D.exe, flash.bat and W7030NMS.155) to a hardisk or the ramdrive that was just created by the bootdisk. I strongly advise against flashing directly from floppy!
(Notice that you will need a FAT partition on your harddisk to be able to access it from "DOS".)
Now follow syar2003's flash guide:
Quote
Remember :
Enter bios and load optimized default + save/exit , before flashing .
Do the flashing to 1.55 with AWFL833D W7030NMS.155 /py/sn/wb/cc/cd/cp/f/r
Enter bios and load optimized default , and save .Important .
Boot once again after this without any changes/editing in bios to floppy prompt and let the dmi pool build and update itself.
Then boot/edit bios set your individual bios preferences .
Hope this will help you!
Btw. When I flashed to 1.55 my NIC went dead in windows and I had no internet access. Make sure you have a official BIOS release at hand (on the same or other disk?) so that you can flash back to a version you trust...
edit: need more info? take a look here:
https://forum-en.msi.com/index.php?threadid=54105
Maybe you are looking for
-
I recently had to do a system restore on my computer (Windows XP) and returned it to factory settings, therefore having to reinstall everything including my iPod. The disc I currently have has an older version of iTunes on it, and when I install it e
-
Unable to create SC since commitment already exist for IO
Hi SAP Guru SRM 5.0 / Extended Classic Scenario / CCM2.0 1) User has created one shopping Cart with two line items 2) Distributed the First Line item to two quantities with different account assignment of internal orders :- Quantity 46,090 to IO 20
-
Hi team, i m trying to ftp a file on one of the windows server via Publisher.But i get this error. oracle.apps.xdo.servlet.scheduler.ProcessingException: java.lang.StringIndexOutOfBoundsException at oracle.apps.xdo.servlet.scheduler.XDOJob.deliver(XD
-
Hi, Today, my SL510 stopped working, when I press the power button it does not turn on. However, when I plug in the power the battery light comes on. I've tried taking out the ram and inserting it back in, that did not help. Please suggest. Dave
-
We have made changes to one of the jar beans. Is there a way that I can deploy the jar file alone and let the application (jsp pages) see the changes? Typically we deploy using either JDeveloper or Oracle Application Server Web Interface. To test, we