New(?) pattern looking for a good home

Hi everyone, this is my second post to sun forums about this, I initially asked people for help with the decorator and strategy pattern on the general Java Programming forum not being aware that there was a specific section for design pattern related questions. Since then I refined my solution somewhat and was wondering if anyone here would take a look. Sorry about the length of my post, I know it's best to keep it brief but in this case it just seemed that a fully functional example was more important than keeping it short.
So what I'd like to ask is whether any of you have seen this pattern before and if so, then what is it called. I'm also looking for some fresh eyes on this, this example I wrote seems to work but there are a lot of subtleties to the problem so any help figuring out if I went wrong anywhere is greatly appreciated. Please do tell me if you think this is an insane approach to the problem -- in short, might this pattern have a chance at finding a good home or should it be put down?
The intent of the pattern I am giving below is to modify behavior of an object at runtime through composition. In effect, it is like strategy pattern, except that the effect is achieved by wrapping, and wrapping can be done multiple times so the effect is cumulative. Wrapper class is a subclass of the class whose instance is being wrapped, and the change of behavior is accomplished by overriding methods in the wrapper class. After wrapping, the object "mutates" and starts to behave as if it was an instance of the wrapper class.
Here's the example:
public class Test {
     public static void main(String[] args) {
          double[] data = { 1, 1, 1, 1 };
          ModifiableChannel ch1 = new ModifiableChannel();
          ch1.fill(data);
          // ch2 shifts ch1 down by 1
          ModifiableChannel ch2 = new DownShiftedChannel(ch1, 1);
          // ch3A shifts ch2 down by 1
          ModifiableChannel ch3A = new DownShiftedChannel(ch2, 1);
          // ch3B shifts ch2 up by 1, tests independence from ch3A
          ModifiableChannel ch3B = new UpShiftedChannel(ch2, 1);
          // ch4 shifts ch3A up by 1, data now looks same as ch2
          ModifiableChannel ch4 = new UpShiftedChannel(ch3A, 1);
          // print channels:
          System.out.println("ch1:");
          printChannel(ch1);
          System.out.println("ch2:");
          printChannel(ch2);
          System.out.println("ch3A:");
          printChannel(ch3A);
          System.out.println("ch3B:");
          printChannel(ch3B);
          System.out.println("ch4:");
          printChannel(ch4);
     public static void printChannel(Channel channel) {
          for(int i = 0; i < channel.size(); i++) {
               System.out.println(channel.get(i) + "");
          // Note how channel's getAverage() method "sees"
          // the changes that each wrapper imposes on top
          // of the original object.
          System.out.println("avg=" + channel.getAverage());
* A Channel is a simple container for data that can
* find its average. Think audio channel or any other
* kind of sampled data.
public interface Channel {
     public void fill(double[] data);
     public double get(int i);
     public double getAverage();
     public int size();
public class DefaultChannel implements Channel {
     private double[] data;
     public void fill(double[] data) {
          this.data = new double[data.length];
          for(int i = 0; i < data.length; i++)
               this.data[i] = data;
     public double get(int i) {
          if(i < 0 || i >= data.length)
               throw new IndexOutOfBoundsException("Incorrect index.");
          return data[i];
     public double getAverage() {
          if(data.length == 0) return 0;
          double average = this.get(0);
          for(int i = 1; i < data.length; i++) {
               average = average * i / (i + 1) + this.get(i) / (i + 1);
          return average;
     public int size() {
          return data.length;
public class ModifiableChannel extends DefaultChannel {
     protected ChannelModifier modifier;
     public void fill(double[] data) {
          if (modifier != null) {
               modifier.fill(data);
          } else {
               super.fill(data);
     public void _fill(double[] data) {
          super.fill(data);
     public double get(int i) {
          if(modifier != null)
               return modifier.get(i);
          else
               return super.get(i);
     public double _get(int i) {
          return super.get(i);
     public double getAverage() {
          if (modifier != null) {
               return modifier.getAverage();
          } else {
               return super.getAverage();
     public double _getAverage() {
          return super.getAverage();
public class ChannelModifier extends ModifiableChannel {
     protected ModifiableChannel delegate;
     protected ModifiableChannel root;
     protected ChannelModifier tmpModifier;
     protected boolean doSwap = true;
     private void pre() {
          if(doSwap) { // we only want to swap out modifiers once when the
               // top call in the chain is made, after that we want to
               // proceed without it and finally restore doSwap to original
               // state once ChannelModifier is reached.
               tmpModifier = root.modifier;
               root.modifier = this;
               if(delegate instanceof ChannelModifier)
                    ((ChannelModifier)delegate).doSwap = false;
     private void post() {
          if (doSwap) {
               root.modifier = tmpModifier;
          } else {
               if(delegate instanceof ChannelModifier)
                         ((ChannelModifier)delegate).doSwap = true;
     public ChannelModifier(ModifiableChannel delegate) {
          if(delegate instanceof ChannelModifier)
               this.root = ((ChannelModifier)delegate).root;
          else
               this.root = delegate;
          this.delegate = delegate;
     public void fill(double[] data) {
          pre();
          if(delegate instanceof ChannelModifier)
               delegate.fill(data);
          else
               delegate._fill(data);
          post();
     public double get(int i) {
          pre();
          double result;
          if(delegate instanceof ChannelModifier)
               result = delegate.get(i);
          else
               result = delegate._get(i);
          post();
          return result;
     public double getAverage() {
          pre();
          double result;
          if(delegate instanceof ChannelModifier)
               result = delegate.getAverage();
          else
               result = delegate._getAverage();
          post();
          return result;
     public int size() {
          //for simplicity no support for modifying size()
          return delegate.size();
public class DownShiftedChannel extends ChannelModifier {
     private double shift;
     public DownShiftedChannel(ModifiableChannel channel, final double shift) {
          super(channel);
          this.shift = shift;
     @Override
     public double get(int i) {
          return super.get(i) - shift;
public class UpShiftedChannel extends ChannelModifier {
     private double shift;
     public UpShiftedChannel(ModifiableChannel channel, final double shift) {
          super(channel);
          this.shift = shift;
     @Override
     public double get(int i) {
          return super.get(i) + shift;
Output:ch1:
1.0
1.0
1.0
1.0
avg=1.0
ch2:
0.0
0.0
0.0
0.0
avg=0.0
ch3A:
-1.0
-1.0
-1.0
-1.0
avg=-1.0
ch3B:
1.0
1.0
1.0
1.0
avg=1.0
ch4:
0.0
0.0
0.0
0.0
avg=0.0

jduprez wrote:
Hello,
unless you sell your design better, I deem it is an inferior derivation of the Adapter pattern.
In the Adapter pattern, the adaptee doesn't have to be designed to support adaptation, and the instance doesn't even know at runtime whether it is adapted.
Your design makes the "modifiable" class aware of the modification, and it needs to be explicitly designed to be modifiable (in particular this constrains the implementation hierarchy). Overall DesignPattern are meant to provide flexibility, your version offers less flexibility than Adapter, as it poses more constraint on the modifiable class.
Another sign of this inflexibility is your instanceof checks.
On an unrelated note, I intensely dislike your naming choice of fill() vs _fill()+, I prefer more explicit names (I cannot provide you one as I didn't understand the purpose of this dual method, which a good name would have avoided, by the way).
That being said, I haven't followed your original problem, so I am not aware of the constraints that led you to this design.
Best regards,
J.
Edited by: jduprez on Mar 22, 2010 10:56 PMThank you for your input, I will try to explain my design better. First of all, as I understand it the Adapter pattern is meant to translate one interface into another. This is not at all what I am trying to do here, I am trying to keep the same interface but modify behavior of objects through composition. I started thinking about how to do this when I was trying to apply the Decorator pattern to filter some data. The way I would do that in my example here is to write an AbstractChannelDecorator that delegates all methods to the Channel it wraps:
public abstract class AbstractChannelDecorator implements Channel {
        protected Channel delegate;
...// code ommitted
     public double getAverage() {
          return delegate.getAverage();
...// code ommitted
}and then to filter the data I would extend it with concrete classes and override the appropriate methods like so:
public class DownShiftedChannel extends AbstractChannelDecorator {
     ...// code ommitted
     public double get(int i) {
          return super.get(i) - shift;
       ...// code ommitted
}(I am just shifting the data here to simplify the examples but a more realistic example would be something like a moving average filter to smooth the data).
Unfortunately this doesn't get me what I want, because getAverage() method doesn't use the filtered data unless I override it in the concrete decorator, but that means I will have to re-implement the whole algorithm. So that's pretty much my motivation for this, how do I use what on the surface looks like a Decorator pattern, but in reality works more like inheritance?
Now as to the other points of critique you mentioned:
I understand your dislike for such method names, I'm sorry about that, I had to come up with some way for the ChannelModifier to call ModifiableChannel's super's method equivalents. I needed some way to have the innermost wrapped object to initiate a call to the topmost ChannelModifier, but only do it once -- that was one way to do it. I suppose I could have done it with a flag and another if/else statement in each of the methods, or if you prefer, the naming convention could have been fill() and super_fill(), get() and super_get(), I didn't really think that it was that important. Anyway, those methods are not meant to be used by any other class except ChannelModifier so I probably should have made them protected.
The instanceof checks are necessary because at some point ChannelModifier instance runs into a delegate that isn't a ChannelModifier and I have to somehow detect that, because otherwise instead of calling get() I'd call get() which in ModifiableChannel would take me back up to the topmost wrapper and start the whole call chain again, so we'd be in infinite recursion. But calling get() allows me to prevent that and go straight to the original method of the innermost wrapped object.
I completely agree with you that the example I presented has limited flexibility in supporting multiple implementations. If I had two different Channel implementations I would need two ModifiableChannel classes, two ChannelModifiers, and two sets of concrete implementations -- obviously that's not good. Not to worry though, I found a way around that. Here's what I came up with, it's a modification of my original example with DefaultChannel replaced by ChannelImplementation1,2:
public class ChannelImplementation1 implements Channel { ... }
public class ChannelImplementation2 implements Channel { ... }
// this interface allows implementations to be interchangeable in ChannelModifier
public interface ModifiableChannel {
     public double super_get(int i);
     public double super_getAverage();
     public void setModifier(ChannelModifier modifier);
     public ChannelModifier getModifier();
public class ModifiableChannelImplementation1
          extends ChannelImplementation1
          implements ModifiableChannel {
     ... // see DefaultChannel in my original example
public class ModifiableChannelImplementation2
          extends ChannelImplementation1
          implements ModifiableChannel { ...}
// ChannelModifier is a Channel, but more importantly, it takes a Channel,
// not any specific implementation of it, so in effect the user has complete
// flexibility as to what implementation to use.
public class ChannelModifier implements Channel {
     protected Channel delegate;
     protected Channel root;
     protected ChannelModifier tmpModifier;
     protected boolean doSwap = true;
     public ChannelModifier(Channel delegate) {
          if(delegate instanceof ChannelModifier)
               this.root = ((ChannelModifier)delegate).root;
          else
               this.root = delegate;
          this.delegate = delegate;
     private void pre() {
          if(doSwap) {
               if(root instanceof ModifiableChannel) {
                    ModifiableChannel root = (ModifiableChannel)this.root;
                    tmpModifier = root.getModifier();
                    root.setModifier(this);
               if(delegate instanceof ChannelModifier)
                    ((ChannelModifier)delegate).doSwap = false;
     private void post() {
          if (doSwap) {
               if(root instanceof ModifiableChannel) {
                    ModifiableChannel root = (ModifiableChannel)this.root;
                    root.setModifier(tmpModifier);
          } else {
               if(delegate instanceof ChannelModifier)
                         ((ChannelModifier)delegate).doSwap = true;
     public void fill(double[] data) {
          delegate.fill(data);
     public double get(int i) {
          pre();
          double result;
          if(delegate instanceof ModifiableChannel)
// I've changed the naming convention from _get() to super_get(), I think that may help show the intent of the call
               result = ((ModifiableChannel)delegate).super_get(i);
          else
               result = delegate.get(i);               
          post();
          return result;
     public double getAverage() {
          pre();
          double result;
          if(delegate instanceof ModifiableChannel)
               result = ((ModifiableChannel)delegate).super_getAverage();
          else
               result = delegate.getAverage();
          post();
          return result;
     public int size() {
          return delegate.size();
public class UpShiftedChannel extends ChannelModifier { ...}
public class DownShiftedChannel extends ChannelModifier { ... }

Similar Messages

  • Anybody have an Epson 836XL scanner software CD looking for a good home?

    .....or a copy therof?
    I need help with the original scanning software, and it doesn 't exist on the web.
    Thanks for your time!

    This link comes up from Espon's website when you select it from the Windows version:
    http://www.epson.com/cgi-bin/Store/support/supDetail.jsp?oid=14571&prodoid=8149& BV_UseBVCookie=yes&infoType=Downloads&platform=Macintosh
    But doesn't go anywhere for me, but it may just be my firewall. Does it work for you?

  • New to Mac and I am looking for a good app to process labels for envelopes. Used to use the Printmaster program on the PC side.  Wondering if "Pages" Iis the correct program to buy of is there another option. Thank you.

    New to Mac and used to use a program called print master for making all kinds of labels etc. I am looking for a good app to do the same.  I was wondering if the Pages app was the right choice to do the labels etc.  I understand that pages I'd a word processing app but I was unable to tell if it could do what I was looking for. Any suggestions would be greatly appreciated

    The Contacts application will print envelopes and is already on your iMac. See this Apple article for information on how to do it.
    Best of luck.

  • New Ipad User looking for some good CRM suggestions for small business

    Hello All,
    I am a new (and satisfied) Apple Ipad2 user.  I am the sales rep for a small business that is in the health care field.  I am looking for a good CRM program for the following reasons and I am wanting to know if there is a particular program that can provide any of these things for me:
    Ability to put in all of my customers information.  Seperate folders for each.
    Ability to add information to customer folders/files based on recent phoen conversations or actual on-site visits.
    Ability to set a reminder of when to call back on that customer to see status of his/her patient that was fit with our product.
    Ability to allow other members of the company to check in on this information as well.
    A little background, we are a small company in the health care field.  We have 90 customers currently and we are growing at a steady pace.  I would like for my upper management to look at the CRM at any point and see what is going on with each customer.  If I sell a product to Customer A, then I would like a reminder to pop up 6 months from now when that patient will be ready for another product.  I would also like to be able to update a customer file so that management can see when I called on a customer, etc.
    I appreciate everyone's input as I have never utilized a CRM program.  I am currently using Dropbox for all of this right now, but it seems like a CRM would be more organized,
    Thank you,
    --Ryan

    HI Ryan,
    Did you find an app for CRM, one thing that I'm also curious about, you may need to find one that is HIPPA compliant.
    James

  • Looking for a good note taking app: Are there new features for the Notes app in iOS6?

    Hi,
    I've read that the Notes app with Mountain Lion will be available for OS X as well, and I was wondering if there will be any significant updates to the Notes app coming in iOS 6?
    The Notes app in Mountain Lion supports, as far as I know, text formatting, images and attachments. The Notes app in iOS 5 does not have any of these features, yet still it is claimed that the OS X client will sync with the iPhone, iPad and iPod touch. This means that there must be some rather significant updates coming for the Notes app in iOS 6 to match up with the features of its Mac counterpart. Still, no updates to the Notes app are listed in any of the iOS 6 feature lists I've seen so far.
    I'm looking for a good note taking app for OS X and iOS. I don't like how Springpad works, neither did Evernote work out for me, it's just too complex - I like Simplenote a lot though, it's just that its approach is too radical in my opinion. I was thinking that the Mountain Lion Notes app might be a good alternative because it combines simplicity with rich text formatting and attachments. I kind of hate the skeuomorphic user interface though.
    best, Ian

    You are only addressing other iPad users here & no Apple employees. We have no way of knowing, so you'll have to wait until iOS 6 is released.
    Here's some general info.
    Working with Notes and Documents on the iPad – Alternatives & Suggestions
    http://ipadacademy.com/2012/04/working-with-notes-and-documents-on-the-ipad-alte rnatives-suggestions
     Cheers, Tom

  • Looking for a good application to use with my printer so i can print my own photo calanders and invitations?, looking for a good application to use with my printer so i can print my own photo calanders and invitations?

    looking for a good application so i can print photo calanders and invitations at home?

    Hello, i'm using same version of iphoto as you unless you have upgraded.  i am looking to do the same with printing my photo cards to sell at an art tour.  i have made photo cards by using an 8 1/2 by 11 glossy photo paper or matte photo paper.  printing each side separately.  then folding it either horizontally or vertically depending on how  i have designed the card...i'm looking to do a better job and am looking for it to look more professional.  is there special blank card paper to make it look more professional.  many thanks for your reply.

  • Looking for a good music player app

    Hi.
    I have a problem. i'm looking for a good music player app for my new iphone (which i will buy my next month) in terms of playing music. after having 3 phones in the last 9 months i'm still unhappy.
    Had a Samsung Galaxy Ace. sound was above average but due to underpowered processor + RAM (and Samsung stating they won't update the software anymore) i had to sell it.
    Than had a Sony Ericcson Xperia Neo but felt the sound was "flat" and bland" and left me disappointed and uninspired coming from a well-known phone maker know for its audio & visual expertise.
    Now, i currently have the HTC Desire S. umm although the sound was "Ok" with its usual pre-set equalizers (common among Android phones) and SRS sound enhancement it felt me wanting more and although i have the phone for a week now i would say "so far-so good."
    but i heard the best music phones out there are those with either Beats Audio (which are very brand new) or the ones with Dolby Mobile.
    had an iPod touch (4th-gen) and i was amazed and impressed by the sound quality.
    so, if i can get away with a good music player app that recreates surround sound, has good preset EQ's along with customisable ones and one with Dolby-like support which app would you recommend?
    Thank you.

    Stock lock screen does not normally support 3rd party widgets so you wont find any third party players that allows you access while on lock screen..  As for the player I perfer Meridian Media Player Revolute from https://market.android.com/details?id=org.iii.romulus.meridian&feature=search_result#?t=W251bGwsMSwxLDEsIm9yZy5paWkucm9tdWx1cy5tZXJpZGlhbiJd

  • Im looking for a good note app with pen for taking notes ( in english and german )during business trips. Can anyone help

    I'm looking for a good note app with pen function for taking notes ( in English and German ) during business trips. Can anyone help?

    Really sorry to hear about this, particularly when you're putting your life on the line. But Apple cannot track your iPhone in any way unless you had set up Find My iPhone prior to it being lifted.
    It's possible that AT&T might be able to do something, but it's probably that they cannot track it, or will not without a request from an authorized law enforcement agency, but rather would only disable the device. You'll have to try and find a way to contact AT&T directly and ask if they can do anything to help you; the chances of any AT&T employee in a position to help you spotting this thread it pretty small.
    Good luck, stay safe, and come home soon.
    Regards.

  • I am looking for a good program to edit existing websites for about $99.00

    I am looking for a good program to edit existing websites for about $99.00 or less, any suggestions?
    Thanks,
    New MacBook owner.
    Martin

    Welcome to Apple Discussions!
    http://www.barebones.com 's Textwrangler. Use http://www.anybrowser.org/ as a guide for good HTML composition.
    If a web editor does not give you power to do full text editing and claims to be WYSIWYG, don't believe it. Chances are, it uses assumed standards of specific browsers, which are not fully http://www.w3.org/ compliant.

  • Looking for a good TV Tuner card.

    Hello all,
    I'm looking into getting a good TV tuner card that will work for cable and satellite (if possible).  I have Rogers cable and a unused Starchoice Satellite dish that I might use down the road.
    I don't really know anything about TV tuners, so, I would appreciate a few suggestions on which will work good with my rig and cable or satellite.
    Or do you guys think I should go for the ATI All-In-Wonder graphics card?  I do play games like FEAR, Quake3, Dark age of camelot, etc...
    Or stick with the geforce 7800 GT + TV tuner option?
    Thanks for any advise you can give me 
    Alex

    as you've posted in the MSI TV tuner forum, we're only going to give advice on MSI products here
    personally, i'd always stick with a seperate VGA card and TV card solution
    if you're looking for a good analogue capture card, and picture quality is important, then maybe a hardware MPEG2 capture card, such as the MSI Theater 550PRO-E is the best choice for you
    as your board has PCI-E 1x slots, this is an even better choice, as PCI cards can sometimes encounter lack of resources on newer PCI-E boards, especially SLI boards

  • Looking for a good method or APP to have client sign a form in a text box

    I am looking for a good method or App to take an existing form/Document and have a client sign, date etc.  I will want to create the text boxes in a stationary location.  Possibly to also take a picture to add to form.
    Has anyone used any apps to accomplish this?
    Apps I have tried.
    Signnow
    Sign PDF
    Sign Easy
    Sign Easy is about the best except the signatures (text boxes, dates, etc) are free floating and confuse people where to add them on form each time.  Clients have no clue how to use it.
    Any suggestions would be helpful.  I may be over complicating this also, as there could just be a PDF app that I utilize.
    Thanks,
    Jim

    Maybe more than you need...
    PDF readers
    PDF Expert – the PDF handling app for the iPad. "It allows you to markup documents with highlights and handwriting, insert text and stamps, sign and even merge PDFs."
    https://itunes.apple.com/us/app/pdf-expert-5-fill-forms-annotate/id743974925?mt= 8
    iAnnotate – turns your tablet into a world-class productivity tool for reading, marking up, and sharing PDFs, Word documents, PowerPoint files, and images.  Has a secure document edition designed for corporations.
    http://www.branchfire.com/iannotate/

  • Looking for a reading App.  iPad (iOS 7.1.2) - Kindle.  I am looking for a good app that can help a college student with reading books that cannot be found on audio book. Voice over works, but monotone!

    Looking for a reading App.
    iPad (iOS 7.1.2) - Kindle.
    I am looking for a good app that can help a college student with reading books that cannot be found on audio book.  I have tried voice over and it works but it's very monotone and it really strings things together. 
    - I'm willing to pay for a good app but I can't seem to sort though the many that are out there. Any suggestions.

    Ah. I'm surprised, but there we go.
    Have a look here ...
    http://jam.hitsquad.com/vocal/about2136.html
    (courtesy of googling 'OSX free multitrack recording software')
    Didn't have time to do more than skim, but 'Ardour' looked promising. Protools is the only one I've used, the full product is one of the industry standards, but the free 'lite' version listed here seems to be limited to 2 in/out as well.
    Referring to your original post, I'd think trying to write or 'script' something would be a nightmare ... synchronisation of streams within something like Applescript would be a major issue, quite apart from anything else.
    G5 Dual 2.7, MacMini, iMac 700; P4/XP Desk & Lap.   Mac OS X (10.4.8)   mLan:01x/i88x; DP 5.1, Cubase SX3, NI Komplete, Melodyne.

  • Looking for a good movie maker app for iPad 1

    Hi Everybody-
      I am looking for a good Photo/Movie maker for the iPad 1. Something that I can add Photos/Movies together and add some songs and have editing capabilities for all of it and possiabily export it as well to my PC to burn to DVD/CD.
    So if anybody can give my recomondations, I'd really appriciate it.There some good ones, but not for the iPad 1. So I wanted to get all of your suggestions so I can narrow down my search. Please let me know if you need further information as well.
    Thanks so much for your time.
    Sincerely- Douglas

    There are no movie maker apps in the App Store that will work well on the iPad 1, it just doesn't have enough RAM. If you read the reviews for the Avid app in the App Store everyone with an iPad 1 is complaining about it. iMovie, as you probably already knew, does not have a version for the iPad 1.
    Wait for the iPad 3 and then set about making movies, the 1 (which I also have) just does not have the horsepower for what you want to do.

  • Hi, i'm looking for a good video editing software for my powermac G5

    Hi
    i bought me a powermac G5n quad processor with 8Gb
    I want to make DVD's with it, So i'm looking for a good program to do it.
    Can i get a few suggestions.
    Thx

    I think iMovie and iDVD which are parts of iLife'09 creative suite of Apple are good choice.
    http://support.apple.com/kb/ht3876

  • Looking for a good antivirus/antimalware app for iPhone 5 with iOS 8.1.2

    As the subject implies, I'm Looking for a good antivirus/antimalware app for iPhone 5 with iOS 8.1.2.  Don't care if it costs $$ just want something that works.  I've been searching around and installed a couple things but they don't seem to be what I was expecting.  Thought I'd find out what others are using.

    Htown Rush wrote:
    Thanks, the problem is I'm getting spam (spoofing) that is from me saying it was sent from my iPhone with my iPhone signature.  Ive reset my password on my mail, but that's pretty sketchy either way.  And it's being sent to my contacts as well.  Trying to eliminate all the possibilities and this is my first iPhone so I'm still a noob.
    Sadly, spoofing doesn't really require much hacking, All a spammer would need to use your email address for spoofing would be your email address. If it's also being sent to your contacts, your email account may well have been hacked. But that would have happened on the server level. Your phone wouldn't have been involved. Unfortunately, once the miscreants have your contact list, changing your password will not get that back. Changing the  password to something strong may help prevent future misuse.
    Best of luck.

Maybe you are looking for

  • no stack trace available

    Hi, Does anyone out there recognize it and know what to do with it ? Pt maj 18 14:45:32 GMT+02:00 2001:<E> <ServletContextManager> Servlet request terminiated with RuntimeException java.lang.NullPointerException <<no stack trace available>> It happen

  • Crash on importing .ai CS4 OS X

    Premiere has been crashing on me a lot. I'm hoping it is not my system. Macbook Pro running OS X version 10.6.3 and am using Premiere Pro CS4 and Illustrator CS4 both from the Master Collection. I am making a simple Illustrator file that has only a c

  • Change Person template applied to new customers created via incoming email

    Hi, Has anyone ever tried to change what Person template is used when a Customer is created via incoming email? Up to now we've just had one "Customer" Person template and this is applied to new customers created via incoming email and via AD synchro

  • Re: Slow Mac Pro Laptop

    Hi, I have a MacBookPro8,1 that I purchased a few years back. Recently it has been taking a while to boot up and Safari has been freezing quite a lot. I have updated all software but hasn't helped. Any ideas? Thanks, Ed

  • Element alignment problems

    I have just about completed my site but I am running into display issues in other browsers and computers. I have two questions: 1 - how do I reduce the overall page size within dreamweaver, where all elements will shrink simultaneously with the page