Retrieving Key from array
Hi
I need a dynamic way of retrieving all the "keys" from a array.
Found this which is exactly what I need but doesn't work as expected in my case:
var myObject:Object = {key1:"value1",key2:"value2"}
for (var s:String in myObject)
trace("key:",s,"value:",myObject[s]);
//key: key2 value: value2
//key: key1 value: value1
My case:
var testArray:Array = new Array()
testArray = DG1.dataProvider.toArray() // create array from dataprovider
I've tested this array and it performs "correctly" as an array but when I try the above mentioned method it traces as follows:
key: 0 value: [object Object] (key not being what I need)
What I need:
dgArr.push({partNo:event.target.data['partNo'+i],description:event.target.data['descriptio n'+i],cost:event.target.data['cost'+i]});
trace (????) //outputs = partNo, description, cost etc...
Thanks for any help.
your dataprovider values are also objects. use:
function listF(dp:DataProvider):void{
for(var i:int=0;i<dp.length;i++){
for(var s:String in dp.getItemAt(i)){
trace(s,dp.getItemAt(i)[s]);
Similar Messages
-
Post key from array into value upon submit
Hello,
I am new to ColdFusion and new to this forum, so be kind please. I have a form the gets a select list from an array and I need the key of the array to post into another hidden field upon submission of the form. I have some javaScript validation before the array, so maybe I could include something there, but I just can't figure it out. This is what I have so far:
<script language="javascript" type="text/javascript">
<!--
function OnButton1()
var x=document.forms["Form1"]["name"].value
if (x==null || x=="")
alert("Name must be filled out");
return false;
var x=document.forms["Form1"]["email"].value
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
alert("Not a valid e-mail address");
return false;
var x=document.forms["Form1"]["message"].value
if (x==null || x=="")
alert("Message must be filled out");
return false;
else
document.Form1.action = "http://fp1.formmail.com/...." // First target
document.Form1.target = "iframe1";
document.Form1.submit(); // Submit the page
document.Form1.action = "contact_us_ty.cfm" // Second target
document.Form1.target = "contact_us_ty.cfm";
document.Form1.submit(); // Submit the page
return true;
-->
</script>
<cfset subject[1] = "Choose Subject or Recipient" />
<cfset subject[2] = "Alexis de Tocqueville Society" />
<cfset subject[3] = "Campaign" />
<cfset subject[4] = "Donations" />
<cfset subject[5] = "Feedback" />
<cfset subject[6] = "Getting Help" />
<cfset subject[7] = "Planned Giving" />
<cfset subject[8] = "UW Community Fund" />
<html>
<head></head>
<body>
<form name="Form1" action="contact_us_ty" method="post">
<input type="hidden" name="_pid" value="0" />
<input type="hidden" name="_fid" value="0" />
<input type="hidden" name="recipient" value= "NEED THE KEY HERE" />
<input type="hidden" name="subject" value= "Website Contact Us Email" />
<table width="*" bgcolor="#ffffff" border="0" cellspacing="0" cellpadding="2">
<tr valign="middle">
<td align="right"><strong>Name: </strong></td>
<td><input type="text" name="name" size="30" value="" /></td>
</tr>
<tr valign="middle">
<td align="right"><strong>Email Address: </strong></td>
<td><input type="text" name="email" size="30" value="" /></td>
</tr>
<tr valign="middle">
<td align="right"><strong>Subject: </strong></td>
<td>
<select name="subject" id="subject"><cfloop array="#subject#" index="i"><cfoutput><option>#i#</option></cfoutput></cfloop> </select>
</td>
</tr>
<tr valign="top">
<td align="right"><strong>Message: </strong></td>
<td><textarea cols="30" rows="8" name="message"></textarea></td>
</tr>
<tr valign="top">
<td> </td>
<td align="left"><input type="submit" name="button1" value="Submit" onclick="return OnButton1();" /></td>
</tr>
</table>
</form>
<div style="visibility:hidden"><iframe name="iframe1" width="40" height="40"></iframe></div>
</body>
</html>
Any help is greatly appreciated.
Thanks,
sLe2222Hi,
1). I'm assuming that you're naming the select, and passing the array value in the value field.
2). On the posting page, you should be able to obtain that value.
3). If you want to then move it into a hidden field, I'd make sure the hidden tag is inside a form tag group, and around that, I'd place <cfoutput> tags. The value in the hidden tag that you'll want to set to should be inside of #...#.
So page 1: (I'm using input, you should use select)
<form action="two.cfm" method="get">
<input name="bill" type="text" value="8">
<input type="submit" value="go">
</form>
Page 2:
<cfoutput>#bill#</cfoutput>
<cfoutput>
<form action="three.cfm" method="get">
<input name="newbill" type="hidden" value="#bill#">
<input type="submit" value="go">
</form>
</cfoutput>
Page 3:
<cfoutput>#newbill#</cfoutput>
If you're going to be using this field many times, I'd sugges setting the value equal to a SESSION.variable. That way you can eliminate all of the hidden tags, which can get really out of hand, and are VERY hard to debug.
something like: <cfset SESSION.newbill = bill /> Then anytime you need the value, just call the SESSION.newbill. You would do this on page 2.
Hope this helps,
<cfwild /> -
Data retrieve data from array PL/SQL is "???"
Hi,
I follow the sample code shown in getting the data of PL/SQL using Java.
Please see below:
OracleCallableStatement stmt =(OracleCallableStatement)conn.prepareCall
( "begin ? := getEMpArray; end;" );
// The name we use below, EMPARRAY, has to match the name of the
// type defined in the PL/SQL Stored Function
stmt.registerOutParameter( 1, OracleTypes.ARRAY,"EMPARRAY" );
stmt.executeUpdate();
// Get the ARRAY object and print the meta data assosiated with it
ARRAY simpleArray = stmt.getARRAY(1);
System.out.println("Array is of type " + simpleArray.getSQLTypeName());
System.out.println("Array element is of type code "+simpleArray.getBaseType());
System.out.println("Array is of length " + simpleArray.length());
// Print the contents of the array
String[] values = (String[])simpleArray.getArray();
for( int i = 0; i < values.length; i++ )
System.out.println( "row " + i + " = '" + values +"'" );
But when i view the data from java the data that is being fetch is "???". All the array data is like this "???".
But when i debug the PL/SQL the data is OK.
I dont know if this is a binary numbers or what.
I dont know how to solve this. And get the real data.
Please help.
Thanks.
Edited by: user652585 on Oct 22, 2008 9:02 AMI'm guessing that your database NLS_Language settings don't match your clients.
Go into the project properties->compiler->encoding and choose the right caracter set to match your database's one. -
Unable to retrieve data from a Associative Array (?)
Hi!!!! :)))
i've a problem!!!
this is the oracle's code:
Package GEST_REPORT
IS
type rec_url is record(
TIBCDCON TBISD_30.TIBCDCON%TYPE,
etc...
SETDEL VARCHAR2(10)
type tab2 is table of rec_url index by binary_integer;
FUNCTION MAIN_SELECT
( CPLAS IN VARCHAR2)
RETURN tab2;
END;
...and a java code:
String storedProcedure = "{? = call GEST_REPORT.MAIN_SELECT(?)}";
String result = "";
try{
if (connection != null) {
CallableStatement callableStatement = null;
callableStatement = preprepareCall(storedProcedure);
// preparo parametri di input.
callableStatement.setString(2, "OM");
callableStatement.registerOutParameter(1, oracle.jdbc.driver.OracleTypes.ARRAY, "tab2");
and so on...
In the last line of code throws an 'invalid name pattern'
or
"ORA-21700: object does not exist or is marked for delete"
if registerOutParameter(1, oracle.jdbc.driver.OracleTypes.ARRAY, "ISDSV.GEST_REPORT").
Where TAB2: IS THE MY ARRAY (OR NESTED TABLE?);
GEST_REPORT: THE NAME OF PACKAGE;
ISDSV: THE USER.
do u have suggestion for retrieve data from TAB2 in JAVA??
THKS!!!!!!Hi
Use fully qualified type name: schema_name.type_name. For your case that would be "ISDSV.tab2"
Cherrs :)) -
Retrieve license key from Adobe Acrobat X software install
Hello,
Pardon if this is a simple thing to find. My experience with Adobe is pretty much limited to reader and flash.
I am helping a friend here. He is upgrading his old PC to a new PC. He would like to install his old copy of Adobe Acrobat X on it, but lost the license key some time ago. My question is there a way to find the license key from the software itself?If you don't have any luck with obtaining it from your friend's Adobe account, Belarc Advisor should be able to retrieve it from the PC
Belarc Advisor - Free Personal PC Audit, for software, hardware and security configuration information on your computer.… -
Using keys to search and retrieve values from HashMap
I've been fiddling around with this problem for a while and can't seem to find any working solution. What I have is a method that I want to return all values from a HashMap, but instead of using the regular keys for a HashMap (0, 1, 2, 3), my keys are different numbers such as 51414, 62513, etc.
public Car[] getAllCars() {
Map<Integer, Car> myCars = system.getCars(); //getCars() returns HashMap of Car objects from another class
Car[] c = new Car[myCars.size()];
if(myCars.size()!=0) // ensure map is populated
for(int i=0; i<myCars.size(); i++)
myCars.get(i);
return c;
}So what's happening at the moment is it loops through myCars and gets some values, but only those ones at the keys of 0-15 (the size of the Map). What I need is to get the Keys from myCars and use them to return all Car objects. The HashMap API has something called KeySet() which I think could help me, but I can't get that working.
Any ideas?DiscoInferno wrote:
Short of an SSCCE I think this might more accurately describe what I'm after.
public Car[] getAllCars() {
Map<Integer, Car> myCars = system.getCars(); //getCars() returns HashMap of Car objects from another class
Car[] c = new Car[myCars.size()];
Set<Integer> s = holds.keySet();
Iterator keyIter = s.iterator();
if(myCars.size()!=0)
while (keyIter.hasNext()) {
Object key = keyIter.next();
Car cc = myCars.get(key);
System.out.println(myCars.get(key));
return null;
}What that does is gets the Car object that matches the specified key. What I need is for it to be returnable as an array of Car objects. I don't want it to print, but the output that is printed is basically what I want to be returned to an array.First, I'm not sure how you managed to find keySet() and not find values().
Second, okay, so you know how to get each value. Do you not know how to set a value in an array? Do you not know how to return a value from a method? Google can help you find tutorials for those. Otherwise, I have no idea what difficulty you're having. -
We are transitioning from Exchange 2003 to Exchange 2010. We found Outlook online mode (non-cached mode) have many warning "Outlook is trying to retrieve data from the Microsoft Exchange Server [CAS-ARray]", usually happen when users tried to open
address book but sometimes even normal operation like click the Send button. The problem does not affect OWA and extremely rare when Outlook is running in cached mode. Check the firewall logs, we notice a lot of "TCP Packet Out of State" drops.
We have a lot from the CAS/HT to DC/GC on TCP_3268 and LDAP. And the errors are "TCP packet out of state: First packet isn't SYN" with tcp_flags FIN-ACK, PUSH-ACK.
We also have a lot from CAS/HT to the Outlook Clients on the static RPC port (TCP_59933). And the errors are "TCP packet out of state: First packet isn't SYN" with tcp_flags FIN-ACK, PUSH-ACK and RST-ACK, ACK.
This happens even on Outlook 2010 which I though it has TCP Keep Alive implmented to keep the session active within 1 hour.
Can somebody tell me if these out-of-state are the cause of our problem? And how to fix it?
THANK 1,000,000Hello AndyHWC,
I did some consulting with our CAS team and received the following feedback to your post:
It is difficult to determine what is causing resets without seeing the captures first hand however, the concern is that you are seeing dropped packets on the firewall logs. Where is this firewall located?
Based on the description "Check the firewall logs, we notice a lot of "TCP Packet Out of State" drops." and "We have a lot from the CAS/HT to DC/GC on TCP_3268 and
LDAP." indicates to me that the firewall is between CAS and GC. This not supported under any circumstances and would explain the issue they are seeing with clients trying to "retrieve data from the GC".
If there is not a firewall between the GC and CAS then a Microsoft support engineer would need to have concurrent Netmon Captures from client, CAS, GC during the
issue to analyze. If only one GC exists consider adding another GC to handle the client requests and for fault tolerance.
Also verify that all NIC card drivers are updated to the latest driver version
More information about firewalls with Exchange 2007/2010
http://msexchangeteam.com/archive/2009/10/21/452929.aspx
http://technet.microsoft.com/en-us/library/bb232184(EXCHG.80).aspx
You can install the Client Access server role on an Exchange 2007 computer that is running any other server roles except for the Edge Transport server role. You
cannot install the Client Access server role on a computer that is installed in a cluster. Installation of a Client Access server in a perimeter network is not supported.
http://technet.microsoft.com/en-us/library/dd577077(EXCHG.80).aspx
“The Installation of a Client Access Server in a Perimeter Network Is Not Supported
Issue You may want to install an Exchange 2007 Client Access server in a perimeter network. However, this type of installation is not supported in Exchange
2007.
Cause The Exchange 2007 Client Access server role is not supported in any configuration in which a firewall is located between the Client Access server
and a Mailbox server or a domain controller. This includes firewall devices, firewall programs, or any program or device that is designed to restrict traffic between two network locations.
For correct operation, Client Access servers require typical domain connectivity to domain controllers and global catalog servers. Because any devices
or programs that restrict or reduce access to domain controllers or global catalog servers may affect the correct operation of the Client Access server, we do not support this type of configuration.
Resolution To resolve this issue, move the Client Access servers to the internal network. For more information about the ports that Exchange 2007 uses
for various services, see Data Path Security Reference.”
Thanks,
Kevin Ca - MSFT
Kevin Ca - MSFT -
Writing and retrieving RSA keys from a file
Hello all,
I'm trying to write a generated RSAPublicKey and RSAPrivateKey to a file, and then, later retrieve them.
I thought I could use ObjectInput/OutputStream to do that, but when I do so I get the exception java.io.NotSerializableException: java.io.ObjectOutputStream
(I'm surprised, because RSAPublic/PrivateKey are serializable, aren't they ?).
If this is not the way to do it, I do not know how (no key constructor reading from byte [] ...).
Can somebody please help me ?
Thanks,
Axelle.Hi,
Can we generate public and private keys from fingerprint?
where can i find a piece of code to view how it is.
Thanks,
Ganesh -
Retrieving auto inc primary key from entity bean (MySQL DB)
Hello,
I searched the forum intensively, but did not find an answer for the following problem.
I've set up an MySQL database "Location" with two fields (ID, Description), ID is my primary key and I've added the AUTO_INCREMENT flag to this field. This works fine, i can add a row in the table with my entity bean "Location" from my session bean :
Location l = new Location();
l.setDescription("at home");
em.persist(l);
and even when I ask this location back from the DB, there is no problem :
Location l = em.find(Location.class,1);
return l.getDescription();
The rows in the table increment nicely. The problem however is, that you don't allways know the ID. So I would like to do the following from my session bean:
Location l = new Location();
l.setDescription("at home");
em.persist(l);
int id = l.getId();
the getID method allways returns a null object. The row is added in the DB, but the auto incremented ID is not returned to the entity bean!
I know I could solve this by generating the ID's myself, but one of the strengths of autoincrement should be not to have to do this, no?
If anyone has a clue how to solve this issue, I would very much appreciate it !
Michiel
Edited by: Michiel82 on Dec 6, 2007 6:01 AMNo reactions so far ... this is a work-around for the issue :
I've created an additional table sequence with two fields: gen_key and gen_value. Then, in my Location entity bean I can add the following:
@TableGenerator(
name="locationGen",
table="sequence",
pkColumnName="gen_key",
valueColumnName="gen_value",
pkColumnValue="location",
allocationSize=1
@Id
@GeneratedValue(strategy=GenerationType.TABLE,generator="locationGen")
@Column(name = "id", nullable=false)
private Short id;
This generates the primary key in the bussiness logic, but I would like to get the autogenerated key from my MySQL database (see previous post). Is this perhaps not supported by EJB3.0?
Michiel -
Retrieving data from Hashmap to a JList
Hello,
I have a hashmap, and I'm trying to do the following:
- Retrieve keyset to a Hashmap
- When hashmap changes the list also changes (eg. if I delete a key from the hashmap, the list item will also disappear)
The farthest I got so far was import the keyset to a Object[ ], and from the array to the JList, but once I delete a key from the Hashmap the JList doesn't get updated.
Thanks in advanceHello,
I have a hashmap, and I'm trying to do the
following:
- Retrieve keyset to a Hashmap
- When hashmap changes the list also changes (eg. if
I delete a key from the hashmap, the list item will
also disappear)
The farthest I got so far was import the keyset to a
Object[ ], and from the array to the JList, but once
I delete a key from the Hashmap the JList doesn't get
updated.
Thanks in advanceAnd no one here is going to finish your homework assignment for you. Post the code that you have actually written to this point and then ask a specific question regarding said code. Telling us that you can't do something means nothing to anyone here. -
Retrieving values from a JComboBox - Design question.
I would like some design guidance on a problem that I am hoping has been solved before. Here is my situation:
I have a JComboBox that I populate with String values from a database table. The exact set of values to be loaded into the JComboBox varies according values specified elsewhere on the GUI.
When I select an item from the JComboBox, I need to read the database to retrieve more information. The text is not sufficient for me to identify the data I need, so I need to get the table key from somewhere.
Is there anyway I can associate my table key with the text value inside the JComboBox and retrieve it when the user selects a drop down value from the JComboBox?
Many thanks in advance.when you load the data from the db, try to get ALL the information needed: item label+item value+description. put this data into a map (a hashmap) for example using a unique identifier. For example, use a numeric index. In this case, the item value should be the index that uniquely identifies your items.
create a simple bean that encapsulates the item contents: index+value+label, description.
Doing this will avoid the huge db access occurences.
hth -
MD randomly dropping partition from array
Hello, folks! I am having some trouble with MD randomly removing a partition from one of my RAID-1 arrays. So far this has happened three times over the past couple weeks, but it only happens on boot.
I have two 3TB WD SATA hard disks containing two RAID-1 volumes set up as follows:
/dev/sda1 FAT32 EFI System Partition (250MiB)
/dev/sdb1 Reserved Space (250MiB)
/dev/sda2 Disk 0 of /dev/md0 with v0.90 metadata (250MiB)
/dev/sdb2 Disk 1 of /dev/md0 with v0.90 metadata (250MiB)
/dev/sda3 swap partition 0 encrypted with dm-crypt mapped to /dev/mapper/swapA (8GiB)
/dev/sdb3 swap partition 1 encrypted with dm-crypt mapped to /dev/mapper/swapB (8GiB)
/dev/sda4 Disk 0 of /dev/md1 with v1.2 metadata (2750GiB)
/dev/sdb4 Disk 1 of /dev/md1 with v1.2 metadata (2750GiB)
/dev/md1 is encrypted with LUKS and mapped to /dev/mapper/root
/dev/mapper/root is the only volume in the LVM volume group rootvg
the volume group rootvg currently has three logical volumes
logical volume root is mapped to /dev/mapper/rootvg-root and is the file system root
logical volume home is mapped to /dev/mapper/rootvg-home and is mounted /home
logical volume var is mapped to /dev/mapper/rootvg-var and is mounted /var
I also wrote this initcpio hook (I call it 'secdec'), with a bit of help from the Arch Wiki, which decrypts /dev/mapper/root, optionally with a openssl encrypted key file on a USB memory stick:
run_hook ()
local keyCopyDec keyCopyEnc keyMountPoint maxTries retryDelay \
shutdownOnFail
# customizable ############################################################
keyCopyDec="/crypto_keyfile.bin" # temp storage for decrypted key data
keyCopyEnc="/crypto_keyfile.enc" # temp storage for encrypted key data
keyMountPoint="/ckey" # key storage device mount point
maxTries=3 # max number of decrypt attempts
retryDelay=2 # delay in seconds between retries
shutdownOnFail=0 # shut down computer if decrypt fails
#+0=yes, 1=no
# /customizable ###########################################################
local abortMsg passPromptKey passPromptVol passWrong secdecFormat \
shutdownMsg
local E_NOFILE
local KEY NOKEY SSLKEY
local CSQUIET OIFS
local cryptDev cryptName keyDev keyFile keyFs keyType pass passPrompt \
success tries
abortMsg="Aborting..."
passPromptKey="Key passphrase: "
passPromptVol="LUKS passphrase: "
passWrong="Invalid passphrase."
secdecFormat="secdec=cryptdev:dmname:keydev:keyfs:keyfile"
shutdownMsg="Shutting down computer. You may try again later."
E_NOFILE=66
KEY=1
NOKEY=0
SSLKEY=2
OIFS=$IFS
[ "$(echo "${quiet}" | awk '{print tolower($0)}')" == "y" ] && \
CSQUIET=">/dev/null 2>&1"
askForBooleanInput ()
# Ask the user for boolean input.
# $1: The question to pose.
# $2: A string containing single characters, separated by spaces, which are
#+keys pressed that would return boolean true (0).
# $3: A string containing single characters, separated by spaces, which are
#+keys pressed that would return a boolean false (1).
# Returns 0 if the user presses a key that generates a character found in
#+$2.
# Returns 1 if the user presses a key that generates a character found in
#+$3.
# Returns 2 if an incorrect number of parameters was provided.
local keyin
[ ${#} -ne 3 ] && return 2
echo -n "$1"
while true; do
read -sn1 keyin
case "$keyin" in
[$2]) echo "$keyin"; keyin=0; break;;
[$3]) echo "$keyin"; keyin=1; break;;
*) echo -n -e "\a";;
esac
done
return $keyin
askForPass ()
# Ask the user to enter a pass{word|phrase}.
# $1: The prompt to display.
# $2: The name of the variable to assign the input pass{word|phrase} to.
#+For example, to assign to $pass, $2 should be "pass".
# Returns 0 on success or 1 if there is a parameter error.
[ ${#} -ne 2 ] || [ -z "${1}" ] || [ -z "${2}" ] && return 1
read -rsp "$1" "$2"
echo
isSsl ()
# Examine a file for indications that it is SSL encrypted.
# $1: Path to the key file to examine.
# Returns 0 if the file appears to be SSL encrypted, 1 if the file does not
#+appear to be SSL encrypted and $E_NOFILE if $1 is not a regular file.
[ ! -f "${1}" ] && return $E_NOFILE
[ "$(dd if="${1}" bs=1 count=8 2>/dev/null | \
awk '{print tolower($0)}')" == "salted__" ]
getKey ()
# Attempt to find and copy a key from $keyDev to $keyCopyEnc.
# $1: Path to the device containing the key data.
# $2: Name of file system containing the key file.
# $3: Path to the key file, relative to $4.
# $4: Mount point of partition containing key file.
# $5: Path to temporary copy of key file.
# $6: Boolean value indicating whether to allow user the opportunity to
#+switch key devices before attempting to find a key. This is useful if
#+a key has already been tried and failed. The user could switch memory
#+devices before trying again. 0=true, 1=false; default is false.
# Returns one of $KEY, $NOKEY or $SSLKEY depending on what was found.
local result wait
if [ -z "${6}" ] || [ ${6} -eq 1 ]; then wait=1; else wait=0; fi
mkdir -p "$4" >/dev/null 2>&1
while true; do
if [ ${wait} -eq 0 ]; then
askForBooleanInput \
"(S)earch for key or (R)evert to LUKS passphrase? " "s S" "r R"
if [ ${?} -eq 0 ]; then result=$KEY; else result=$NOKEY; fi
wait=1
else
result=$KEY
fi
if [ ${result} -eq ${KEY} ]; then
if poll_device "${1}" ${rootdelay}; then
mount -r -t "$2" "$1" "$4" >/dev/null 2>&1
dd if="$4/$3" of="$5" >/dev/null 2>&1
umount "$4" >/dev/null 2>&1
if [ -f "${5}" ]; then
isSsl "${5}" && result=$SSLKEY
else
err "Key $3 not found."
unset result
wait=0
fi
else
err "Key device $1 not found."
unset result
wait=0
fi
fi
[ -n "${result}" ] && break
done
return $result
# If the secdec kernel parameter was not specified, inform the user, but
#+allow init to continue in case another hook will work.
if [ -z "${secdec}" ]; then
echo "Missing parameter: $secdecFormat"
return 0
fi
# Make sure required kernel modules are available.
if ! /sbin/modprobe -a -q dm-crypt >/dev/null 2>&1 || \
[ ! -e "/sys/class/misc/device-mapper" ]; then
err "Required kernel modules not available."
err "$abortMsg"
exit 1
fi
if [ ! -e "/dev/mapper/control" ]; then
mkdir -p "/dev/mapper" >/dev/null 2>&1
mknod "/dev/mapper/control" c \
$(cat /sys/class/misc/device-mapper/dev | sed 's|:| |') >/dev/null 2>&1
fi
# Parse the secdec kernel parameter, check it's format, make sure $cryptDev
#+is available, and that it contains a LUKS volume.
IFS=:
read cryptDev cryptName keyDev keyFs keyFile <<EOF
$secdec
EOF
IFS=$OIFS
if [ $(echo "${secdec}" | awk -F: '{print NF}') -ne 5 ] || \
[ -z "${cryptDev}" ] || [ -z "${cryptName}" ]; then
err "Verify parameter format: $secdecFormat"
err "$abortMsg"
exit 1
fi
if ! poll_device "${cryptDev}" ${rootdelay}; then
err "Device $cryptDev not available."
err "$abortMsg"
exit 1
fi
# Inform the user that $cryptDev doesn't contain a LUKS volume, but allow
#+init to continue, in case another hook can handle this.
if ! /sbin/cryptsetup isLuks "${cryptDev}" >/dev/null 2>&1; then
echo "Device $cryptDev does not contain a LUKS volume."
return 0
fi
# Attempt to open the LUKS volume.
tries=0
unset keyType
while true; do
success=1
# Attempt to copy a decryption key.
if [ -z ${keyType} ]; then
getKey "$keyDev" "$keyFs" "$keyFile" "$keyMountPoint" \
"$keyCopyEnc" 1
keyType=$?
elif [ ${keyType} -eq ${KEY} ]; then
getKey "$keyDev" "$keyFs" "$keyFile" "$keyMountPoint" \
"$keyCopyEnc" 0
keyType=$?
elif [ ${keyType} -eq ${SSLKEY} ]; then
if askForBooleanInput "(U)se a different key or (T)ry again? " \
"u U" "t T"; then
getKey "$keyDev" "$keyFs" "$keyFile" "$keyMountPoint" \
"$keyCopyEnc" 0
keyType=$?
fi
fi
# Open the LUKS volume.
if [ ${keyType} -eq ${NOKEY} ]; then
askForPass "$passPromptVol" "pass"
/sbin/cryptsetup luksOpen "$cryptDev" "$cryptName" "$CSQUIET" <<EOF
$pass
EOF
success=$?
[ ${success} -ne 0 ] && err "$passWrong"
else
if [ ${keyType} -eq ${SSLKEY} ]; then
askForPass "$passPromptKey" "pass"
/sbin/openssl aes256 -pass pass:"$pass" -d -in "$keyCopyEnc" \
-out "$keyCopyDec" >/dev/null 2>&1
if [ ${?} -ne 0 ]; then
rm -f "$keyCopyDec" >/dev/null 2>&1
err "$passWrong"
fi
else
mv "$keyCopyEnc" "$keyCopyDec" >/dev/null 2>&1
fi
if [ -f "${keyCopyDec}" ]; then
/sbin/cryptsetup --key-file "$keyCopyDec" \
luksOpen "$cryptDev" "$cryptName" "$CSQUIET"
success=$?
fi
fi
[ ${success} -ne 0 ] && err "Failed to open LUKS volume."
tries=$(( $tries + 1 ))
[ ${tries} -ge ${maxTries} ] || [ ${success} -eq 0 ] && break
sleep "$retryDelay"
done
if [ ${success} -eq 0 ]; then
if [ ! -e "/dev/mapper/${cryptName}" ]; then
err "LUKS volume was opened, but failed to map to $cryptName."
err "$abortMsg"
exit 1
fi
echo "LUKS volume opened."
else
if [ ${shutdownOnFail} -eq 0 ]; then
echo "shutdownMsg"
poweroff -f
fi
exit 1
fi
The failing array is /dev/md1 and mdadm is reporting the following:
mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Wed May 30 18:50:05 2012
Raid Level : raid1
Array Size : 2921467179 (2786.13 GiB 2991.58 GB)
Used Dev Size : 2921467179 (2786.13 GiB 2991.58 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Wed Sep 12 03:34:52 2012
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : archiso:1
UUID : 8ad37e84:f7261906:da3d317e:24080362
Events : 44661
Number Major Minor RaidDevice State
0 8 4 0 active sync /dev/sda4
1 0 0 1 removed
mdadm --examine /dev/sda4
/dev/sda4:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 8ad37e84:f7261906:da3d317e:24080362
Name : archiso:1
Creation Time : Wed May 30 18:50:05 2012
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 5842934631 (2786.13 GiB 2991.58 GB)
Array Size : 2921467179 (2786.13 GiB 2991.58 GB)
Used Dev Size : 5842934358 (2786.13 GiB 2991.58 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : clean
Device UUID : abba1dc3:3fadf7a7:be452bb5:b8bbe97b
Update Time : Wed Sep 12 03:37:48 2012
Checksum : aad3e44b - correct
Events : 44729
Device Role : Active device 0
Array State : A. ('A' == active, '.' == missing)
mdadm --examine /dev/sdb4/dev/sdb4:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x0
Array UUID : 8ad37e84:f7261906:da3d317e:24080362
Name : archiso:1
Creation Time : Wed May 30 18:50:05 2012
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 5842934631 (2786.13 GiB 2991.58 GB)
Array Size : 2921467179 (2786.13 GiB 2991.58 GB)
Used Dev Size : 5842934358 (2786.13 GiB 2991.58 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
State : clean
Device UUID : 09a09f49:b329feaa:3341111b:47b484fe
Update Time : Wed Sep 12 01:50:34 2012
Checksum : 1cdc19c0 - correct
Events : 42869
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing)
cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda2[0] sdb2[1]
204736 blocks [2/2] [UU]
md1 : active raid1 sda4[0]
2921467179 blocks super 1.2 [2/1] [U_]
unused devices: <none>
This is md log info of the first reboot after my first recovery:
Sep 9 20:18:03 localhost kernel: [ 1.784225] md: raid1 personality registered for level 1
Sep 9 20:18:03 localhost kernel: [ 2.552971] md: md1 stopped.
Sep 9 20:18:03 localhost kernel: [ 2.553418] md: bind<sdb4>
Sep 9 20:18:03 localhost kernel: [ 2.553574] md: bind<sda4>
Sep 9 20:18:03 localhost kernel: [ 2.554080] md/raid1:md1: active with 2 out of 2 mirrors
Sep 9 20:18:03 localhost kernel: [ 2.554093] md1: detected capacity change from 0 to 2991582391296
Sep 9 20:18:03 localhost kernel: [ 2.566266] md1: unknown partition table
Sep 9 20:18:03 localhost kernel: [ 2.617922] md: md0 stopped.
Sep 9 20:18:03 localhost kernel: [ 2.618382] md: bind<sdb2>
Sep 9 20:18:03 localhost kernel: [ 2.618525] md: bind<sda2>
Sep 9 20:18:03 localhost kernel: [ 2.619175] md/raid1:md0: active with 2 out of 2 mirrors
Sep 9 20:18:03 localhost kernel: [ 2.619203] md0: detected capacity change from 0 to 209649664
Sep 9 20:18:03 localhost kernel: [ 10.933334] md0: unknown partition table
And this is the next time I rebooted:
Sep 10 19:59:07 localhost kernel: [ 1.780481] md: raid1 personality registered for level 1
Sep 10 19:59:07 localhost kernel: [ 2.806037] md: md1 stopped.
Sep 10 19:59:07 localhost kernel: [ 2.806345] md: bind<sda4>
Sep 10 19:59:07 localhost kernel: [ 2.806888] md/raid1:md1: active with 1 out of 2 mirrors
Sep 10 19:59:07 localhost kernel: [ 2.806898] md1: detected capacity change from 0 to 2991582391296
Sep 10 19:59:07 localhost kernel: [ 2.820308] md1: unknown partition table
Sep 10 19:59:07 localhost kernel: [ 2.956599] md: md0 stopped.
Sep 10 19:59:07 localhost kernel: [ 2.957149] md: bind<sdb2>
Sep 10 19:59:07 localhost kernel: [ 2.957269] md: bind<sda2>
Sep 10 19:59:07 localhost kernel: [ 2.958086] md/raid1:md0: active with 2 out of 2 mirrors
Sep 10 19:59:07 localhost kernel: [ 2.958100] md0: detected capacity change from 0 to 209649664
Sep 10 19:59:07 localhost kernel: [ 11.742281] md0: unknown partition table
In between these two boots there are no reports of md failures. For some reason, its just dropping the second partition.
I just did a restoration earlier today and on the very next boot, md refuses to use /dev/sdb4. Once I booted, I checked update times (not the ones listed) and /dev/sda4 and /dev/sdb4 were about 4 minutes apart. Since it takes only about a minute for Arch to reboot, including me typing my openssl key password, Arch was running for about 3 minutes without updating. I'm assuming this is of some significance since /dev/md0 reports perfect synchronization.
All of this has been working very well for me for about 6 months now. Both hard drives, which I bought at the same time, are about 9 months old. I checked both drives using smartctl, and both report SMART enabled and passed. SMART attribute data doesn't make a lot of sense to me and I haven't looked up the format, but the reallocation event value is the same as the day I bought the drives, so I'm kind of assuming things are ok there, or at least bad sectors aren't being created.
I hope I've provided all required details here. Any help would be appreciated.
Last edited by cng1024 (2012-09-13 00:02:43)It would seem that nobody has any ideas about why this may be happening. I've done a complete diagnostic of both hard disks and both passed. I then downloaded the latest iso, formatted and reinstalled, but that failed after one reboot.
I have a theory as to why it may be happening, but I haven't tested it yet. Perhaps someone can tell me if I may be on the right track here. I got to wondering what happens during shutdown. The root fs remounts ro during shutdown, but it does remain mounted which means everything under that, my logical volumes, LUKS and RAID are all still open when the system halts. I saved my original configs before I reformatted and it turns out I forgot to add the shutdown hook to the initcpio image which means my RAID wasn't being stopped before halt.
I'm going to try a few experiments to see if adding the shutdown hook makes a difference. Hopefully I'm right, and I'll update either way, but I'd still appreciate it if someone with a bit more experience could weigh in on this. -
How to retrieve data from a jsp page
I have created a page with some text boxes, file, submit button. In my Ist jsp, i am dynamically add Text boxes and File (for Uploading).
In the 2nd jsp, i am used Jakarata FileUpload API. I am able to retrieve all data and files except that value of dynamicall added text boxes. That is, I cannot retrieve data from dynamically added text boxes.
Using Jakarata FileUpload API, i can retrieve values of form data using
getString() method.
I want to know that there is any way or method for retrieving form data values into String Array.
regards
madhu
[email protected]Use parseRequest(request) to get the file information as you already are doing. However, I dont know how you can use request.getParameter("textField1") to get the other fields from the page. My work-around is as follows:
Change your submit button to an ordinary button and add an onClick event to it. Then in the javascript function that supports the onClick, add the textField1 as follows:
<form name="fileUploadForm" method="post" action="someAction" (((more code code here)))))
function submitButtonClick(){
document.fileUploadForm.action=
document.fileUploadForm.action+
"?textField1="+document.fileUploadForm.textField1.value"+
"&textField2="+document.fileUploadForm.textField2.value"+
"&textField3="+document.fileUploadForm.textField3.value";
document.fileUploadForm.submit();
As you can see in the above code, I append the textField1 name/value pair to the end of the action. Now in the server, you can use getParameter("textField1"); -
Retrieving data from an ArrayList and presenting them in a JSP
Dear Fellow Java Developers:
I am developing a catalogue site that would give the user the option of viewing items on a JSP page. The thing is, a user may request to view a certain item of which there are several varieties, for example "shirts". There may be 20 different varieties, and the catalogue page would present the 20 different shirts on the page. However, I want to give the user the option of either viewing all the shirts on a single page, or view a certain number at a time, and view the other shirts on a second or third JSP page.
See the following link as an example:
http://www.eddiebauer.com/eb/cat_default.asp?nv=2|21472|9&tid=&c=&sc=&cm_cg=&lp=n2f
I am able to retrieve the data from the database, and present all of them on a JSP, however I am not sure how to implement the functionality so that they can be viewed a certain number at a time. So if I want to present say 12 items on a page and the database resultset brings back 30 items, I should be able to present the first 12 items on page1, the next 12 items on page2, and the remaining 6 items on page3. How would I do this? Below is my scriplet code that I use to retrieve information from the ArrayList that I retrieve from my database and present them in their entirety on a single JSP page:
<table>
<tr>
<%String product=request.getParameter("item");
ArrayList list=aBean.getCatalogueData(product);
int j=0, n=2;
for(Iterator i=list.iterator(); i.hasNext(); j++){
if(j>n){
out.print("</tr><tr>");
j=0;
Integer id=(Integer)i.next();
String name=(String)i.next();
String productURL=(String)i.next();
out.print("a bunch of html with the above variables embedded inside")
%>
</tr>
</table>
where aBean is an instace of a JavaBean that retrieves the data from the Database.
I have two ideas, because each iteration of the for loop represents one row from the database, I was thinking of introducing another int variable k that would be used to count all the iterations in the for loop, thus knowing the exact number. Once we had that value, we would then be able to determine if it was greater than or less than or equal to the maximum number of items we wanted to present on the JSP page( in this case 12). Once we had that value would then pass that value along to the next page and the for loop in each subsequent JSP page would continue from where the previous JSP page left off. The other option, would be to create a new ArrayList for each JSP page, where each JSP page would have an ArrayList that held all the items that it would present and that was it. Which approach is best? And more importantly, how would I implement it?
Just wondering.
Thanks in advance to all that reply.
Sincerely;
Fayyaz-You said to pass two parameters in the request,
"start", and "count". The initial values for "start"
would be zero, and the inital value for "count" would
be the number of rows in the resultSet from the
database, correct?Correct.
-I am a little fuzzy about the following block of code
you gave:
//Set start and count for next page
start += count; // If less than count left in array, send the number left to next next page
count = ((start*3)+(count*3) < list.size()) ? (count) : ((list.size() - (start*3))/3)
Could you explain the above block of code a little
further please?Okay, first, I was using the ternary operators (boolean) ? val_if_true : val_if_false;
This works like an if() else ; statement, where the expression before the ? represents the condition of the if statement, the result of the expression directly after the ? is returned if the condition is true, and the expression after the : is returned if the condition is false. These two statments below, one using the ternary ? : operators, and the other an if/else, do the same thing:
count = ((start*3)+(count*3) < list.size()) ? (count) : ((list.size() - (start*3))/3);
if ((start*3)+(count*3) < list.size()) count = count;
else count = ((list.size() - (start*3))/3);Now, why all the multiplying by 3s? Because you store three values in your list for each product, 1) the product ID, 2) the product Name, and 3) the product URL. So to look at the third item, we need to be looking at the 9th,10th, and 11th values in the list.
So I want to avoid an ArrayIndexOutOfBounds error from occuring if I try to access the List by an index greater than the size of the list. Since I am working with product numbers, and not the number of items stored in the list, I need to multiply by three, both the start and count, to make sure their sum does not exceed the value stored in the list. I test this with ((start*3)+(count*3) < list.size()) ?. It could have been done like: ((start + count) * 3 < list.size()) ?.
So if this is true, the next page can begin looking through the list at the correct start position and find the number of items we want to display without overstepping the end of the list. So we can leave count the way it is.
If this is false, then we want to change count so we will only traverse the number of products that are left in the list. To do this, we subtract where the next page is going to start looking in the list (start*3) from the total size of the list, and devide that by 3, to get the number of products left (which will be less then count. To do this, I used: ((list.size() - (start*3))/3), but I could have used: ((list.size()/3) - start).
Does this explain it enough? I don't think I used the best math in the original post, and the line might be better written as:
count = ((size + count)*3 < list.size()) ? (count) : ((list.size()/3) - start);All this math would be unnecessary if you made a ProductBean that stored the three values in it.
>
- You have the following code snippet:
//Get the string to display this same JSP, but with new start and count
String nextDisplayURL = encodeRedirectURL("thispage.jsp?start=" + start + "&count=" + count + "&item=" + product);
%>
<a href="<%=nextDisplayURL%>">Next Page</a>
How would you do a previous page URL? Also, I need to
place the "previous", "next" and the different page
number values at the top of the JSP page, as in the
following url:
http://www.eddiebauer.com/eb/cat_default.asp?nv=2|21472
9&tid=&c=&sc=&cm_cg=&lp=n2f
How do I do this? I figure this might be a problem
since I am processing the code in the middle of the
page, and then I need to have these variables right at
the top. Any suggestions?One way is to make new variable names, 'nextStart', 'previousStart', 'nextCount', 'previousCount'.
Calculate these at the top, based on start and count, but leave the ints you use for start and count unchanged. You may want to store the count in the session rather than pass it along, if this is the case. Then you just worry about the start, or page number (start would be (page number - 1) * count. This would be better because the count for the last page will be less than the count on other pages, If we put the count in session we will remember that for previous pages...
I think with the details I provided in this and previous post, you should be able to write the necessary code.
>
Thanks once again for all of your help, I really do
appreciate the time and effort.
Take care.
Sincerely;
Fayyaz -
How can I get keys from Hashtable in the same order?
Hello, everyone.
I have a Hashtable containing key-value pairs, I need to get the keys in the same order as I use
method put(key,value) to save the key-value pairs. But I can only find Hashtable.keys() to fetch the keys in form of Enumeration and when retrieve the keys from the Enumeration,they are not in the original order!
The following is my code:
Hashtable ht = new Hashtable();
ht.put("Name","Harry Bott");
ht.put("Gender","Male");
ht.put("Age","25");
String[] Items = new String[ht.size()];
Enumeration e = ht.keys();
int i = 0;
while(e.hasMoreElements()) {
Items[i++] =(String)(e.nextElement());
The Items contains the keys but they are not in the original order.
Does anyone know how to get the keys from a Hashtable in the same order when they're put?
Thank you!yeah, another solution is to stored keys on a Collection at the same time you put them on the HashMap with its values.
Then when ur going to retrieve objects from the Map u iterate the Collection that has the ordered keys and use them.
Maybe you are looking for
-
I've been succesfully working with media encoder for sometime now but it won't start for some reason. Using Mac OS 10.6.8, icore 7 proc, 16gb RAM, Encoder CC 6.0.2 what's causing this?
-
Balance carried forward for New GL
Hi Expert, I would like understand about the balance carried forward for AP and AR in the New GL. When executing the program in test run mode, user will download the balances and try to tie to the recon accts in trial balance. The openning balance ge
-
Product heirarchy vs material groups for sales
Hi, Can I make use of the material groups(5 in toatl in sales view1) to generate report for seeing the value/sale of any material instead of using product heirarchy ? If I have created a 3 level heirarchy then how best I can use it to see in a report
-
SAP WM-PP: Spit transfer requirements
Hello, We are working in a WM-PP scenario with transfer requirements and transfer orders. For one process we need to use the "2 step picking" functionality of the SAP system. In the release of the production order, the system is creating the transfer
-
Cannot tick checkbox cell editor in TreeNestedInTable UI
Hi everyone, i have created a TreeNestedInTable UI using a Check Box cell editor. It all works fine except when I try to check on of the check boxes in the table it does not tick the box. Instead, it highlughts the row. I can, however, select multi