Simon, why do I get an OrdImage.setProperties() exception ORA-22288
Hi Simon;
I've debugged a problem with the ImageExample to the point where I'm convinced one cannot call setProperties indirectly as the example code shows. SetProperties can only be called during a load - for example imgObj.LoadFromFile
The example from OTN sample code shows a sample method:
public void setPropertiesExample(OracleConnection con)
try
int index = 0;
Statement s = con.createStatement();
OracleResultSet rs =
(OracleResultSet)s.executeQuery("select * from ordimagetab where id = 5 for update");
while(rs.next())
index = rs.getInt(1);
OrdImage imgObj = (OrdImage) rs.getCustomDatum(2, OrdImage.getFactory());
imgObj.setProperties();
System.out.println("set Properties called");
if(imgObj.checkProperties())
System.out.println("checkProperties called");
System.out.println("setProperties successful");
System.out.println("checkProperties successful");
System.out.println("successful");
else
System.out.println("checkProperties called");
System.out.println("setProperties not successful");
System.out.println("checkProperties successful");
OraclePreparedStatement stmt1 =
(OraclePreparedStatement) con.prepareCall("update ordimagetab set image = ? where id = " + index);
stmt1.setCustomDatum(1,imgObj);
stmt1.execute();
stmt1.close() ;
rs.close();
s.close();
catch(Exception e)
System.out.println("exception raised " + e);
}No matter how many times I set this example or create something similar I get this error when I do something like:
ImageExample ie = new ImageExample();
con = ie.connect();
ie.setPropertiesExample(con);
exception raised java.sql.SQLException: ORA-22288: file or LOB operation FILEOPEN failed
No such file or directory
ORA-06512: at "ORDSYS.ORDIMG_PKG", line 418
ORA-06512: at "ORDSYS.ORDIMAGE", line 25
ORA-06512: at line 2
I noticed the only way to avoid this problem is to load the image immediately prior to the setproperties call...like:
OrdImage imgObj = (OrdImage) rs.getCustomDatum(2, OrdImage.getFactory());
imgObj.loadDataFromFile("imgdemo.dat");
imgObj.setProperties();
imgObj.getDataInFile("fileexample.dat");Here I get setproperties to work, but I need to change a lot of code to load images in this form...
I am using the constructors provided and the functions you provided some time back - so I do not believe initialization is the issue here. Any ideas what might be wrong here??
Hi Chris,
There are a number of configuration and/or setup problems that can
cause this error. But first, it might be worth describing at a higher
level what is going on here.
By default an interMedia object can store or 'reference' data in one
of 3 ways:
- local: the data is stored locally in the BLOB, the local flag is
set to 1 to indicate this.
- FILE: the source type is set to FILE, which indicates the data is
stored in a directory of which the server is aware and to
which the user/schema has been granted access. The source
location specifies the database server directory name, which
will be upper case unless you created a mixed-case name with
the CREATE DIRECTORY command. The source name specifies the
file name, which is case sensitive on Unix platforms.
- HTTP: the source type is set to HTTP, which indicates the data is
accessed via a web server. The source location is the domain,
port and path and the source name is the item name.
If you instantiate an ORDIMAGE object using something like:
CREATE OR REPLACE DIRECTORY MY_IMAGE_DIR AS 'c:\myphotos';
INSERT INTO MY_IMAGES VALUES
( 1, ORDSYS.ORDIMAGE.INIT( 'FILE', 'MY_IMAGE_DIR', 'photo1.jpg' );then the setProperties method is going to try to open photo1.jpg in
the directory known to the database as MY_IMAGE_DIR. This can fail
with "ORA-22288: file or LOB operation FILEOPEN failed; No such file
or directory" for a number of reasons:
[list]
[*]The directory MY_IMAGE_DIR was never created using CREATE DIRECTORY
[*]The user was not granted read access to MY_IMAGE_DIR
[*]The directory c:\myphotos doesn't exist
[*]The file photo1.jpg doesn't exist in c:\myphotos
[list]
Bear in mind that, essentially, everything is happening at the server,
all the client is doing is causing the setProperties method of the
ORDIMAGE type to be invoked at the server, which reads the image file,
which must be accessible to the server. Assuming everything to be OK,
then the properties will be read from the image and stored in the
object. Of course, since BFILEs are writable, you can't operate on
this image to scale, crop or convert it, for example.
However, in your case, you're hitting one of the problems listed above.
Bear in mind, there are others. For example, although you might be able
to access an image on a shared network drive of some sort, doesn't mean
to say that the database server can do so. This is a common problem on
NT. When logged in as you, you might be able to mount a network drive
and access an image file on that drive. However, that access is being
performed with your NT credentials and access rights. The database server
doesn't have the same credentials and access rights and in all likelyhood
will NOT be able to access the same file. Of course, the same situation
can occur in Unix land with NFS.
Contrast all that with what happens when a client application calls
loadDataFromFile. In this case, the client is reading image data from
a file that is local to the client (which could easily be on a
different machine than the server) and writing that image data
directly into the database as the contents of the BLOB. Therefore,
assuming the image format is recognized, setProperties is going to
succeed because the data is in the database, not external to it.
To sum up: setProperties can be called on an image when stored as a FILE.
However, the database server has to be able to access the file and the
directory in which it is stored. The reason it works when you call
loadDataFromFile is that the data is written to the BLOB in the database,
so the database has access.
Hope that makes sense,
Simon
null
Similar Messages
-
Why do i get a null pointer exception
import javax.swing.*;
class Rental
public static void main (String [] args)
int custCounter = 0; // counts the customers created so far
Customer[] customers = new Customer[100]; // creates an array of 100 customers
DomesticAssistant[] assistants = new DomesticAssistant[3]; // creates an array of [3] domestic assistants
assistants[0] = new DomesticAssistant("Lazy", 20, 100, 90, 300); // creates the domestic assistant and stores it in the array at position [0]
assistants[0].setReservedFrom(0, 0, 0); // sets the reserved from date to zero
assistants[0].setReservedTo(0, 0, 0); // sets the reserved to date to zero
assistants[1] = new DomesticAssistant("Average", 30, 150, 135, 400); // creates the domestic assistant and stores it in the array at position [1]
assistants[1].setReservedFrom(0, 0, 0); // sets the reserved from date to zero
assistants[1].setReservedTo(0, 0, 0); // sets the reserved to date to zero
assistants[2] = new DomesticAssistant("Excellent", 50, 250, 220, 750); // creates the domestic assistant and stores it in the array at position [2]
assistants[2].setReservedFrom(0, 0, 0); // sets the reserved from date to zero
assistants[2].setReservedTo(0, 0, 0); // sets the reserved to date to zero
String firstChoice = JOptionPane.showInputDialog("MAIN MENU\n--------------------\n\nPlease enter a number based on the following: \n[1] Add New Customer\n[2] Login\n[3] Exit"); // the main menu
if(firstChoice.equals("1")) // if the user enteres "1" in the main menu (add a new customer)
String custName = JOptionPane.showInputDialog(null, "NEW CUSTOMER MENU\n--------------------\n\nName: "); // asks for name and stores in variable custName
String custAddress = JOptionPane.showInputDialog(null, "NEW CUSTOMER MENU\n--------------------\n\nAddress: "); // asks for sddress and stores in variable custAddress
String custPostCode = JOptionPane.showInputDialog(null, "NEW CUSTOMER MENU\n--------------------\n\nPost Code: "); // asks for post code and stores in variable custPostCode
String custPhoneNo = JOptionPane.showInputDialog(null, "NEW CUSTOMER MENU\n--------------------\n\nTelephone Number: "); // asks for phone number and stores in variable custPhoneNo
String custEmail = JOptionPane.showInputDialog(null, "NEW CUSTOMER MENU\n--------------------\n\nEmail: "); // asks for email and stores in variable custEmail
String startingBalance = JOptionPane.showInputDialog(null, "NEW CUSTOMER MENU\n--------------------\n\nStarting Credit: "); // asks for credit to start account with and stores in variable startingBalance
int sBalance = Integer.parseInt(startingBalance); // converts startingBalance from a string into an integer
customers[custCounter] = new Customer(custName, custAddress, custPostCode, custPhoneNo, custEmail, sBalance); // creates a customer with the variables/details entered above
JOptionPane.showMessageDialog(null, "NEW CUSTOMER MENU\n--------------------\n\nWelcome" + custName + ".\nYour details were sucessfully added to the system.\nYour ID number is: " + customers[custCounter].getIdNumber() + "\nYour password is: " + customers[custCounter].getPassword()); // greets the new customer as well as giving them their id number and password
custCounter++; // increments the customer sounter by 1
else if(firstChoice.equals("2")) // if the user enters "2" in the main menu (login)
String checkIdNo = JOptionPane.showInputDialog(null, "LOGIN\n--------------------\n\nPlease enter your ID Number: ");
int checkIdNum = Integer.parseInt(checkIdNo);// asks user to enter their id number
int position = 0; //variable to store where we are in the array of customers so we know which customer we are dealing with
for(int i = 0; i < customers.length; i++) // loops through the array of customers
-----> if(customers.getIdNumber() == checkIdNum) // when the id number entered is found
position = i; // set the position variable to that customer (the position in the customers array)
else // if the id number is not found
JOptionPane.showMessageDialog(null, "LOGIN\n--------------------\n\nThat ID Number does not exist. "); // tell the user that the id number wasnt found
System.exit(0); // then exit the system
[\code]
Can anyone help. when i run the program i get a null pointer exception
can you tell me why, and possibly tell me how i can search through the array of customers searching for an id number
am i doing it a way that will work (not the best way) but just so it works
thanks in advance
D_HNevertheless, when you get to the loop where your exception occurs, you may have created any number of customers, but probably not 100.
The loop tries to go through all 100 spaces in the array, and as soon as it gets to a space you haven't assigned a Customer too, you'll get the exception.
Either make sure the loop doesn't go higher than you cutomercounter - 1 (to compensate for 0-based index of array), or check if the customer[i] == null before you try to call a method on it.
Does that make sense?
/D -
I can't figure out why I'm getting a Null Pointer Exception
I'm writing a program that calls Bingo numbers. I got that part of the program to work but when I started adding Swing I kept getting a Null Pointer Exception and I don't know how to fix it. The Exception happens on line 15 of class Panel (g = image.getGraphics();). Here is the code for my classes. I'm still not finished with the program and I can't finish it until I know that this issue is resolved.
package Graphics;
import java.awt.Graphics;
import javax.swing.JFrame;
public class DrawFrame extends JFrame{
public Panel panel;
public DrawFrame(int x, int y, String s) {
super(s);
this.setBounds(0, 0, x, y);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setPreferredSize(getSize());
panel = this.getPanel();
this.getContentPane().add(panel);
panel.init();
this.setVisible(true);
public Graphics getGraphicsEnvironment(){
return panel.getGraphicsEnvironment();
Panel getPanel(){
return new Panel();
package Graphics;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
public class Panel extends JPanel{
Graphics g;
Image image;
public void init() {
image = this.createImage(this.getWidth(), this.getHeight());
g = image.getGraphics();
g.setColor(Color.white);
g.fillRect(0, 0, this.getWidth(), this.getHeight());
Graphics getGraphicsEnvironment() {
return g;
public void paint(Graphics graph) {
if (graph == null)
return;
if (image == null) {
return;
graph.drawImage(image, 0, 0, this);
package Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class Keys extends KeyAdapter{
public int keyPressed; //creates a variable keyPressed that stores an integer
public void keyPressed(KeyEvent e) { //creates a KeyEvent from a KeyListner
keyPressed = e.getKeyCode(); //gets the key from the keyboard
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import Graphics.*;
public class Bingo {
static Ball balls[][] = new Ball[5][15]; //creates a 2D 5 by 15 array
public static void main(String[] args) {
DrawFrame frame = new DrawFrame(1500, 500, "Welcome to the automated Bingo Caller."); //creates instance of DrawFrame that is 1000 pixels wide and 500 pixels high
Graphics g = frame.getGraphicsEnvironment(); //calls the getGraphicsEnvironment method in the DrawFrame class
Keys key = new Keys(); //creates instance of the Key class
frame.addKeyListener(key); //adds a KeyListener called Key
for (int x = 0; x < 5; x++) { //fills rows
for (int y = 0; y < 15; y++) { //fills columns
balls[x][y] = new Ball(x, y+1); //fills array
frame.pack(); //adjusts the size of the frame so everything fits
g.setColor(Color.black); //sets the font color to black
g.setFont(new Font("MonoSpace", Font.PLAIN, 20)); //creates new font
for(int y=0;y<balls.length;y++){ //draws all possible balls
g.drawString(balls[y][0].s, 0, y*100); //draws numbers
for(int x=0;x<balls[y].length;x++){ //draws all possible balls
g.drawString(balls[y][x].toString(), (x+1)*100, y*100); //draws letters
do {
frame.repaint(); //repaints the balls when one is called
int x, y; //sets variables x and y as integers
boolean exit; //sets a boolean to the exit variable
do {
exit = false; //exit is set to false
x = (int)(Math.random() * 5); //picks a random number between 0 and 4 and stores it as x
y = (int)(Math.random() * 15); //picks a random number between 0 and 14 stores it as y
if (!balls[x][y].called) { //checks to see if a value is called
exit = true; //changes exit to true if it wasn't called
balls[x][y].called = true; //sets called in the Ball class to true if it wasn't called
System.out.println(balls[x][y]); //prints value
} while (!exit); //if exit is false, returns to top of loop
int count = 0; //sets a count for the number of balls called
for(int z=0;z<balls.length;z++){ //looks at balls
g.setColor(Color.black); //displays in black
g.drawString(balls[z][0].s, 0, z*100); //draws balls as a string
for(int a=0;a<balls[z].length;a++){ //looks at all balls
if (balls[z][a].called){ //if a ball is called
g.setColor(Color.red); //change color to red
count++; //increments count
} else {
g.setColor(Color.black); //if it isn't called stay black
g.drawString(balls[z][a].toString(), (a+1)*100, y*100); //draws balls as string
do {
if (key.keyPressed == KeyEvent.VK_R||count==5*15) { //if R is pressed or count = 5*15
count=5*15; //changes count to 5*15
for(int z=0;z<balls.length;z++){ //recreates rows
g.setColor(Color.black); //sets color to black
g.drawString(balls[z][0].s, 0, z*100); //redraws rows
for(int a=0;a<balls[z].length;a++){ //recreates columns
balls[z][a] = new Ball(z, a+1); //fills array
g.drawString(balls[z][a].toString(), (a+1)*100, z*100); //redraws columns
} while (key.keyPressed!=KeyEvent.VK_ENTER || count == 5 * 15); //determines if the key was pressed or counter is 5*15s
} while (key.keyPressed == KeyEvent.VK_ENTER);
public class Ball {
String s; //initiates s that can store data type String
int i; //initiates i that can store data as type integer
boolean called = false; //initiates called as a boolean value and sets it to false
public Ball(int x, int y) {
i = (x * 15) + y; //stores number as i to be passed to be printed
switch (x) { //based on x value chooses letter
case 0:
s = "B";
break;
case 1:
s = "I";
break;
case 2:
s = "N";
break;
case 3:
s = "G";
break;
case 4:
s = "O";
public String toString() { //overrides toString method, converts answer to String
return s + " " + i; //returns to class bingo s and i
}The javadoc of createImage() states that "The return value may be null if the component is not displayable."
Not sure, but it may be that you need to call init() after this.setVisible(true). -
Why i'm getting out of memory exception when trying to comparing two Lists ?
First this is a paint event.
In the paint event i draw a rectangle and then adding the pixels coordinates inside the rectangle area to a List:
private void pictureBox1_Paint(object sender, PaintEventArgs e)
if (cloudPoints != null)
if (DrawIt)
e.Graphics.DrawRectangle(pen, rect);
pointsAffected = cloudPoints.Where(pt => rect.Contains(pt));
CloudEnteringAlert.pointtocolorinrectangle = pointsAffected.ToList();//cloudPoints;
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height, PixelFormat.Format32bppArgb);
CloudEnteringAlert.Paint(e.Graphics, 1, 200, bmp);
I'm drawing a rectangle thats the rect(Rectangle) variable and assigning to pointsAffected List only the pixels coordinates that are inside the rect area ! cloudPoints contain all the pixels coordinates all over the image !!! but pointsAffected contain only
the coordinates of pixels inside the rectangle area.
Then the mouse up event:
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
StreamWriter w = new StreamWriter(@"c:\diff\diff.txt");
pixelscoordinatesinrectangle = new List<Point>();
pixelscoordinatesinrectangle = pointsAffected.ToList();
DrawIt = false;
for (int i = 0; i < trackBar1FileInfo.Length; i++)
DrawIt = true;
trackBar1.Value = i;
LoadPictureAt(trackBar1.Value, sender);
pictureBox1.Load(trackBar1FileInfo[i].FullName);
ConvertedBmp = ConvertTo24(trackBar1FileInfo[trackBar1.Value].FullName);
ConvertedBmp.Save(ConvertedBmpDir + "\\ConvertedBmp.bmp");
mymem = ToStream(ConvertedBmp, ImageFormat.Bmp);
backTexture = TextureLoader.FromStream(D3Ddev, mymem);
scannedCloudsTexture = new Texture(D3Ddev, 512, 512, 1, Usage.Dynamic, Format.A8R8G8B8, Pool.Default);
Button1Code();
pictureBox1.Refresh();
newpixelscoordinates = new List<Point>();
newpixelscoordinates = pointsAffected.ToList();
if (pixelscoordinatesinrectangle != null && newpixelscoordinates != null)
IEnumerable<Point> differenceQuery =
pixelscoordinatesinrectangle.Except(newpixelscoordinates);
// Execute the query.
foreach (Point s in differenceQuery)
w.WriteLine("The following points are not the same" + s);
else
am1 = pixelscoordinatesinrectangle.Count;
am2 = newpixelscoordinates.Count;
//MessageBox.Show(pixelscoordinatesinrectangle.Count.ToString());
w.Close();
Once i draw the rectangle when finish drawing it i'm creating a new List instance and store the pixels in the rectangle area in the pixelscoordinatesinrectangle List.
Then i loop over trackBar1FileInfo that contains for example 5000 images files names from the hard disk.
This is the problem part:
pictureBox1.Refresh();
newpixelscoordinates = new List<Point>();
newpixelscoordinates = pointsAffected.ToList();
if (pixelscoordinatesinrectangle != null && newpixelscoordinates != null)
IEnumerable<Point> differenceQuery =
pixelscoordinatesinrectangle.Except(newpixelscoordinates);
// Execute the query.
foreach (Point s in differenceQuery)
w.WriteLine("The following points are not the same" + s);
else
am1 = pixelscoordinatesinrectangle.Count;
am2 = newpixelscoordinates.Count;
I'm doing refresh for the pictureBox1 so it will go one each image to the paint event and will create a new List pointsAffected will have each time a different pixels coordinates.
So newpixelscoordinates should be with new pixels coordinates each loop itertion.
Then i'm comparing both Lists newpixelscoordinates and pixelscoordinatesinrectangle for a different items.
And write those who are not the same to a text file.
So i'm getting a very large text file with many pixels coordinates that are not the same in both Lists.
The problems are:
1. Does the comparison i'm doing is right ? I want to compare one list index against other listi ndex.
For example in the List newpixelscoordinates in index 0 if i have x = 233 y = 23 and in the List pixelscoordinatesinrectangle in index 0 there is x = 1 y = 100 then write this as not the same to the text file.
What i want to do is to check the whole List items against the other List items and if some of the items are not the same write this items to the text file.
Next itertion new image new Lists with new pixels coordinates do the same comparison.
The List pixelscoordinatesinrectangle is not changing it's storing the first pixels coordinates when i drawed the rectangle first time. Only the List newpixelscoordinates change each time, Should change each itertion.
2. The exception i'm getting is on the line:
newpixelscoordinates = new List<Point>();
I added this line since i thought maybe i didn't clear it each time but it didn't help.
Before adding this line the exception was on the line:
newpixelscoordinates = pointsAffected.ToList();
The exception is: OutOfMemoryException: Out of memory
System.OutOfMemoryException was unhandled
HResult=-2147024882
Message=Out of memory.
Source=System.Drawing
StackTrace:
at System.Drawing.Graphics.CheckErrorStatus(Int32 status)
at System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y, Int32 width, Int32 height)
at System.Drawing.Graphics.DrawImage(Image image, Rectangle rect)
at System.Windows.Forms.PictureBox.OnPaint(PaintEventArgs pe)
at System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
at System.Windows.Forms.Control.WmPaint(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
InnerException:Hi Chocolade1972,
>> Does the comparison i'm doing is right ? I want to compare one list index against other listi ndex.
I think you could use “Object.Equals” and the link below might be useful to you:
# Object.Equals Method (Object)
https://msdn.microsoft.com/en-us/library/bsc2ak47(v=vs.110).aspx
>> OutOfMemoryException: Out of memory
This error is very common, and when there is not enough memory to continue the execution of a program, it would be thrown.
It would be helpful if you could provide us a simple code to reproduce your issue.
Best Regards,
Edward
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click HERE to participate the survey. -
Why do I get an error message after syncing music
After syncing music to my iPhone an error message appears that says ''Heatwave was not copied to the iPhone ''Simon's iPhone'' because it could not be found''
in fact the file called Heatwave is copied to my iPhone and it does play on my phone, so why do I get this message ?
Info
Heatwave is an MP3 filecornman30
What computer operating system?
And, where is the music coming from, iTunes? If so, that is a known problem with Premiere Elements (just about any version).
The answer has been to convert the iTunes music to the wav version in iTunes.
The following is the iTunes' document how to.
iTunes: How to convert a song to a different file format - Apple Support
Any questions, please do not hesitate to ask.
If other than above, please supply more details to help us help you.
Thank you.
ATR -
Why do i get f4 on field in alv report ?
i done general (MM) alv report
And i display "MATKL" (Material Group) in one of the column.
I don't know why, but when i stand on the data , i get f4 option
, when i asking for f4 i get message, u201CNo input help is availableu201D.
In the definition, I didnu2019t put the matkl original data element ,
I just put char9, i didnu2019t ask/build and double click or
Event for it.
so why do i get f4 option in this column ?
thanks .Ajay said the correct answer...
chech this sample code:
CLEAR wa_catalog.
wa_catalog-fieldname = 'BANFN'.
wa_catalog-ref_table = 'EBAN'.
APPEND wa_catalog TO catalog.
Edited by: Sebastian Bustamante on Oct 6, 2008 9:40 PM -
Why do we get the data from a view to a report.
hi
why do we get the data from a view to a report. is it possible to get the data from a view in all the cases?hi Jyotssna,
Suppose you are planning to get the data from multiple tables then you got to specify seveal condtions and make use of joins which results in poor performance in fetching the data . In order to improve the performance we make use of views where the conditions of different tables are defined and the data is fetched accordingly.
Regards,
Santosh -
Why would I get ReferenceError #1065: "Variable title is not defined."
Well of course it's not defined. It's a dynamic class, and strict mode compilation is turned off so that I don't have to declare the property to compile it.
I've created a library item named "Page" with a single TextField instance named "title".
Page's class is defined in an ActionScript file, and it's assigned to the library item in export for ActionScript.
Page's ActionScript file defines the class as a "dynamic" class, so I should not be getting this runtime error. I turned off strict mode compiling, since it seems to be designed to check the presense of property definitions at compile time for dynamic classes like MovieClip.
public dynamic class Page extends MovieClip
public function Page()
super();
var text:String = title.text; //title can be moused over in the debugger here and shows the correct value, but the flash player throws a runtime error when it tries to access it, but it shouldn't because this is a dynamic class.
So why am I getting a runtime error for the field "title". It makes no sense, because if I step to that line in the FlashDevelop debugger and hold the mouse over "title", it shows that it is in fact the instance of the TextField that I'm trying to access. Yet the player throws an error when I actually try to access it.
Is it a problem or limitation with the access style (i.e. would it work fine if I accessed it as "this.title" or "this["title"]"?Nevermind. This was apparently a browser caching issue. The Page base class is defined in the main interface swf, and is externally referenced through its swc in an external "lesson" file that declare a subclass of Page. It was this custom subclass of Page which was throwing the error (basically the same as the simplified example I wrote for my post, where it simply tried to access "title" as a dynamic property of the Page). What happened is the browser was caching an old version of the lesson file with the old definition of the class that was not declared as dynamic. I had received the error before, then updated the class, then I was surprised to see the error persist. It suddenly dawned on me that the browser was probably caching the old version, so I cleared the cache and it seems to work fine now.
Actually, it is a problem after all. I forgot I had updated it to use "this.title" syntax on the page I tested after clearing the cache, but the other pages that try to access title directly as "title" still throw the error. So it seems to be some sort of quirk in how flash accesses properties of a dynamic class. If you try to access them direclty, it must do so in a way that requires the property to be defined, but if you access it via "this.title" or this["title"], the it seems to resolve the property value without throwing the error.
This sucks. I was really trying to not have to write "this." for every property. The entire display list is dynamically generated from some custom XML that allows me to call constructors and set complex type-safe properties, and during construction it was copying each item into a Dictionary by name. This Dictionary was then assigned to the page class as "items", so I was accessing each display object as "item.name". Then I got the brilliant idea of just making Page and its subclasses "dynamic" so that I could just add the DIctionary values on the Page instance itself. I thought I would be able to access the dyamic properties just by their name such as "title", but lo and behold, Flash strikes again, and I have to use dot notation anyway. What do you all think? Any solutions? -
I placed an order to upgrade my phone yesterday, and the order went through, I was told the new phone would arrive Thursday. After I got home from work today I saw an email from Verizon that says "Dear Customer:
Verizon Fraud Prevention Team is currently reviewing the following order on your wireless account. Please call the Verizon Fraud Prevention Team at 888-483-7200 option 3, press 1 to verify this Order."
I called this number immediately, since I need this phone ASAP, assuming it would just be a recording and I would have to verify an account number or something. But instead, after following the instructions, I was put on hold because I needed to speak to someone in person. After several instances of my call being cut off after being on hold for at least half an hour, I finally got through after three hours and was able to speak to a fraud representative. I gave her my info and told her the problem and she told me I had called the wrong department. Instead of the fraud department, I needed the online order department. She transferred me, and I waited on hold again. When the representative from the online order dept picked up, she first told me if it was a fraud issue I'd need to speak with the fraud dept - who had JUST transferred me to her. After this, she said that my order is not on hold, because it hasn't even been processed yet or had the credit check done. When I asked if this meant I hadn't needed to call at all, she said yes. Is this actually true or is there a chance that there's an issue with my order I don't know about? If there is no issue, these emails really shouldn't be sent out, they're incredibly misleading, and I've wasted a whole lot of time and experienced an incredible amount of anxiety for no reason.Hi. I checked on the order and it says the order is currently being processed and I should check back tomorrow. I'm mostly just concerned because I got an email saying the order was on hold, and I want to make sure it actually does go through and I'm not just waiting for a delivery that's not going to come. I'm still confused as to why I'd get an email saying I had to call the fraud department only to be told I shouldn't have called the fraud department.
-
My iMac locks up constantly in email. I click on one or two emails. Then when I click on another email, I get the spinning wheel and have to relaunch. Why does it get confused and lock up? Seems like it is stuck.
10.6.8 here, MacBook Pro. Comcast. Mail freeze ups. Occasional warnings to use "Log Out" under the Apple icon.
Disk Repair run several times. Shows lots of Java "remote" issues.
I run Disk Repair several times, shows a lot of Java, "remote" issues.
Restart don't know if it helps, I do it all the time. What's with quitting Mail but it doesn't quit, and why a separate maneuver to "Log Out".
i -
The feature you are trying to use is on a network resource that is unabailable" Why am I getting this message when I try to updaate itunes or quicktime?
Before trying the update again, use Microsoft's Fix it solution at http://support.microsoft.com/mats/Program_Install_and_Uninstall. Use it to uninstall iTunes and Quicktime. It bypasses this not uncommon problem. When the solution finishes, the selected program will be uninstalled. It can take several minutes and I have seen as much as half an hour.
After iTunes & Quicktime are uninstalled, try the update again. -
Why do I get the "iwork discontinued" message when I click on the share feature in pages?
Why do I get the "iwork discontinued" message when I click on the share feature in pages?
If you are using an older version of iWorks, the sharing was, I understand discontinued in July 2012.
New versions of the iWorks suite, Pages etc now have the sharing option, introduced earlier this year. -
Why do I get a black screen when i click on a PDF in a web page?
why do I get a black screen when i click on a PDF in a web page? Firefox works as is should.
Hi,
From your Safari menu bar click Safari / Preferences then select the Extensions tab. If you have any installed, turn that off, then relaunch Safari. Try a PDF file.
If it's not Extensions, open a Finder window. Select MacintoshHD in the Sidebar on the left. Now open the Library folder then the Internet Plug-Ins folder. If you see any files such as this:
AdobePDF Browser or Viewer Plug-in
Move it to the Trash, relaunch Safari.
Carolyn :-) -
Why do I get a yellow triangle looks like warning or alert symbol in my timeframe area. And what do I need to do to delete it?
What is the "Timeframe" area?
A clip in an Event, or a whole Event has lost track of it's originals.
Did you delete anything in an Event that you were using in a Timeilne? -
Why do I get shadows in the corners of pictures taken on my mini iPad?
Why do I get shadows in the corners of pictures taken on my mini iPad. It seems the conditions have to be perfect to get a decent picture. Why?
Sounds like vignetting, but you need to ask that on an iPad forum not the iPhoto for Mac one.
Maybe you are looking for
-
7.3.1 killed wireless printing (Samsung ML-2510)
OK. It looks like 7.3.1 has killed my wireless printing. If I attempt to print anything it takes several min for anything to print. When it finally does i get this page that says "Internal error - False" I have A Mac Pro, A Mac Book Air, and a mac mi
-
Display blob field on pdf with pl_fpdf
Hi All, I wish I could use some method to output PDF from the PL/SQL. I already have a document (image stored as BLOB). Now, I need to output this image in PDF. I know doing this outside database is easy and advisable. When I use pl_fpdf with image f
-
BUPA_SEND cannot find the Bank Key in GTS
Hi I have transferred bank master data using t-code /SAPSLL/BANMAS_DIRR3. I can see the bank in GTS. During the transfer the country ISO code was used as the prefix to the Bank Key (USXXXXXX) to make the External number. I then use BUPA_SEND to send
-
i'm trying to update records and when i edit a particular value and click update it gets updated in the database but the changes are not visible in the current screen.instead if i click the update button again i can see the change.can anybody help me
-
Hello, I have recently moved to qatar and though I can receive emails on my iPhone and iPad, I am not able to send any emails. Any suggestions?