Problem with FRM-40403
I'm getting the following error when trying to commit a form in Forms 6i
FRM-40403: A calling form has unapplied changes. Save not allowed
The scenario is the following:
I have Form A which calls Form B, when I save Form B I get the error and nothing is saved on that form... The problem is that I have another form, lets called it Form C which also calls Form B and I am able to save Form B there... the call I'm doing its exactly the same in both forms A & C,
CALL_FORM('FORM_B', NO_HIDE, DO_REPLACE, NO_QUERY_ONLY, pl_id);
I googled the error but the only workaround I found is using OPEN_FORM to use another session, it actually works but then I loose some global variables I set in Form B so I can use in Form A; and the actual course of the code after doing the call_form doesn't execute.
Any ideas what could it be??
Thanks in advance
you mean all the changes to the form?? Its sounds kinda complicatedThe problem:
If you use POST in a form, all outstanding changes will be applied against the database (INSERT's, UPDATE's, DELETE's are executed), but there is no final commit sent to the database. But.. forms treats the status of all objects as applied (means the record-status of all records is QUERY, the Form-Status is QUERY). If you now exit the form, forms will not ask you "Do you want to save the changes" for there are no outstanding changes. But... If the forms is exited, there will be no commit executed and therefore the formerly applied changes are lost.
To avoid this, you have to "remember" that you posted in some variable and check that variable additionally to the Form-Status, something like
IF :SYSTEM.FORM_STATUS='CHANGED' OR :GLOBAL.MY_PERSONNEL_COMMIT_FLAG='Y' THEN
-- now ask for "Do you want to save the changes"
-- and do a COMMIT_FORM if answered with yes
END IF;
Similar Messages
-
Problem with Oi9 Forms...FRM-10039 error...
Hi.
I installed Oi9 Developer Suite v9.0.2, because I need Forms. I've Oi9 Database v9.2, Win XP and Polish language.
No problems with a installation. The Oi9 DB and Oi9 DS are in separated orahomes.
When I start Forms, I've 2 alerts:
-open error of ...\ora90\form90\fmrPLw.res programm Oracle*Terminal
-FRM-10039 Unable to startup the Forms Builder.
Where is the problem?
Any suggestions?
Regards from:
Marek Jasinski
[email protected]If you have Patch 1 to 9iDS the Polish language files will be there - but you have to install them as an extra step - see section 1.7.1 and 1.7.2 of the Release notes for the patch - you can also see the release notes online at:
http://otn.oracle.com/products/forms/pdf/9021comp_rn_w_forms.pdf -
FRM-40403 A Calling for has.....
Hi guyz,
im facing some strange problem, hope someone give me a suitable answer.
My application is working fine just i attach the another datablock its starts giving problem with an error
FRM-40403: A Calling form has unapplied changes. Save not allowed.
I create some parameters and passing the values below is the parameter code.
declare
plist ParamList;
begin
plist := Create_Parameter_List('INPUT_PARAM');
Add_Parameter(plist, 'empid',TEXT_PARAMETER,:employee.empid);
Add_Parameter(plist, 'emp_name',TEXT_PARAMETER,:employee.emp_name);
Add_Parameter(plist, 'dob',TEXT_PARAMETER,:employee.dob);
CALL_FORM('PORTS',no_HIDE,NO_REPLACE,NO_QUERY_ONLY,plist);
DESTROY_PARAMETER_LIST(plist);
end;
im unable to save the data in form B before it was working fine.
anyone help me why this problem occured? even though i delete the newly added datablock even though not working. help me plz...
RegardsBefore calling form b you could check :SYSTEM.FORM_STATUS, if that is changed, the changed have to be applied to DB before callin form b, maybe something like:
IF :SYSTEM.FORM_STATUS='CHANGED' THEN
IF <Aks use for saving> THEN
COMMIT_FORM;
CALL_FORM('FORMB');
END IF;
ELSE
CALL_FORM('FORMB');
END IF; -
I have problems with Forms 6.0.5.0.2 running against an Oracle
7.3.4 with Net8. When trying to insert or update records I get
an FRM-40508: ORACLE error: unable to INSERT record/FRM-40509:
ORACLE error: unable to UPDATE record. The Help | Display Error
menu item shows statement = "S3AVWU3wo|$6o|" (garbled
message), error = "ORA-12663: Services required by client not
available on the server" (sometimes it's "ORA-01403: no data
found").
It works fine against 8.0.5. As far as I'm aware Forms 6 is
certified against 7.3.4?
Any clues?
Thanks for your help.
Finn
nullWe had to upgrade from 7.3.2 to 7.3.4 when we moved over to Forms
6.0.5.0.2 and it's working fine.
We are using Net 8 as well.
Finn Ellebaek Nielsen (ChangeGroup ApS) (guest) wrote:
: I have problems with Forms 6.0.5.0.2 running against an Oracle
: 7.3.4 with Net8. When trying to insert or update records I get
: an FRM-40508: ORACLE error: unable to INSERT record/FRM-40509:
: ORACLE error: unable to UPDATE record. The Help | Display Error
: menu item shows statement = "S3AVWU3wo|$6o|" (garbled
: message), error = "ORA-12663: Services required by client not
: available on the server" (sometimes it's "ORA-01403: no data
: found").
: It works fine against 8.0.5. As far as I'm aware Forms 6 is
: certified against 7.3.4?
: Any clues?
: Thanks for your help.
: Finn
null -
Problem with set_item_instance_property and set_lov_property
Hello guys,
I am using oracle forms 6i and new to it. I am having a multi data block.
I am facing a problem when I try to set the item instance property with respect to the list type.
1) Basically, I am having a list item having three types MANUAL, INVOICE and BOE. All are independent of each other. I am facing the problem with the MANUAL type.
I have written this code on When-Validate-Trigger of the list item as well as When-List-Changed. Also I am not setting the properties of any items initially(neither on When-New-Form-Instance nor on When-New-Block-Instance).
if block.doc_type = 'MANUAL' then
set_item_instance_property('BLOCK.VENDOR_NO', to_number(:system.cursor_record), REQUIRED,PROPERTY_TRUE);
end if;
But I am getting this warning/error frm 41383 - no such property for set_item_instance_property on both the triggers for the first time when I open the form and thereafter. During the same form session, if I click on the next line it shows a message Field cannot be empty and directs to the item where I compulsory need to insert a value. I also tried using to_number(:system.trigger_record) but getting the same issue. There are many more items I need to set the same property for.
2)The invoice item on the block/form has a LOV. Another requirement is when I select 'MANUAL' , that LOV should not appear on selection of 'MANUAL' type and the user should be able to insert the value manually and validate manually. I did use set_lov_property, but did not get the correct usage. Please assist as soon as you can.
Edited by: 1005292 on May 20, 2013 12:04 PMJust out of my interest I would like to know what you exactly meant by "The :SYSTEM.CURSOR_RECORD reflects where the navigation cursor is; which could be different from the record that is initiating the event." in your reply.If you look at the Forms Help for both objects, you will see that...
SYSTEM.CURSOR_RECORD represents the number of the record where the cursor is located. This number represents the record's current physical order in the block's list of records. The value is always a character string.
SYSTEM.TRIGGER_RECORD represents the number of the record that Form Builder is processing. This number represents the record's current physical order in the block's list of records. The value is always a character string. Through PL/SQL you can send (using the GO_ITEM, GO_BLOCK and GO_RECORD built-ins) the interenal Forms Cursor to a different item, block or record within the current block. If, you GO to a different block or record in the same body of code and you then evaluated the :SYSTEM.CURSOR_RECORD and compared it with the :SYSTEM.TRIGGER_RECORD you would find that they are generally different.
2) In response to the second one, do you want to say that when it I select MANUAL I do not use the set_item_property OR use this property and attach an LOV which does not return anything OR use this property, give the name of the same of the same LOV,I am using and set PROPERTY_FALSE. First a litte back ground. When an Item has an LOV assigned to it, Oracle Forms automatically displays what it calls the "LOV List Lamp" in the status bar. With Forms 9i and higher, it displays and "List of Valu..." in the status bar when an item has an LOV assigned to it. Items can have an LOV assigned during design-time or during run-time. You cannot, however, unassign an LOV during Run-time becuase the SET_ITEM_PROPERTY built-in requires you to pass a valid LOV object name.
Well, as I was writing this, it occured to me that you will not be able to set the LOV assigned to your multi-row item at run-time either because once you assign an LOV to an item in a multi-row block, all occurances of the Item will have the LOV assigned. This being the case, I would recommend using a button and give it the appearance of enabled or disabled by using the VISUAL_ATTRIBUTE property and add code to the button so that if the row status is MANUAL then nothing happens. Using this method, you would create two Visual Attribute (VA) objects; ENABLED and DISABLED. The ENABLED VA would make the button look like a normal button while the DISABLED VA would make the button look like it is disabled (grey out button text, etc).
I would also like to know when to use set_lov_property and if you could explain in brief with an example.The only time I have used the SET_LOV_PROPERTY() built-in is when I needed to change the Record Group query assigned to the LOV. We have a form where depending on the "Action" selected, the LOV for a certain item needed to change. The values returned by the LOV were still assigned to the same block items, so rather than create multiple LOVs and set the Column Mapping for each LOV, I just create a Record Group object for each action and then used the SET_LOV_PROPERTY() built-in to change the LOV TITLE and GROUP_NAME. This way, I was able to reuse the LOV and it's existing column mappings while changing the record group that provided the data for the LOV.
The problem lies when I am entering the fields after the invoice number. The fields before the invoice no including the field of invoice no hold the value entered but when I click/press a tab key to go on to the next field the values in the earlier fields(i.e fields before invoice no and invoice no field) disappear i.e. the values do not hold their place and again prompts me from start to enter the vendor no.Are you navigating to a new row/record? That could explain the disappearing data. If not, then I would look for a trigger on the item you're navigating too or for a Block level When-New-Item-Instance trigger that has code that sets the items to null. It sounds like something in the design is causing the field values to disappear (get set to NULL) so I would look at what happens in your form when a navigation event occurs.
@Andreas - actually, REQUIRED is a valid property for the Set-Item-Instance-Property() built-in. ;)
Hope this helps,
Craig... -
What is the exact problem with this file?
Hi all,
There is an old form , which was not in use from many days.
Now when we tried to run the form, i got the error saying "FRM-40734:Internal Error:Pl/SQL error occured.", in the login form.
When i tried to open the fmb file in Oracle Forms Builder 6i, i got the following error:
FRM-10102: Cannot attach PL/SQL library d2kwutil. This library attachment will be lost if the module is saved., but the fmb file got open.
The login button has the following code:
DECLARE
UNAME VARCHAR2(30);
--USER_ID PARAMLIST;
V_USER APUSERMA.USER_NAME%TYPE;
V_PASSWED APUSERMA.USER_PASSWD%TYPE;
BEGIN
select user_CD INTO :GLOBAL.USER_ID from apuserma
where user_CD = :TI_USER_NAME AND user_PASSWD = :IT_USER_PASSWD
AND SYSDATE BETWEEN USER_VALID_FRM AND USER_VALID_TO;
:global.user_id := substr(win_api_environment.read_registry('HKEY_LOCAL_MACHINE\system\currentcontrolset\control\computername\computername','computername'),1,10);
:global.compname := :compname;
compnm(:compname);
--USER_ID := CREATE_PARAMETER_LIST('USER_id_NAME');
call_form('Forms\MAIN_SCREEN',hide,DO_REPLACE);
exception
when no_data_found then
MESSAGE('Incorrect Username or Password. Please Re-Enter');
message(' ');
RAISE FORM_TRIGGER_FAILURE;
END;
EXIT_FORM;
When i tried to compile, i got error saying ,
Error 201 at line 10, column 28
identifier 'WIN_API_ENVIRONMENT.READ_REGISTRY' must be declared.
I am not getting to know What is the exact problem with this file?
Help me with this please.
Thank You.
Oracle forms builder 6i.
Oracle 9i.Vijetha wrote:
I also want to know what is the use of win_api_environment.read_registry('HKEY_LOCAL_MACHINE\system\currentcontrolset\control\computername\computername','computername') ??
What does it do??
If i comment the following line , will it be a problem??
:global.user_id := substr(win_api_environment.read_registry('HKEY_LOCAL_MACHINE\system\currentcontrolset\control\computername\computername','computername'),1,10);
Because i commented the above line & compiled, so it is not giving any error now.
So please tell me what win_api_environment.read_registry does??
it's read windows registry value. So, no problem if you comment it.
Thanks -
Problem with Win_api_dialog.open_file
I am trying to use win_api_dialog.open_file in a when-mouse-double-click trigger. I have attached the library (d2kwutil) to the form and placed the .dll files (d2kwut32.dll and d2kwut60.dll) in the bin. The code will compile cleanly but at runtime, I get FRM-40735/ORA-060508, saying that the function cannot be found. I think that this is a problem with the .dll files but cannot figure out why. I am on Forms 6i. I am presently using the get_file_name() function to perform the task, but I would like to use the api b/c you can change the dialog on the top of the box. Anyone know how to make it work? Thanks...
KSHi Jose,
about win_api.preload... I have pasted a piece of D2KWUTIL.PLL:
* PreLoad -> Loads the DLL into memory
* DLL_Location argument allows you to explicitly load
* from a particular place
PROCEDURE PreLoad;The problem sound like a DLL load problem. In same file you can read the search path to find DLL library:
-- Search Path is:
-- 1. Preload override location set by WIN_API_PRELOAD.SET_LOAD_LOC
-- 2. D2KWUTILnn_PATH e.g. D2KWUTIL60_PATH
-- 3. D2KWUTIL_PATH
-- 4. Working Directory / O/S Path
-- 5. \Bin directory based in ..\bin
-- 6. %ORACLE_HOME%\BinWe have used this library regulary and it works fine.Feel free to send me a FMB test file at jcarmona arroba eprinsa.es in order to test it in my environment.
Regards,
Jose Carmona -
Operating System Problem? FRM-400100
We are encountering a problem accessing forms via the web as follows:
We have an ERP system for our institution comprised of several modules. The system launches through a main form called usermenu.fmx; what is happening is that when we try to modify this form (this is done on a client machine) and the original fmx (on the server) is replaced by the new one, the forms servlet returns with FRM-400100 "cannot read form usermenu.fmx".
What I am guessing is that somehow the fmx copy on the local machine is not being generated in a way that allows clients to access it when it is on the server (a privileges issue).
Am I on the right track?
What checks can I do to troubleshoot the problem?
Ammar
Edited by: elmousa68 on Apr 22, 2010 5:35 PM
Sorry, Client is Windows XP SP3, Application Server Windows Server 2003Andreas,
You are correct - according to Oracle support, if the development OS is 32 bit and the App Server OS is 64 bit, you must recompile the fmb's. It is for this reason that I asked if the deployed environment as 64 bit. :0
InoL - as to your comment :0 - you might want to do a little research into Oracle Best Practices. Oracle has always recommend you compile the FMB on the deployed OS. As to Commercial Off The Shelf (COTS) application, you have to purchase a version compatible with your App Server OS. I use to work for a Company that produced a COTS application based on Oracle Forms and part of the software installation routine was to compile the fmx files from the fmb's.
Craig... -
Problems with OLE Container in QUERY
Hi all,
I have problem with OLE Container when I am trying to retrieve data from the database. Inserting is no problem and commit is done. I am doing it with
initialize_container('block.ole_object','C:\test.doc');
I have only one column of BLOB type and it is last in the block as it was suggested somewhere on the forum.
When I am trying to retrieve the already inserted data I get error with the following
Description:
FRM-40505: Oracle ERROR: unable to perform query and CTRL+F1 says the following:
ORA-00932: inconsistent data types: expected got
The forms and the database are as follow:
Forms [32 Bit] Version 6.0.8.24.1 (Production)
Oracle Database 10g Enterprise Edition Release 10.1.0.4.2 - Production
I need immediate help!!!This may be related to the 10g database, I'm not sure as there is no way for me to test it. I know that it works with a 9i database.
One thing to check is to make sure that you don't have the FORMS60_DISABLE_DESCRIBE set to 1 within the Oracle registry.
If this doesn't work, your only option might be to use a LONG RAW instead of a BLOB column type in the database. -
Problems with the conection of acess db with midlet
hey there,well its good to knw that u ppl have expirience in j2me.well , im having problem with the connection of access db with j2me.could you brief me on what exactly i should do in order to do connect it to run a query and save some info into the db frm the midlet,
thanx.As I said earlyer today, just a few topics back, you can't do that. Read here:
http://forum.java.sun.com/thread.jspa?threadID=615921&tstart=0
Could you people please use the search option! Answering the same questions over and over is realy boring (specially if they pop up several times a day).. -
HT201210 How to correct Problems with cross connections
How to correct Problems with cross connections
Nope not a wrg #, its been a call frm my mom, my son and my brothers that show on my ph, numbers that have been programmed in for years. Thanks
-
I am trying to implement some kind of a server listening for requests. The listener part of the app, is a daemon thread that listens for connections and instantiates a handling daemon thread once it gets some. However, my problem is that i must be able to kill the listening thread at the user's will (say via a sto button). I have done this via the Sun's proposed way, by testing a boolean flag in the loop, which is set to false when i wish to kill the thread. The problem with this thing is the following...
Once the thread starts excecuting, it will test the flag, find it true and enter the loop. At some point it will LOCK on the server socket waiting for connection. Unless some client actually connects, it will keep on listening indefinatelly whithought ever bothering to check for the flag again (no matter how many times you set the damn thing to false).
My question is this: Is there any real, non-theoretical, applied way to stop thread in java safely?
Thank you in advance,
LeftyThis was one solution from the socket programming forum, have you tried this??
public Thread MyThread extends Thread{
boolean active = true;
public void run(){
ss.setSoTimeout(90);
while (active){
try{
serverSocket = ss.accept();
catch (SocketTimeoutException ste){
// do nothing
// interrupt thread
public void deactivate(){
active = false;
// you gotta sleep for a time longer than the
// accept() timeout to make sure that timeout is finished.
try{
sleep(91);
}catch (InterruptedException ie){
interrupt();
} -
Problem with Threads and a static variable
I have a problem with the code below. I am yet to make sure that I understand the problem. Correct me if I am wrong please.
Code functionality:
A timer calls SetState every second. It sets the state and sets boolean variable "changed" to true. Then notifies a main process thread to check if the state changed to send a message.
The problem as far I understand is:
Assume the timer Thread calls SetState twice before the main process Thread runs. As a result, "changed" is set to true twice. However, since the main process is blocked twice during the two calls to SetState, when it runs it would have the two SetState timer threads blocked on its synchronized body. It will pass the first one, send the message and set "changed" to false since it was true. Now, it will pass the second thread, but here is the problem, "changed" is already set to false. As a result, it won't send the message even though it is supposed to.
Would you please let me know if my understanding is correct? If so, what would you propose to resolve the problem? Should I call wait some other or should I notify in a different way?
Thanks,
B.D.
Code:
private static volatile boolean bChanged = false;
private static Thread objMainProcess;
protected static void Init(){
objMainProcess = new Thread() {
public void run() {
while( objMainProcess == Thread.currentThread() ) {
GetState();
objMainProcess.setDaemon( true );
objMainProcess.start();
public static void initStatusTimer(){
if(objTimer == null)
objTimer = new javax.swing.Timer( 1000, new java.awt.event.ActionListener(){
public void actionPerformed( java.awt.event.ActionEvent evt){
SetState();
private static void SetState(){
if( objMainProcess == null ) return;
synchronized( objMainProcess ) {
bChanged = true;
try{
objMainProcess.notify();
}catch( IllegalMonitorStateException e ) {}
private static boolean GetState() {
if( objMainProcess == null ) return false;
synchronized( objMainProcess ) {
if( bChanged) {
SendMessage();
bChanged = false;
return true;
try {
objMainProcess.wait();
}catch( InterruptedException e ) {}
return false;
}Thanks DrClap for your reply. Everything you said is right. It is not easy to make them alternate since SetState() could be called from different places where the state could be anything else but a status message. Like a GREETING message for example. It is a handshaking message but not a status message.
Again as you said, There is a reason I can't call sendMessage() inside setState().
The only way I was able to do it is by having a counter of the number of notifies that have been called. Every time notify() is called a counter is incremented. Now instead of just checking if "changed" flag is true, I also check if notify counter is greater than zero. If both true, I send the message. If "changed" flag is false, I check again if the notify counter is greater than zero, I send the message. This way it works, but it is kind of a patch than a good design fix. I am yet to find a good solution.
Thanks,
B.D. -
Problem with threads running javaw
Hi,
Having a problem with multi thread programming using client server sockets. The program works find when starting the the application in a console using java muti.java , but when using javaw multi.java the program doesnt die and have to kill it in the task manager. The program doesnt display any of my gui error messages either when the server disconnect the client. all works find in a console. any advice on this as I havent been able to understand why this is happening? any comment would be appreciated.
troy.troy,
Try and post a minimum code sample of your app which
does not work.
When using javaw, make sure you redirect the standard
error and standard output streams to file.
Graeme.Hi Graeme,
I dont understand what you mean by redirection to file? some of my code below.
The code works fine under a console, code is supposed to exit when the client (the other server )disconnects. the problem is that but the clientworker side of the code still works. which under console it doesnt.
public class Server{
ServerSocket aServerSocket;
Socket dianosticsSocket;
Socket nPortExpress;
ClientListener aClientListener;
LinkedList queue = new LinkedList();
int port = 0;
int clientPort = 0;
String clientName = null;
boolean serverAlive = true;
* Server constructor generates a server
* Socket and then starts a client threads.
* @param aPort socket port of local machine.
public Server(int aPort, String aClientName, int aClientPort){
port = aPort;
clientName = aClientName;
clientPort = aClientPort;
try{
// create a new thread
aServerSocket = new ServerSocket(port) ;
// connect to the nPortExpress
aClientListener = new ClientListener(InetAddress.getByName(clientName), clientPort, queue,this);
// aClientListener.setDaemon(true);
aClientListener.start();
// start a dianostic port
DiagnosticsServer aDiagnosticsServer = new DiagnosticsServer(port,queue,aClientListener);
// System.out.println("Server is running on port " + port + "...");
// System.out.println("Connect to nPort");
catch(Exception e)
// System.out.println("ERROR: Server port " + port + " not available");
JOptionPane.showMessageDialog(null, (e.toString()),"ERROR: Server port " + port + " not available", JOptionPane.ERROR_MESSAGE);
serverAlive = false;
System.exit(1);
while(serverAlive&&aClientListener.hostSocket.isConnected()){
try{
// connect the client
Socket aClient = aServerSocket.accept();
//System.out.println("open client connection");
//System.out.println("client local: "+ aClient.getLocalAddress().toString());
// System.out.println("client localport: "+ aClient.getLocalPort());
// System.out.println("client : "+ aClient.getInetAddress().toString());
// System.out.println("client port: "+ aClient.getLocalPort());
// make a new client thread
ClientWorker clientThread = new ClientWorker(aClient, queue, aClientListener, false);
// start thread
clientThread.start();
catch(Exception e)
//System.out.println("ERROR: Client connection failure");
JOptionPane.showMessageDialog(null, (e.toString()),"ERROR: Client connection failure", JOptionPane.ERROR_MESSAGE);
}// end while
} // end constructor Server
void serverExit(){
JOptionPane.showMessageDialog(null, "Server ","ERROR: nPort Failure", JOptionPane.ERROR_MESSAGE);
System.exit(1);
}// end class Server
*** connect to another server
public class ClientListener extends Thread{
InetAddress hostName;
int hostPort;
Socket hostSocket;
BufferedReader in;
PrintWriter out;
boolean loggedIn;
LinkedList queue; // reference to Server queue
Server serverRef; // reference to main server
* ClientListener connects to the host server.
* @param aHostName is the name of the host eg server name or IP address.
* @param aHostPort is a port number of the host.
* @param aLoginName is the users login name.
public ClientListener(InetAddress aHostName, int aHostPort,LinkedList aQueue,Server aServer) // reference to Server queue)
hostName = aHostName;
hostPort = aHostPort;
queue = aQueue;
serverRef = aServer;
// connect to the server
try{
hostSocket = new Socket(hostName, hostPort);
catch(IOException e){
//System.out.println("ERROR: Connection Host Failed");
JOptionPane.showMessageDialog(null, (e.toString()),"ERROR: Connection to nPort Failed", JOptionPane.ERROR_MESSAGE);
System.exit(0);
} // end constructor ClientListener
** multi client connection server
ClientWorker(Socket aSocket,LinkedList aQueue, ClientListener aClientListener, boolean diagnostics){
queue = aQueue;
addToQueue(this);
client = aSocket;
clientRef = aClientListener;
aDiagnostic = diagnostics;
} // end constructor ClientWorker
* run method is the main loop of the server program
* in change of handle new client connection as well
* as handle all messages and errors.
public void run(){
boolean alive = true;
String aSubString = "";
in = null;
out = null;
loginName = "";
loggedIn = false;
while (alive && client.isConnected()&& clientRef.hostSocket.isConnected()){
try{
in = new BufferedReader(new InputStreamReader(client.getInputStream()));
out = new PrintWriter(new OutputStreamWriter(client.getOutputStream()));
if(aDiagnostic){
out.println("WELCOME to diagnostics");
broadCastDia("Connect : diagnostics "+client.getInetAddress().toString());
out.flush();
else {
out.println("WELCOME to Troy's Server");
broadCastDia("Connect : client "+client.getInetAddress().toString());
out.flush();
String line;
while(((line = in.readLine())!= null)){
StringTokenizer aStringToken = new StringTokenizer(line, " ");
if(!aDiagnostic){
broadCastDia(line);
clientRef.sendMessage(line); // send mesage out to netExpress
out.println(line);
out.flush();
else{
if(line.equals("GETIPS"))
getIPs();
else{
clientRef.sendMessage(line); // send mesage out to netExpress
out.println(line);
out.flush();
} // end while
catch(Exception e){
// System.out.println("ERROR:Client Connection reset");
JOptionPane.showMessageDialog(null, (e.toString()),"ERROR:Client Connection reset", JOptionPane.ERROR_MESSAGE);
try{
if(aDiagnostic){
broadCastDia("Disconnect : diagnostics "+client.getInetAddress().toString());
out.flush();
else {
broadCastDia("Disconnect : client "+client.getInetAddress().toString());
out.flush();
// close the buffers and connection;
in.close();
out.close();
client.close();
// System.out.println("out");
// remove from list
removeThreadQueue(this);
alive = false;
catch(Exception e){
// System.out.println("ERROR: Client Connection reset failure");
JOptionPane.showMessageDialog(null, (e.toString()),"ERROR: Client Connection reset failure", JOptionPane.ERROR_MESSAGE);
}// end while
} // end method run
* method run - Generates io stream for communicating with the server and
* starts the client gui. Run also parses the input commands from the server.
public void run(){
boolean alive = true;
try{
// begin to life the gui
// aGuiClient = new ClientGui(hostName.getHostName(), hostPort, loginName, this);
// aGuiClient.show();
in = new BufferedReader(new InputStreamReader(hostSocket.getInputStream()));
out = new PrintWriter(new OutputStreamWriter(hostSocket.getOutputStream()));
while (alive && hostSocket.isConnected()){
String line;
while(((line = in.readLine())!= null)){
System.out.println(line);
broadCast(line);
} // end while
} // end while
catch(Exception e){
// System.out.println("ERRORa Connection to host reset");
JOptionPane.showMessageDialog(null, (e.toString()),"ERROR: Connection to nPort reset", JOptionPane.ERROR_MESSAGE);
try{
hostSocket.close();
}catch(Exception a){
JOptionPane.showMessageDialog(null, (a.toString()),"ERROR: Exception", JOptionPane.ERROR_MESSAGE);
alive = false;
System.exit(1);
} // end method run -
Problem with threads and camera.
Hi everybody!
I've a problem with taking snapshot.
I would like to display a loading screen after it take snapshot ( sometimes i
have to wait few seconds after i took snapshot. Propably photo is being taken in time where i have to wait).
I was trying to use threads but i didn't succeed.
I made this code:
display.setCurrent(perform);
new Thread(new Runnable(){
public void run() {
while((!performing.isShown()) && (backgroundCamera.isShown())){
Thread.yield();
notifyAll();
}).start();
new Thread(new Runnable(){
public void run() {
try {
this.wait();
} catch(Exception e) {
exceptionHandler(e);
photo = camera.snapshot();
display.setCurrent(displayPhoto);
}).start();This code is sometimes showing performing screen but sometimes no.
I don't know why. In my opinion performing.isShown() method isn't working correctly.
Does anyone have some idea how to use threads here?Hi,
I've finally managed to work this fine.
The code:
Object o = new Object();
display.setCurrent(perform);
new Thread(new Runnable(){
public void run() {
while(!performing.isShown()){
Thread.yield();
synchronized(o) {
o.notify();
}).start();
new Thread(new Runnable(){
public void run() {
try {
synchronized(o) {
o.wait(1);
} catch(Exception e) {
exceptionHandler(e);
photo = camera.snapshot();
display.setCurrent(displayPhoto);
}).start();
Maybe you are looking for
-
I have downloaded Photoshop Elements and all went well. When I went to open, it opens but the content is unreadable. I have a Mac and my flash player is up to date. Can you please tell me what I am missing? Thanks, Nikki
-
Vendor in GL Accont - payment voucher
Hi all, There is 2 type of display document view in GL Account General ledger view Data entry view when the document type is KZ than it is vendor account . by default it display general ledger view but when vendor is there than i want data entry view
-
I have installed a new windows 7 computer (Dell) and downloaded the latest version of ITunes. How can I populate my music into ITunes from my I-pod classic?
-
How the project land scape in real time?
hi, i am new to XI just i want the landscape of any XI project. and the defferent systems and how we will chose the adapter for that perticular landscape? we will have any project landscape for XI? Tks, PK
-
Hi, We updated our BSI to version 8.0 with new experience rates. In SAP, we updated the table V_BTXRATE with our new experience rates, but we are not sure if we need to update it in the table V_T5UTX. Can someone tell me the purpose of this table, an